Thank you for your interest in contributing to dfxvm! By participating in
this project, you agree to abide by our Code of Conduct.
All code contributions are subject to our Contributor License Agreement (CLA). When you open your first PR, the CLA bot will prompt you to agree to the CLA before the PR can be reviewed and merged.
Every change to the command-line interface must contain documentation.
We use clap, so Rustdoc comments turn into CLI documentation. Additionally,
this in-code documentation must be mirrored by a corresponding change
in docs/cli-reference. Finally, any feature or notable bugfix should be
mentioned in CHANGELOG.md, under the ## Unreleased header.
Prerequisites to make a release:
cargo install cargo-release --version 0.25.17
cargo install cargo-dist --version 0.28.0 --locked- Use
cargo-releaseversion0.25.17as the versions above require rustc1.85or newer, but the Rust toolchain for dfxvm is still1.84.0which is defined here - Use
--lockedto installcargo-distto avoid upgrading some dependencies to the latest versions which have compatibility problems.
You can run cargo install --list to make sure if you have the correct cargo-release and cargo-dist installed.
To make a release, follow these steps:
-
Run the Prepare Release workflow.
Make sure you choose the right option to specify the correct SemVer version.
-
Obtain approval and merge the PR that the workflow generated.
The PR created by a workflow won't trigger other workflows according to this document.You can simply use
git commit --allow-emptyto create an empty commit and push to trigger the jobs. -
Run the following locally:
git checkout main git pull dist plan cargo release --execute
- The
dist plancommand will get a plan of what to build, and check project status. - The
cargo release --executewill push the tag according to the version created by the PR in previsou step, and execute the Release workflow.
- The