Release Process
RepX follows Semantic Versioning for all components.
Version Locations
Update version numbers in the following files:
| File | Field |
|---|---|
Cargo.toml | workspace.package.version |
python/src/pyproject.toml | project.version |
default.nix | version |
nix/lib/lab-packagers.nix | labVersion |
After updating Cargo.toml, regenerate the lockfile:
cargo generate-lockfile
Release Workflow
- Update version numbers in all locations
- Commit changes:
git commit -m "chore: bump version to X.Y.Z" - Create annotated tag:
git tag -a vX.Y.Z -m "Release X.Y.Z" - Push with tags:
git push --follow-tags
CI/CD Pipeline
GitHub Actions automatically:
- Runs
nix flake checkon all supported platforms - Builds release binaries via
nix build - Deploys documentation to GitHub Pages
Pre-release Checklist
Before tagging a release:
# Run full check suite
nix flake check
# Build all packages
nix build .#repx
nix build .#repx-static
nix build .#repx-py
nix build .#docs
# Verify examples
nix run .#check-repx-examples