bootupd
bootupd copied to clipboard
Document Release process.
Similar to ostree and rpm-ostree we should have a RELEASE.md documenting how to do a release process here.
cargo xtask package should get the artifacts, but yes
I still think https://github.com/coreos/bootupd/issues/432 could make a lot of sense, just as a way to more aggressively consolidate things.
No need to update the create? I see it has not been updated in a while... but if we are folding it maybe we deprecate it in creates.io
Nothing uses this as a crate, yeah I haven't been updating it.
thank you, I'll document this and get the release ball rolling everywhere.
using cargo xtask package I get:
Using version 202405100315.0.2.19
Generated: target/bootupd-202405100315.0.2.19.tar.zstd
But I see in the previous release these files: bootupd-0.2.18-vendor.tar.zstd bootupd-0.2.18.crate
do you just rename bootupd-202405100315.0.2.19.tar.zstd to bootupd-0.2.19-vendor.tar.zstd ?
And the create is just uploading after running cargo package the target/package/bootupd-0.2.19.crate ?
I think you need to have created the git tag first locally, so the xtask knows to use it.
sadly that does not help. This is my draft:
# Releasing bootupd
1. Increment the `version` in `Cargo.toml` and `Cargo.lock`.
2. Submit as a PR and wait until reviewed *and* CI is green.
3. Once merged, do `git pull $upstream && git reset --hard $upstream/main` on
your local `main` branch to make sure you're on the right commit.
4. Draft release notes by seeding a HackMD.io with `git shortlog $last_tag..`
and ideally collaborating with others. Filter out the merge commits. See previous releases for format.
5. Use [`git-evtag`](https://github.com/cgwalters/git-evtag) to create a signed
tag with the release notes as its content. Make the first line be the name of
the tag itself. i.e. `v0.2.19`
6. Push the tag using `git push $upstream v0.2.xx`.
7. Create the tarball and crate: `cargo xtask package && cargo package
8. Create a GitHub release for the new release tag using its contents and
attach the tarball and crate from the /target folder.
but it seems that the tarball does not have the vendored libraries? Need some magic from cargo vendor or cargo vendor filtered?
Right, for this project we produce two tarballs; one which is a git snapshot and one which includes the vendored sources separately. This is distinct from what we do in rpm-ostree today. I'd like to switch to having a separate vendored tarball snapshot as I think it's a lot clearer.
bootc works the same way.
Forgot to add that I ended doing
cargo xtask package && cargo xtask vendor
then
mv vendor.tar.zstd bootupd-0.2.19-vendor.tar.zstd
Finally attach the target/package/bootupd-0.2.19.crate & recently renamed bootupd-0.2.19-vendor.tar.zstd to the release in github.
Will add a RELEASE.md with the steps.
I had started this effort in https://github.com/coreos/repo-templates/issues/30 / https://github.com/coreos/repo-templates/pull/40. Likely need an update.