Skip to content

Commit

Permalink
🔄 Synced file(s) with conda/infra (conda#11853)
Browse files Browse the repository at this point in the history
Co-authored-by: Conda Bot <[email protected]>
  • Loading branch information
conda-bot and conda-bot authored Sep 22, 2022
1 parent f39113e commit 264a59f
Showing 1 changed file with 76 additions and 21 deletions.
97 changes: 76 additions & 21 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@

## Release Process

> **Note:**
> Throughout this document are references to the version number as `YY.M.0`, this should be replaced with the correct version number. Do **not** prefix the version with a lowercase `v`.
[epic template]: ../../issues/new?assignees=&labels=epic&template=epic.yml
[rever docs]: https://regro.github.io/rever-docs
[compare]: ../../compare
[release notes]: ../../releases/new
[new release]: ../../releases/new
[release docs]: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes

### 1. Open an issue in the applicable project for the upcoming release with the following details.
### 1. Open the Release Issue.

> **Note:**
> The [epic template][epic template] is perfect for this, just remember to remove the https://github.com/conda/infra/labels/epic label.
Expand All @@ -18,7 +22,7 @@
```markdown
### Summary

Placeholder for `conda 22.9.0` release.
Placeholder for `conda YY.M.0` release.

### Tasks

Expand All @@ -31,12 +35,12 @@ Placeholder for `conda 22.9.0` release.
- [ ] Create release PR
- See release process https://github.com/conda/infra/issues/541
- [ ] [Publish Release][releases]
- [ ] Create/update `22.9.x` branch
- [ ] Create/update `YY.M.x` branch
- [ ] Feedstocks
- [ ] Bump version [Anaconda's main][main]
- [ ] Bump version [conda-forge][conda-forge]
- Link any other feedstock PRs that are necessary
- [ ] Handoff to the Anaconda packaging team
- [ ] Hand off to the Anaconda packaging team
- [ ] Announce release
- [ ] Slack
- [ ] Twitter
Expand Down Expand Up @@ -72,7 +76,7 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
2. Create a release branch:
```bash
(rever) $ git checkout -b release-22.9.0
(rever) $ git checkout -b release-YY.M.0
```
2. Run `rever --activities authors`:
Expand All @@ -81,7 +85,7 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
> Include `--force` when re-running any rever commands for the same `<VERSION>`, otherwise, rever will skip the activity and no changes will be made (i.e., rever remembers if an activity has been run for a given version).
```bash
(rever) $ rever --activities authors <VERSION> [--force]
(rever) $ rever --activities authors --force <VERSION>
```
- If rever finds that any of the authors are not correctly represented in `.authors.yml` it will produce an error. If the author that the error pertains to is:
Expand All @@ -100,7 +104,7 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
- Here's a sample run where we undo the commit made by rever in order to commit the changes to `.authors.yml` separately:
```bash
(rever) $ rever --activities authors 22.9.0 --force
(rever) $ rever --activities authors --force YY.M.0
# changes were made to .authors.yml as per the prior bullet
(rever) $ git diff --name-only HEAD HEAD~1
Expand All @@ -109,10 +113,10 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
AUTHORS.md
# undo commit
(rever) $ git reset HEAD~1 --soft
(rever) $ git reset --soft HEAD~1
# undo changes made to everything except .authors.yml
(rever) $ git restore .mailmap AUTHORS.md
(rever) $ git restore --staged --worktree .mailmap AUTHORS.md
```
- Commit these changes to `.authors.yml`:
Expand All @@ -137,7 +141,7 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
(rever) $ git reset --soft HEAD~1
# undo changes made to everything except .mailmap
(rever) $ git restore .authors.yml AUTHORS.md
(rever) $ git restore --staged --worktree .authors.yml AUTHORS.md
```

- Commit these changes to `.mailmap`:
Expand Down Expand Up @@ -195,12 +199,12 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
> This has previously been a notoriously fickle step (likely due to incorrect regex patterns in the `rever.xsh` config file and missing `github` keys in `.authors.yml`) so beware of potential hiccups. If this fails, it's highly likely to be an innocent issue.
```bash
(rever) $ rever --activities changelog <VERSION> [--force]
(rever) $ rever --activities changelog --force <VERSION>
```
- Any necessary modifications to `.authors.yml`, `.mailmap`, or the news snippets themselves should be amended to the previous commits.
- Once you have successfully run `rever --activities changelog` with no errors simply revert the last commit:
- Once you have successfully run `rever --activities changelog` with no errors simply revert the last commit (see the next step for why):
```bash
# undo commit (and discard changes)
Expand All @@ -219,7 +223,7 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
6. Now that we have successfully run the activities separately, we wish to run both together. This will ensure that the contributor list, a side-effect of the authors activity, is included in the changelog activity.
```bash
(rever) $ rever <VERSION> [--force]
(rever) $ rever --force <VERSION>
```
- After completing this, you will have at most five commits on your release branch:
Expand All @@ -229,13 +233,13 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
+ 86957814cf235879498ed7806029b8ff5f400034 Updated .authors.yml
+ 3ec7491f2f58494a62f1491987d66f499f8113ad Updated .mailmap
+ 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Updated news
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Updated authorship for 22.9.0
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Updated CHANGELOG for 22.9.0
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Updated authorship for YY.M.0
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Updated CHANGELOG for YY.M.0
```
7. Since rever does not include stats on first-time contributors, we will need to add this manually.
- Use [GitHub's auto-generated release notes][release notes] to get a list of all new contributors (and their first PR) and manually update the contributor list in `CHANGELOG.md`.
- Use [GitHub's auto-generated release notes][new release] to get a list of all new contributors (and their first PR) and manually merge this list with the contributor list in `CHANGELOG.md`. See [GitHub docs][release docs] for how to auto-generate the release notes.
- Commit these final changes:
Expand All @@ -251,15 +255,66 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
+ 86957814cf235879498ed7806029b8ff5f400034 Updated .authors.yml
+ 3ec7491f2f58494a62f1491987d66f499f8113ad Updated .mailmap
+ 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Updated news
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Updated authorship for 22.9.0
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Updated CHANGELOG for 22.9.0
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Updated authorship for YY.M.0
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Updated CHANGELOG for YY.M.0
+ 93fdf029fd4cf235872c12cab12a1f7e8f95a755 Added first contributions
```
8. Push this release branch and open the release PR:
8. Push this release branch:
```bash
(rever) $ git push -u upstream release-22.9.0
(rever) $ git push -u upstream release-YY.M.0
```
9. Open the Release PR.
<details>
<summary>GitHub PR Template</summary>
```markdown
### Description
✂️ snip snip ✂️ the making of a new release.
Xref #<RELEASE ISSUE>
```
</details>
10. Update Release Issue to include a link to the Release PR.
11. [Create][new release] the release and **SAVE AS A DRAFT** with the following values:
> **Note:**
> Only publish the release after the Release PR is merged, until then always **save as draft**.
| Field | Value |
|---|---|
| Choose a tag | `YY.M.0` |
| Target | `main` |
| Body | copy/paste blurb from `CHANGELOG.md` |
</details>
### 4. Wait for review and approval of Release PR.
### 5. Merge Release PR and Publish Release.
### 6. Create a new branch (`YY.M.x`) corresponding with the release.
### 7. Open PRs to bump main and conda-forge feedstocks to use `YY.M.0`.
### 8. Hand off to Anaconda's packaging team.
<details>
<summary>Internal process</summary>
1. Open packaging request in #package_requests, include links to the Release PR and feedstock PRs.
2. Message packaging team/PM to let them know that a release has occurred and that you are the release manager.
</details>
### 9. Continue championing and shepherding.
Remember to continue updating the Release Issue with the latest details as tasks are completed.

0 comments on commit 264a59f

Please sign in to comment.