Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document Release process. #657

Open
jmarrero opened this issue May 14, 2024 · 10 comments
Open

Document Release process. #657

jmarrero opened this issue May 14, 2024 · 10 comments
Assignees

Comments

@jmarrero
Copy link
Member

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

@jmarrero jmarrero self-assigned this May 14, 2024
@cgwalters
Copy link
Member

cargo xtask package should get the artifacts, but yes

@cgwalters
Copy link
Member

I still think #432 could make a lot of sense, just as a way to more aggressively consolidate things.

@jmarrero
Copy link
Member Author

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

@cgwalters
Copy link
Member

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

@jmarrero
Copy link
Member Author

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

@jmarrero
Copy link
Member Author

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 ?

@cgwalters
Copy link
Member

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

@jmarrero
Copy link
Member Author

jmarrero commented May 14, 2024

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?

@cgwalters
Copy link
Member

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.

@jmarrero
Copy link
Member Author

jmarrero commented Jun 4, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants