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
This project uses cargo-release in order to prepare new releases, tag and sign the relevant git commit, and publish the resulting artifacts to crates.io.
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).
These steps show how to release version x.y.z on the origin remote (this can be checked via git remote -av).
Push access to the upstream repository is required in order to publish the new tag and the PR branch.
⚠️: if origin is not the name of the locally configured remote that points to the upstream git repository (i.e. [email protected]:coreos/coreos-installer.git), be sure to assign the correct remote name to the UPSTREAM_REMOTE variable.
make sure the project is clean and prepare the environment:
cargo test
cargo clean
git clean -fd
RELEASE_VER=x.y.z
UPSTREAM_REMOTE=origin
create release commits on a dedicated branch and tag it (the commits and tag will be signed with the GPG signing key you configured):
git checkout -b release-${RELEASE_VER}
cargo release (and confirm the version when prompted)
Release process
This project uses cargo-release in order to prepare new releases, tag and sign the relevant git commit, and publish the resulting artifacts to crates.io.
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
)Release checklist
These steps show how to release version
x.y.z
on theorigin
remote (this can be checked viagit remote -av
).Push access to the upstream repository is required in order to publish the new tag and the PR branch.
origin
is not the name of the locally configured remote that points to the upstream git repository (i.e.[email protected]:coreos/coreos-installer.git
), be sure to assign the correct remote name to theUPSTREAM_REMOTE
variable.make sure the project is clean and prepare the environment:
cargo test
cargo clean
git clean -fd
RELEASE_VER=x.y.z
UPSTREAM_REMOTE=origin
create release commits on a dedicated branch and tag it (the commits and tag will be signed with the GPG signing key you configured):
git checkout -b release-${RELEASE_VER}
cargo release
(and confirm the version when prompted)open and merge a PR for this release:
git push ${UPSTREAM_REMOTE} release-${RELEASE_VER}
publish the artifacts (tag and crate):
git checkout v${RELEASE_VER}
grep "^version = \"${RELEASE_VER}\"$" Cargo.toml
produces outputgit push ${UPSTREAM_REMOTE} v${RELEASE_VER}
cargo publish
assemble vendor archive:
cargo vendor target/vendor
tar -czf target/coreos-installer-${RELEASE_VER}-vendor.tar.gz -C target vendor
publish this release on GitHub:
target/coreos-installer-${RELEASE_VER}-vendor.tar.gz
sha256sum target/package/coreos-installer-${RELEASE_VER}.crate
sha256sum target/coreos-installer-${RELEASE_VER}-vendor.tar.gz
update the
release
tag on Quay:release
, and confirmclean up:
cargo clean
git checkout main
git pull ${UPSTREAM_REMOTE} main
git push ${UPSTREAM_REMOTE} :release-${RELEASE_VER}
git branch -d release-${RELEASE_VER}
The text was updated successfully, but these errors were encountered: