commit f1ad4be91b0d2de3915b0e755caa760306befa76
parent 53617c8f0e4827a93ac2c85420c03e7dfbfcf298
Author: triesap <tyson@radroots.org>
Date: Sun, 9 Aug 2026 18:47:59 +0000
build: define the HarvestCircle naming contract
- record product-owned naming independently from shared Radroots libraries
- make Gradle Rust source discovery independent of crate prefixes
- expose governed Cargo lockfile and metadata commands
- preserve standalone and extbuild contributor workflows
Diffstat:
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
@@ -18,6 +18,19 @@ other reusable library policy. Product-specific Rust code must live in this
repository and may depend on the exact public Radroots library revision selected
by the capsule; it must not depend on an implicit sibling checkout.
+Product-owned names use the HarvestCircle identity consistently:
+
+- Human-facing product name: `HarvestCircle`.
+- Rust crate directories, Cargo packages, and dependency keys:
+ `harvestcircle_*`.
+- Kotlin source namespace: `org.radroots.harvestcircle`.
+- Product-owned Kotlin and UniFFI types: `HarvestCircle*`.
+- Product-owned environment variables: `HARVESTCIRCLE_*`.
+
+These product-specific names are intentionally distinct from canonical shared
+`radroots_*` library packages, Radroots service terminology, and Radroots
+corporate or vendor identity, which retain their existing names.
+
The repository must remain independently cloneable, buildable, testable, and
packageable through its checked-in command surfaces with or without extbuild.
It must not depend on private parent code, parent-only contracts, unpublished
diff --git a/Makefile b/Makefile
@@ -5,10 +5,10 @@ CARGO ?= cargo
CARGO_MANIFEST := core/Cargo.toml
EXTBUILD ?= $(if $(shell cargo extbuild --version 2>/dev/null),cargo extbuild run --)
-.PHONY: help doctor format format-fix lint test check build bindings dev run audit licenses package release-check clean
+.PHONY: help doctor lock metadata format format-fix lint test check build bindings dev run audit licenses package release-check clean
help:
- @printf '%s\n' doctor format format-fix lint test check build bindings dev run audit licenses package release-check clean
+ @printf '%s\n' doctor lock metadata format format-fix lint test check build bindings dev run audit licenses package release-check clean
doctor:
$(if $(strip $(EXTBUILD)),cargo extbuild doctor,@:)
@@ -16,6 +16,12 @@ doctor:
$(EXTBUILD) $(CARGO) --version
$(EXTBUILD) $(GRADLE) --version
+lock: doctor
+ $(EXTBUILD) $(CARGO) generate-lockfile --manifest-path $(CARGO_MANIFEST)
+
+metadata: doctor
+ $(EXTBUILD) $(CARGO) metadata --manifest-path $(CARGO_MANIFEST) --locked --format-version 1 --no-deps
+
format: doctor
$(EXTBUILD) $(CARGO) fmt --manifest-path $(CARGO_MANIFEST) --all -- --check
$(EXTBUILD) $(GRADLE) --no-daemon :app:desktop:ktlintCheck
diff --git a/app/desktop/build.gradle.kts b/app/desktop/build.gradle.kts
@@ -137,7 +137,7 @@ val rustSources =
"Cargo.lock",
"rust-toolchain.toml",
"compatibility/**",
- "crates/studio_*/**",
+ "crates/**",
)
exclude("target/**")
}