Skip to content

Commit

Permalink
Improved RELEASE.md templating (#1066)
Browse files Browse the repository at this point in the history
* Replace `[[ placeholder ]].[$patch_number]` with `[[ placeholder ]]`
* Replace `[[ placeholder ]].x` with `[[ placeholder-x ]]`
* Add `[[ canary-channel ]]` to avoid hardcoding conda-canary channel
  • Loading branch information
kenodegard authored Nov 21, 2024
1 parent ebd9b0f commit 96bc949
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 27 deletions.
8 changes: 7 additions & 1 deletion templates/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,13 @@ conda/infrastructure:
# - src: templates/releases/RELEASE.md
# dst: RELEASE.md
# with:
# placeholder: YY.M
# canary-channel: https://anaconda.org/conda-canary
# # CalVer placeholders
# placeholder: YY.M.PATCH
# placeholder-x: YY.M.x
# # SemVer placeholders
# placeholder: MAJOR.MINOR.MINOR
# placeholder-x: MAJOR.MINOR.x
# - src: templates/releases/rever.xsh
# dst: rever.xsh
# - src: templates/releases/TEMPLATE
Expand Down
55 changes: 29 additions & 26 deletions templates/releases/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
# Release Process

> [!NOTE]
> Throughout this document are references to the version number as `[[ placeholder ]].[$patch_number]`, this should be replaced with the correct version number. Do **not** prefix the version with a lowercase `v`.
> Throughout this document are references to the version number as `[[ placeholder ]]`, this should be replaced with the correct version number. Do **not** prefix the version with a lowercase `v`.
## 1. Open the release issue and cut a release branch. (do this ~1 week prior to release)

> [!NOTE]
> The new release branch should adhere to the naming convention of `[[ placeholder ]].x` (make sure to put the `.x` at the end!). In the case of patch/hotfix releases, however, do NOT cut a new release branch; instead, use the previously-cut release branch with the appropriate `[[ placeholder ]].x` version numbers.
> The new release branch should adhere to the naming convention of `[[ placeholder-x ]]` (note the difference to `[[ placeholder ]]`). In the case of patch/hotfix releases, however, do NOT cut a new release branch; instead, use the previously-cut `[[ placeholder-x ]]` release branch.
Use the issue template below to create the release issue. After creating the release issue, pin it for easy access.

Expand All @@ -28,7 +28,7 @@ Use the issue template below to create the release issue. After creating the rel
```markdown
### Summary

Placeholder for `[[ repo.name ]] [[ placeholder ]].x` release.
Placeholder for `[[ repo.name ]] [[ placeholder-x ]]` release.

| Pilot | <pilot> |
|---|---|
Expand All @@ -46,8 +46,8 @@ Placeholder for `[[ repo.name ]] [[ placeholder ]].x` release.
<details open> <!-- feel free to remove the open attribute once this section is completed -->
<summary><h4>The week before release week</h4></summary>

- [ ] Create release branch (named `[[ placeholder ]].x`)
- [ ] Ensure release candidates are being successfully built (see `conda-canary/label/rc-[[ repo.name ]]-[[ placeholder ]].x`)
- [ ] Create release branch (named `[[ placeholder-x ]]`)
- [ ] Ensure release candidates are being successfully built (see `conda-canary/label/rc-[[ repo.name ]]-[[ placeholder-x ]]`)
- [ ] [Complete outstanding PRs][milestone]
- [ ] Test release candidates
<!-- indicate here who has signed off on testing -->
Expand All @@ -59,8 +59,8 @@ Placeholder for `[[ repo.name ]] [[ placeholder ]].x` release.

- [ ] Create release PR (see [release process][process])
- [ ] [Publish release][releases]
- [ ] Merge `[[ placeholder ]].x` back into `main`
- [ ] Activate the `[[ placeholder ]].x` branch on [ReadTheDocs][ReadTheDocs]
- [ ] Merge `[[ placeholder-x ]]` back into `main`
- [ ] Activate the `[[ placeholder-x ]]` branch on [ReadTheDocs][ReadTheDocs]
- [ ] Feedstocks
- [ ] Bump version & update dependencies/tests in [Anaconda, Inc.'s feedstock][main]
- [ ] Bump version & update dependencies/tests in [conda-forge feedstock][conda-forge]
Expand All @@ -87,12 +87,12 @@ If a patch release is necessary, reopen the original release issue and append th

```markdown
<details open> <!-- feel free to remove the open attribute once this section is completed -->
<summary><h4>Patch [[ placeholder ]].[$patch_number]</h4></summary>
<summary><h4>Patch [[ placeholder ]]</h4></summary>

- [ ] <!-- list issues & PRs that need to be resolved here -->
- [ ] Create release PR (see [release process][process])
- [ ] [Publish release][releases]
- [ ] Merge `[[ placeholder ]].x` back into `main`
- [ ] Merge `[[ placeholder-x ]]` back into `main`
- [ ] Feedstocks
- [ ] Bump version & update dependencies/tests in [Anaconda, Inc.'s feedstock][main]
- [ ] Bump version & update dependencies/tests in [conda-forge feedstock][conda-forge]
Expand All @@ -106,6 +106,9 @@ If a patch release is necessary, reopen the original release issue and append th
> [!NOTE]
> The [epic template][epic template] is perfect for this; remember to remove the **`epic`** label.
> [!NOTE]
> A patch release is like a regular, i.e., follow the same steps in the process as you would for a regular release. Most patches are authored by existing contributors (most likely maintainers themselves) so running `rever <VERSION>` may succeed on the first pass.
## 2. Alert various parties of the upcoming release. (do this ~1 week prior to release)

Let various interested parties know about the upcoming release; at minimum, conda-forge maintainers should be informed. For major features, a blog post describing the new features should be prepared and posted once the release is completed (see the announcements section of the release issue).
Expand All @@ -114,7 +117,7 @@ Let various interested parties know about the upcoming release; at minimum, cond

### Canary Builds for Manual Testing

Once the release PRs are filed, successful canary builds will be available on `https://anaconda.org/conda-canary/conda/files?channel=rc-[[ repo.name ]]-[[ placeholder ]].x` for manual testing.
Once the release PRs are filed, successful canary builds will be available on `[[ canary-channel ]]/[[ repo.name ]]/files?channel=rc-[[ repo.name ]]-[[ placeholder-x ]]` for manual testing.

> [!NOTE]
> You do not need to apply the `build::review` label for release PRs; every commit to the release branch builds and uploads canary builds to the respective `rc-` label.
Expand Down Expand Up @@ -147,13 +150,13 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
```bash
(rever) $ git fetch upstream
(rever) $ git checkout [[ placeholder ]].x
(rever) $ git checkout [[ placeholder-x ]]
```
2. Create a versioned branch, this is where rever will make its changes:
```bash
(rever) $ git checkout -b changelog-[[ placeholder ]].[$patch_number]
(rever) $ git checkout -b changelog-[[ placeholder ]]
```
2. Run `rever --activities authors <VERSION>`:
Expand Down Expand Up @@ -181,7 +184,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 --force [[ placeholder ]].[$patch_number]
(rever) $ rever --activities authors --force [[ placeholder ]]
# changes were made to .authors.yml as per the prior bullet
(rever) $ git diff --name-only HEAD HEAD~1
Expand Down Expand Up @@ -250,7 +253,7 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
> * Add `win-arm64` as a known platform (subdir). (#11778)
> ```
- You can utilize [GitHub's compare view][compare] to review what changes are to be included in this release. Make sure you compare the current release branch against the previous one (e.g., `24.5.x` would be compared against `24.3.x`)
- You can utilize [GitHub's compare view][compare] to review what changes are to be included in this release. Make sure you compare the current release branch against the previous one
- Add a new news snippet for any PRs of importance that are missing.
Expand Down Expand Up @@ -310,8 +313,8 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
+ 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Update news
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for [[ placeholder ]].[$patch_number]
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for [[ placeholder ]].[$patch_number]
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for [[ placeholder ]]
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for [[ placeholder ]]
```
7. Since rever does not include stats on first-time contributors, we will need to add this manually.
Expand All @@ -332,18 +335,18 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
+ 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Update news
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for [[ placeholder ]].[$patch_number]
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for [[ placeholder ]].[$patch_number]
+ a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for [[ placeholder ]]
+ 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for [[ placeholder ]]
+ 93fdf029fd4cf235872c12cab12a1f7e8f95a755 Add first-time contributions
```
8. Push this versioned branch.
```bash
(rever) $ git push -u upstream changelog-[[ placeholder ]].[$patch_number]
(rever) $ git push -u upstream changelog-[[ placeholder ]]
```
9. Open the Release PR targing the `[[ placeholder ]].x` branch.
9. Open the Release PR targeting the `[[ placeholder-x ]]` branch.
<details>
<summary>GitHub PR Template</summary>
Expand All @@ -367,8 +370,8 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
| Field | Value |
|---|---|
| Choose a tag | `[[ placeholder ]].[$patch_number]` |
| Target | `[[ placeholder ]].x` |
| Choose a tag | `[[ placeholder ]]` |
| Target | `[[ placeholder-x ]]` |
| Body | copy/paste blurb from `CHANGELOG.md` |
</details>
Expand All @@ -389,14 +392,14 @@ To publish the release, go to the project's release page (e.g., https://github.c
1. From the main "< > Code" page of the repository, select the drop down menu next to the `main` branch button and then select "View all branches" at the very bottom.
2. Find the applicable `[[ placeholder ]].x` branch and click the "New pull request" button.
2. Find the applicable `[[ placeholder-x ]]` branch and click the "New pull request" button.
3. "Base" should point to `main` while "Compare" should point to `[[ placeholder ]].x`.
3. "Base" should point to `main` while "Compare" should point to `[[ placeholder-x ]]`.
4. Ensure that all of the commits being pulled in look accurate, then select "Create pull request".
> [!NOTE]
> Make sure NOT to push the "Update Branch" button. If there are [merge conflicts][merge conflicts], create a temporary "connector branch" dedicated to fixing merge conflicts separately from the `[[ placeholder ]].x` and `main` branches.
> Make sure NOT to push the "Update Branch" button. If there are [merge conflicts][merge conflicts], create a temporary "connector branch" dedicated to fixing merge conflicts separately from the `[[ placeholder-x ]]` and `main` branches.
5. Review and merge the pull request the same as any code change pull request.
Expand All @@ -405,7 +408,7 @@ To publish the release, go to the project's release page (e.g., https://github.c
</details>
## 9. Open PRs to bump [Anaconda Recipes][Anaconda Recipes] and [conda-forge][conda-forge] feedstocks to use `[[ placeholder ]].[$patch_number]`.
## 9. Open PRs to bump [Anaconda Recipes][Anaconda Recipes] and [conda-forge][conda-forge] feedstocks to use `[[ placeholder ]]`.
> [!NOTE]
> Conda-forge's PRs will be auto-created via the `regro-cf-autotick-bot`. Follow the instructions below if any changes need to be made to the recipe that were not automatically added (these instructions are only necessary for anyone who is _not_ a conda-forge feedstock maintainer, since maintainers can push changes directly to the autotick branch):
Expand Down

0 comments on commit 96bc949

Please sign in to comment.