These steps assume that you've checked out the scale-info repository and are in the root directory of it.
We also assume that ongoing work done is being merged directly to the master branch.
-
Ensure that everything you'd like to see released is on the
masterbranch. -
Create a release branch off
master, for examplerelease-v0.17.0. Decide how far the version needs to be bumped based on the changes to date. -
Check that you're happy with the current documentation.
cargo doc --openIf there are minor issues with the documentation, they can be fixed in the release branch.
-
Bump the crate versions in
./Cargo.tomland./derive/Cargo.tomlto whatever was decided in step 2 (basically a find and replace from old version to new version in this file should do the trick). -
Update
CHANGELOG.mdto reflect the difference between this release and the last. See theCHANGELOG.mdfile for details of the format it follows.First, if there have been any significant changes, add a description of those changes to the top of the changelog entry for this release.
-
Commit any of the above changes to the release branch and open a PR in GitHub with a base of
master. -
Once the branch has been reviewed and passes CI, merge it.
-
Now, we're ready to publish the release to crates.io.
-
Checkout
master, ensuring we're looking at that latest merge (git pull).git checkout master && git pull -
Perform a final sanity check that everything looks ok.
cargo test --all-targets -
Run the following command to publish both crates.
(cd derive && cargo publish) && cargo publish
-
-
If the release was successful, tag the commit that we released in the
masterbranch with the version that we just released, for example:git tag -s v2.7.0 # use the version number you've just published to crates.io, not this one git push --tagsOnce this is pushed, go along to the releases page on GitHub and draft a new release which points to the tag you just pushed to
masterabove. Copy the changelog comments for the current release into the release description.