Skip to content

Latest commit

 

History

History
76 lines (62 loc) · 3.73 KB

File metadata and controls

76 lines (62 loc) · 3.73 KB

Release Guide

Release reference for the release/0.6.0 line and later patch releases.

Stability Matrix

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.

Publish Order

When versions change across the workspace, publish crates in dependency order:

  1. solverforge-core
  2. solverforge-macros
  3. solverforge-scoring
  4. solverforge-config
  5. solverforge-solver
  6. solverforge-cvrp
  7. solverforge-console
  8. solverforge solverforge-test stays unpublished.

Release Checklist

  1. Confirm the release branch is correct. Use release/0.6.0 as the base for this release line.
  2. Confirm all release-blocking PRs are merged. Verify open issues/PRs targeted at the release branch are either merged or explicitly deferred.
  3. Sync version and changelog state. Update CHANGELOG.md and ensure workspace crate versions are coherent.
  4. Validate canonical docs. Check README.md, crate WIREFRAME.md files, and this document for stale public-surface details.
  5. Run formatting and lint gates. cargo fmt --all -- --check cargo clippy --workspace --all-targets --all-features -- -D warnings
  6. Run test gates. cargo test --workspace --all-features make pre-release
  7. Verify publishability. Run real package dry-runs for crates that can be verified before publish: cargo publish --dry-run -p solverforge-core cargo publish --dry-run -p solverforge-macros cargo publish --dry-run -p solverforge-console For dependent crates (solverforge-scoring, solverforge-config, solverforge-solver, solverforge-cvrp, solverforge), rerun cargo publish --dry-run -p <crate> immediately before uploading each crate, after its exact-version dependencies are visible on crates.io.
  8. Publish crates in dependency order. Use make publish-crates or publish manually in the order listed above.
  9. 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.

Release Notes Inputs

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