Publishing new versions - rudof-project/rudof GitHub Wiki
Requisites
- According to this answer, it seems to require to have libssl-dev library installed. You can install it in Linux using:
sudo apt install libssl-dev
NOTE (2026-02-20): Review/check if this is still necessary...
Automatic way
- First time: install cargo workspaces so you can use
cargo wscommand. - Each time:
- Run
cargo ws versionto change to a new version. It will update theCargo.tomlfile in each workspace and push the tag to github. See this help for more information. - Run
cargo ws publish --publish-as-isto publish the changed workspaces in crates.io. See this help. I think I could skip the previous command and try to do all of this in one step...but when it fails, it is difficult to keep track of what failed and I had to publish manually.
- Run
Manual way
At this moment (until I know how to automate it) the process to publish a new version is a bit manual. It requires two steps:
- Update the versions in
cargo.tomlof the different crates. - Publish each crate individually taking care of the dependency order. The command to publish a crate is:
cargo publish -p module
The dependency order at this moment is:
iri_sprefixmapsrdfrberbe_testsuiteshex_astshapemapshex_compactshex_validationshex_testsuiteshacl_astdctaprudof-cli
After publishing each crate, add a tag for the release using:
git tag -a v0.1.0 -m "v0.1.0"
git push origin v0.1.0
And finally create the release from github interface.
Note
To increment all the versions of the crates at once, it should be possible to use:
cargo ws version
But it requires to have cargo-workspaces installed which is currently failing in my WSL.
All this depends on issue 1169 from Cargo project
Once the crates have been published, we publish manually the release from the tag in the github web interface.