🏷️ Explain release process with manual tagging#14
Conversation
|
Yup, pushing tags (and the bump commit straight via main) doesn't work. The problem was always:
|
crate_release_strategy.md
Outdated
| #### Creating a release on GitHub | ||
|
|
||
| While [the CI process](###the-automated-ci-process) runs, click `Draft a new release` on the `releases` page on GitHub. Select the tag matching the version just pushed by `cargo-release` above, and click `Generate release notes` to automatically populate the title and description. Modify both as necessary. In particular, release notes convey user-facing changes: remove internal changes such as clippy fixes and other cleanups. When breaking changes are made or new features are added, spend an extra paragraph at the top detailing how users should migrate to or make use of the new release 🥳! | ||
| We generally disallow pushing to `main` on all repos, meaning new releases need to go into main through a PR. After `cargo release`, the developer needs to PR the changes made due to the release. |
There was a problem hiding this comment.
- meaning new releases need to go into main through a PR
- needs to PR the changes made due to the release
One sentence that says the same thing twice.
crate_release_strategy.md
Outdated
|
|
||
| While [the CI process](###the-automated-ci-process) runs, click `Draft a new release` on the `releases` page on GitHub. Select the tag matching the version just pushed by `cargo-release` above, and click `Generate release notes` to automatically populate the title and description. Modify both as necessary. In particular, release notes convey user-facing changes: remove internal changes such as clippy fixes and other cleanups. When breaking changes are made or new features are added, spend an extra paragraph at the top detailing how users should migrate to or make use of the new release 🥳! | ||
| We generally disallow pushing to `main` on all repos, meaning new releases need to go into main through a PR. After `cargo release`, the developer needs to PR the changes made due to the release. | ||
| Once this is merged, the developer then needs to manually create a new tag for the release . |
There was a problem hiding this comment.
| Once this is merged, the developer then needs to manually create a new tag for the release . | |
| Once this is merged, the developer then needs to manually create a new tag for the release. |
We typically don't have rights for this either, AFAIK.
So we cannot push a tag to main either? How do we do releases then? |
|
To be extra pedantic, there's no such thing as "push a tag to main". Both a tag and branch are "just" a reference to a commit. It's the "repository" or "upstream" that you push something to. In my experience, whenever I didn't have permission to push commits to |
Co-authored-by: Marijn Suijten <marijn@traverseresearch.nl>
Sorry, bad wording on my part. The question still remains though, if we cannot push tags either, what is the supposed release workflow? I can see some of our repos are getting release tags and Github releases, such as |
|
@KYovchevski what I once wanted was (approximately) this:
That would also solve the permission step, but I just never automated step 4. yet. In some crates however, we "kind of" automate 4./6. by always running Note also that I've been migrating repositories to crates.io Trusted Publishing. |
After brief talk with Jasper about intended push access for our repos, the conclusion reached is that the actual expected release strategy is to:
--allow-branchAnd then continue the process same as we've done until now. Essentially, we have the release go through a PR and tag it ourselves instead of letting
cargo-releasedo that.