diff --git a/.github/template-files/config.yml b/.github/template-files/config.yml
index ad8d46b097..09f6d100d9 100644
--- a/.github/template-files/config.yml
+++ b/.github/template-files/config.yml
@@ -47,7 +47,9 @@ conda/infrastructure:
- src: templates/releases/RELEASE.md
dst: RELEASE.md
with:
- placeholder: YY.M
+ canary_channel: https://anaconda.org/conda-canary
+ placeholder: YY.MM.MICRO
+ placeholder_x: YY.MM.x
- src: templates/releases/rever.xsh
dst: rever.xsh
- src: templates/releases/TEMPLATE
diff --git a/README.md b/README.md
index 06d2889d93..12aeeb8ba7 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,14 @@
[release-badge]: https://img.shields.io/github/v/release/conda/conda?logo=github
[anaconda-badge]: https://img.shields.io/conda/vn/anaconda/conda-build?logo=anaconda
[conda-forge-badge]: https://img.shields.io/conda/vn/conda-forge/conda-build?logo=conda-forge
+[calver-badge]: https://img.shields.io/badge/calver-YY.MM.MICRO-22bfda.svg
# `conda-build`
[![GitHub Scheduled Tests][tests-badge]](https://github.com/conda/conda-build/actions/workflows/tests.yml?query=branch%3Amain+event%3Aschedule)
[![Codecov Status][codecov-badge]](https://codecov.io/gh/conda/conda-build/branch/main)
[![CodSpeed Performance Benchmarks][codspeed-badge]](https://codspeed.io/conda/conda-build)
+[![CalVer Versioning][calver-badge]](https://calver.org)
[![GitHub Release][release-badge]](https://github.com/conda/conda-build/releases)
[![Anaconda Package][anaconda-badge]](https://anaconda.org/anaconda/conda-build)
diff --git a/RELEASE.md b/RELEASE.md
index ade91a373c..32d3449c6a 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -13,12 +13,12 @@
# Release Process
> [!NOTE]
-> Throughout this document are references to the version number as `YY.M.[$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 `YY.MM.MICRO`, 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 `YY.M.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 `YY.M.x` version numbers.
+> The new release branch should adhere to the naming convention of `YY.MM.x` (note the difference to `YY.MM.MICRO`). In the case of patch/hotfix releases, however, do NOT cut a new release branch; instead, use the previously-cut `YY.MM.x` release branch.
Use the issue template below to create the release issue. After creating the release issue, pin it for easy access.
@@ -28,7 +28,7 @@ Use the issue template below to create the release issue. After creating the rel
```markdown
### Summary
-Placeholder for `conda-build YY.M.x` release.
+Placeholder for `conda-build YY.MM.x` release.
| Pilot | |
|---|---|
@@ -46,8 +46,8 @@ Placeholder for `conda-build YY.M.x` release.
The week before release week
-- [ ] Create release branch (named `YY.M.x`)
-- [ ] Ensure release candidates are being successfully built (see `conda-canary/label/rc-conda-build-YY.M.x`)
+- [ ] Create release branch (named `YY.MM.x`)
+- [ ] Ensure release candidates are being successfully built (see `conda-canary/label/rc-conda-build-YY.MM.x`)
- [ ] [Complete outstanding PRs][milestone]
- [ ] Test release candidates
@@ -59,8 +59,8 @@ Placeholder for `conda-build YY.M.x` release.
- [ ] Create release PR (see [release process][process])
- [ ] [Publish release][releases]
-- [ ] Merge `YY.M.x` back into `main`
-- [ ] Activate the `YY.M.x` branch on [ReadTheDocs][ReadTheDocs]
+- [ ] Merge `YY.MM.x` back into `main`
+- [ ] Activate the `YY.MM.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]
@@ -87,12 +87,12 @@ If a patch release is necessary, reopen the original release issue and append th
```markdown
-Patch YY.M.[$patch_number]
+Patch YY.MM.MICRO
- [ ]
- [ ] Create release PR (see [release process][process])
- [ ] [Publish release][releases]
-- [ ] Merge `YY.M.x` back into `main`
+- [ ] Merge `YY.MM.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]
@@ -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 ` 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).
@@ -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-conda-build-YY.M.x` for manual testing.
+Once the release PRs are filed, successful canary builds will be available on `https://anaconda.org/conda-canary/conda-build/files?channel=rc-conda-build-YY.MM.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.
@@ -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 YY.M.x
+ (rever) $ git checkout YY.MM.x
```
2. Create a versioned branch, this is where rever will make its changes:
```bash
- (rever) $ git checkout -b changelog-YY.M.[$patch_number]
+ (rever) $ git checkout -b changelog-YY.MM.MICRO
```
2. Run `rever --activities authors `:
@@ -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 YY.M.[$patch_number]
+ (rever) $ rever --activities authors --force YY.MM.MICRO
# changes were made to .authors.yml as per the prior bullet
(rever) $ git diff --name-only HEAD HEAD~1
@@ -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.
@@ -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 YY.M.[$patch_number]
- + 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for YY.M.[$patch_number]
+ + a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for YY.MM.MICRO
+ + 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for YY.MM.MICRO
```
7. Since rever does not include stats on first-time contributors, we will need to add this manually.
@@ -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 YY.M.[$patch_number]
- + 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for YY.M.[$patch_number]
+ + a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for YY.MM.MICRO
+ + 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for YY.MM.MICRO
+ 93fdf029fd4cf235872c12cab12a1f7e8f95a755 Add first-time contributions
```
8. Push this versioned branch.
```bash
- (rever) $ git push -u upstream changelog-YY.M.[$patch_number]
+ (rever) $ git push -u upstream changelog-YY.MM.MICRO
```
-9. Open the Release PR targing the `YY.M.x` branch.
+9. Open the Release PR targeting the `YY.MM.x` branch.
GitHub PR Template
@@ -367,8 +370,8 @@ Currently, there are only 2 activities we use rever for, (1) aggregating the aut
| Field | Value |
|---|---|
- | Choose a tag | `YY.M.[$patch_number]` |
- | Target | `YY.M.x` |
+ | Choose a tag | `YY.MM.MICRO` |
+ | Target | `YY.MM.x` |
| Body | copy/paste blurb from `CHANGELOG.md` |
@@ -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 `YY.M.x` branch and click the "New pull request" button.
+2. Find the applicable `YY.MM.x` branch and click the "New pull request" button.
-3. "Base" should point to `main` while "Compare" should point to `YY.M.x`.
+3. "Base" should point to `main` while "Compare" should point to `YY.MM.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 `YY.M.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 `YY.MM.x` and `main` branches.
5. Review and merge the pull request the same as any code change pull request.
@@ -405,7 +408,7 @@ To publish the release, go to the project's release page (e.g., https://github.c
-## 9. Open PRs to bump [Anaconda Recipes][Anaconda Recipes] and [conda-forge][conda-forge] feedstocks to use `YY.M.[$patch_number]`.
+## 9. Open PRs to bump [Anaconda Recipes][Anaconda Recipes] and [conda-forge][conda-forge] feedstocks to use `YY.MM.MICRO`.
> [!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):