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

Improved RELEASE.md templating #1066

Merged
merged 3 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading