Release Process¶
Changelog Fragments¶
We use towncrier to manage release notes. Each PR that affects users should
include a news fragment in the docs/newsfragments/ directory:
# Create a fragment interactively
uvx towncrier create --content "Added DLPack tensor support to the Rust core." +mychange.rustcore.added.md
The pre-commit hook checks for fragments automatically.
Preview and Build Release Notes¶
pixi r towncrier-draft # preview without writing
pixi r towncrier-build # write to CHANGELOG.md and remove fragments
Publishing the Rust Crate¶
The rgpot-core crate is published to crates.io. Before publishing:
Ensure all tests pass:
pixi r rust-test-all cargo test --doc --manifest-path rgpot-core/Cargo.toml
Verify packaging:
cargo publish --dry-run --manifest-path rgpot-core/Cargo.tomlBump the version in
rgpot-core/Cargo.toml.Regenerate the README (if changed):
pixi r -e docs gen-readmeBuild release notes:
pixi r towncrier-buildCommit and tag:
git commit -am "Release rgpot-core v0.x.y" git tag rgpot-core-v0.x.y
Publish:
cargo publish --manifest-path rgpot-core/Cargo.toml