Release reference for the release/0.6.0 line and later patch releases.
| Crate | Status | Release Expectation | Notes |
|---|---|---|---|
solverforge-core |
Stable | Publish on every coordinated release | Foundational score/domain traits; lowest-level dependency |
solverforge-macros |
Stable | Publish on every coordinated release | Proc-macro surface used by the facade and templates |
solverforge-scoring |
Stable | Publish on every coordinated release | Constraint-stream and incremental scoring engine |
solverforge-config |
Stable | Publish on every coordinated release | Runtime configuration consumed by the solver layer |
solverforge-solver |
Stable | Publish on every coordinated release | Main solve engine and manager APIs |
solverforge |
Stable | Publish on every coordinated release | Public facade crate and primary library entry point |
solverforge-cvrp |
Beta | Publish on every facade version change | Required by the facade's exact-version dependency set |
solverforge-console |
Beta | Publish on every facade version change | Required for the facade's exact-version optional console feature |
solverforge-test |
Internal | Do not publish | Shared test fixtures only |
Status definitions:
Stable: public API expected to remain coherent across the release line; regressions block release.Beta: supported and versioned, but still more likely to receive usability and coverage fixes between patch releases.Internal: workspace-only support crate; not part of the published product surface.
When versions change across the workspace, publish crates in dependency order:
solverforge-coresolverforge-macrossolverforge-scoringsolverforge-configsolverforge-solversolverforge-cvrpsolverforge-consolesolverforgesolverforge-teststays unpublished.
- Confirm the release branch is correct.
Use
release/0.6.0as the base for this release line. - Confirm all release-blocking PRs are merged. Verify open issues/PRs targeted at the release branch are either merged or explicitly deferred.
- Sync version and changelog state.
Update
CHANGELOG.mdand ensure workspace crate versions are coherent. - Validate canonical docs.
Check
README.md, crateWIREFRAME.mdfiles, and this document for stale public-surface details. - Run formatting and lint gates.
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-features -- -D warnings - Run test gates.
cargo test --workspace --all-featuresmake pre-release - Verify publishability.
Run real package dry-runs for crates that can be verified before publish:
cargo publish --dry-run -p solverforge-corecargo publish --dry-run -p solverforge-macroscargo publish --dry-run -p solverforge-consoleFor dependent crates (solverforge-scoring,solverforge-config,solverforge-solver,solverforge-cvrp,solverforge), reruncargo publish --dry-run -p <crate>immediately before uploading each crate, after its exact-version dependencies are visible on crates.io. - Publish crates in dependency order.
Use
make publish-cratesor publish manually in the order listed above. - Post-publish verification.
Confirm crates.io versions, docs.rs builds, and install smoke tests:
cargo add solverforge@<version>
solverforge-cli now releases from its standalone repository and should be validated and published there.
Capture these before tagging:
- Merged PR list against
release/0.6.0 - Breaking public-surface changes, if any
- New templates, commands, macros, or helper APIs
- New validation coverage or release-risk reductions