bootupd icon indicating copy to clipboard operation
bootupd copied to clipboard

Document Release process.

Open jmarrero opened this issue 1 year ago • 11 comments

Similar to ostree and rpm-ostree we should have a RELEASE.md documenting how to do a release process here.

jmarrero avatar May 14 '24 15:05 jmarrero

cargo xtask package should get the artifacts, but yes

cgwalters avatar May 14 '24 15:05 cgwalters

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.

cgwalters avatar May 14 '24 15:05 cgwalters

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

jmarrero avatar May 14 '24 15:05 jmarrero

Nothing uses this as a crate, yeah I haven't been updating it.

cgwalters avatar May 14 '24 15:05 cgwalters

thank you, I'll document this and get the release ball rolling everywhere.

jmarrero avatar May 14 '24 15:05 jmarrero

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 ?

jmarrero avatar May 14 '24 20:05 jmarrero

I think you need to have created the git tag first locally, so the xtask knows to use it.

cgwalters avatar May 14 '24 20:05 cgwalters

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?

jmarrero avatar May 14 '24 23:05 jmarrero

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.

cgwalters avatar May 15 '24 00:05 cgwalters

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.

jmarrero avatar Jun 04 '24 19:06 jmarrero

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.

travier avatar Jul 10 '24 10:07 travier