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.
write release notes
write release notes in docs/release-notes.md; get them reviewed and merged
if doing a branched release, also include a PR to merge the docs/release-notes.md changes into main
make sure the project is clean and prepare the environment:
Make sure cargo-release is up to date: cargo install cargo-release
cargo test --all-features
cargo clean
git clean -fd
RELEASE_VER=x.y.z
UPSTREAM_REMOTE=origin
create release commit on a dedicated branch and tag it (the commit and tag will be signed with the GPG signing key you configured):
git checkout -b release-${RELEASE_VER}
cargo release --execute ${RELEASE_VER} (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
)cargo vendor-filterer
(suggested:cargo install -f cargo-vendor-filterer
)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.write release notes
docs/release-notes.md
; get them reviewed and mergeddocs/release-notes.md
changes into mainmake sure the project is clean and prepare the environment:
cargo-release
is up to date:cargo install cargo-release
cargo test --all-features
cargo clean
git clean -fd
RELEASE_VER=x.y.z
UPSTREAM_REMOTE=origin
create release commit on a dedicated branch and tag it (the commit and tag will be signed with the GPG signing key you configured):
git checkout -b release-${RELEASE_VER}
cargo release --execute ${RELEASE_VER}
(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-filterer --format=tar.gz target/coreos-installer-${RELEASE_VER}-vendor.tar.gz
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 the local environment (optional, but recommended):
cargo clean
git checkout main
git pull ${UPSTREAM_REMOTE} main
git push ${UPSTREAM_REMOTE} :release-${RELEASE_VER}
git branch -d release-${RELEASE_VER}
Fedora packaging:
rust-coreos-installer
spec file in FedoraVersion
Release
back to1%{?dist}
spectool -g -S rust-coreos-installer.spec
kinit [email protected]
fedpkg new-sources $(spectool -S rust-coreos-installer.spec | sed 's:.*/::')
fedpkg build
rust-coreos-installer
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:
coreos-installer
spec fileVersion
Release
back to1%{?dist}
spectool -g -S coreos-installer.spec
kinit [email protected]
rhpkg new-sources $(spectool -S coreos-installer.spec | sed 's:.*/::')
rhpkg build
CentOS Stream 9 packaging:
rebase-c9s-coreos-installer
issue in the internal team-operations repo and follow the steps thereThe text was updated successfully, but these errors were encountered: