You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bump the version number in Cargo.toml. Usually you just want to bump the patch.
Run cargo build to ensure Cargo.lock would be updated
Commit changes git commit -a -m 'Release x.y.z'; include some useful brief changelog.
Prepare the release
Run ./ci/prepare-release.sh
Validate that origin points to the canonical upstream repository and not your fork: git remote show origin should not be github.com/$yourusername/$project but should
be under the organization ownership. The remote yourname should be for your fork.
open and merge a PR for this release:
git push --set-upstream origin release
open a web browser and create a PR for the branch above
make sure the resulting PR contains the commit
in the PR body, write a short changelog with relevant changes since last release
$ ./ci/prepare-release.sh
Updating crates.io index
error: all dependencies must have a version specified when publishing.
dependency `bootc-utils` does not specify a version
Note: The published dependency will use the version from crates.io,
the `git` specification will be removed from the dependency declaration.
Release process
The release process follows the usual PR-and-review flow, allowing an external reviewer to have a final check before publishing.
In order to ease downstream packaging of Rust binaries, an archive of vendored dependencies is also provided (only relevant for offline builds).
Requirements
This guide requires:
git
cargo
(suggested: latest stable toolchain from rustup)cargo-release
(suggested:cargo install -f cargo-release
)cargo vendor-filterer
(suggested:cargo install -f cargo-vendor-filterer
)Release checklist
Prepare local branch+commit
git checkout -b release
Cargo.toml
. Usually you just want to bump the patch.cargo build
to ensureCargo.lock
would be updatedgit commit -a -m 'Release x.y.z'
; include some useful brief changelog.Prepare the release
./ci/prepare-release.sh
Validate that
origin
points to the canonical upstream repository and not your fork:git remote show origin
should not begithub.com/$yourusername/$project
but shouldbe under the organization ownership. The remote
yourname
should be for your fork.open and merge a PR for this release:
git push --set-upstream origin release
publish the artifacts (tag and crate):
git fetch origin && git checkout ${RELEASE_COMMIT}
Cargo.toml
has the expected versiongit-evtag sign v${RELEASE_VER}
git push --tags origin v${RELEASE_VER}
cargo publish
publish this release on GitHub:
git shortlog $last_tag..
(i.e. re-use the PR content). See previous releases for format, for examplev0.2.25
target/${PROJECT}-${RELEASE_VER}-vendor.tar.gz
sha256sum target/package/${PROJECT}-${RELEASE_VER}.crate
sha256sum target/${PROJECT}-${RELEASE_VER}-vendor.tar.gz
clean up:
git push origin :release
cargo clean
git checkout main
Fedora packaging:
rust-bootupd
spec file in FedoraVersion
spectool -g -S rust-bootupd.spec
kinit [email protected]
fedpkg new-sources <crate-name> <vendor-tarball-name>
fedpkg build
rust-bootupd
forPackages
link to GitHub release
"Update name
blankType
,Severity
andSuggestion
can be left asunspecified
unless it is a security release. In that case selectsecurity
with the appropriate severity.Stable karma
andUnstable
karma can be set to2
and-1
, respectively.RHCOS packaging:
rust-bootupd
spec fileVersion
Release
back to1%{?dist}
spectool -g -S rust-bootupd.spec
kinit [email protected]
rhpkg new-sources <crate-name> <vendor-tarball-name>
rhpkg build
CentOS Stream 9 packaging:
The text was updated successfully, but these errors were encountered: