Objective
Prepare the complete GraphForge Rust workspace for coherent first publication under project-owned graphforge-* crate names, while leaving the canonical #196 issue open for live crates.io evidence.
Acceptance criteria
- Rename all 17 workspace Cargo packages, their directories, Rust crate identifiers, imports, scripts, workflows, tests, snapshots, and documentation from
gf-* / gf_* to graphforge-* / graphforge_*.
- Define a complete 15-package crates.io surface: 14 libraries plus
graphforge-cli; keep graphforge-bindings-py and graphforge-bindings-node Cargo-private.
- Give every normal workspace path dependency an exact
0.5.0 registry fallback; keep workspace dev-dependencies path-only so Cargo excludes test-only cycles from published manifests.
- Add deterministic topological planning and a checksum-safe, resumable publisher that verifies
DecisionNerd ownership.
- Run crates publication last in the release workflow, after the PyPI and npm surfaces, using
CARGO_REGISTRY_TOKEN projected from Pulumi ESC.
- Add the Cargo clean-environment lane,
.crate release-record classification, release/version checks, and direct regression tests.
- Update the
[0.5.0] changelog and publication documentation without changing the installed gf executable name.
- All changed-surface checks, full workspace Rust tests, clippy, formatting, workflow validation, and packaging/license checks pass.
Non-goals
- Performing the live crates.io writes before the verified M1 tag and GitHub Release exist.
- Publishing the PyO3 or napi-rs implementation crates to crates.io.
- Changing GraphForge runtime behavior.
Relationships
Objective
Prepare the complete GraphForge Rust workspace for coherent first publication under project-owned
graphforge-*crate names, while leaving the canonical #196 issue open for live crates.io evidence.Acceptance criteria
gf-*/gf_*tographforge-*/graphforge_*.graphforge-cli; keepgraphforge-bindings-pyandgraphforge-bindings-nodeCargo-private.0.5.0registry fallback; keep workspace dev-dependencies path-only so Cargo excludes test-only cycles from published manifests.DecisionNerdownership.CARGO_REGISTRY_TOKENprojected from Pulumi ESC..craterelease-record classification, release/version checks, and direct regression tests.[0.5.0]changelog and publication documentation without changing the installedgfexecutable name.Non-goals
Relationships