Skip to content
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/first_rc_checklist.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: First Release Candidate Checklist (maintainer only)
about: Checklist template for the first release of every series
title: Numba X.Y.Zrc0 Checklist (FIXME)
Comment thread
esc marked this conversation as resolved.
Resolved
labels: task

---


## Numba X.Y.Z

* [ ] merge to master:
- [ ] "remaining Pull-Requests from milestone"
* [ ] merge change log changes
- [ ] "PR with changelog entries
Comment thread
esc marked this conversation as resolved.
Resolved
* [ ] Create X.Y release branch
* [ ] pin llvmlite to `>=0.A.0rc1,<0.A+1.0`
* [ ] annotated tag X.Y.Zrc0 on release branch
* [ ] build and upload conda packages on buildfarm (check "upload")
* [ ] build wheels (`$PYTHON_VERSIONS`) on the buildfarm
* [ ] upload wheels and sdist to PyPI (upload from `ci_artifacts`)
* [ ] verify packages uploaded to Anaconda Cloud and move to `numba/label/main`
* [ ] verify wheels for all platforms arrived on PyPi
* [ ] verify ReadTheDocs build
* [ ] clean up `ci_artifacts`
* [ ] review, merge and check execution of release notebook
* [ ] send RC announcement email / post announcement to discourse group
* [ ] post link to Twitter
* [ ] post link to python-announce-list@python.org

### Post Release:

* [ ] tag X.Y+1.0dev0 to start new development cycle on `master`
* [ ] update llvmlite dependency spec to match next version via PR to `master`
* [ ] update release checklist template
Comment thread
stuartarchibald marked this conversation as resolved.
Resolved
* [ ] close milestone (and then close this release issue)
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/sub_rc_checklist.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Subsequent Release Candidate Checklist (maintainer only)
about: Checklist template for all subsequent releases (RC 1-N, FINAL and PATCH) of every series
Comment thread
esc marked this conversation as resolved.
Resolved
title: Numba X.Y.Zrc1 Checklist (FIXME)
labels: task

---


## numba X.Y.Z

* [ ] cherry-pick items from the X.Y.Z milestone into a PR
* [ ] merge change log modifications and cherry-picks to X.Y release branch
* [ ] https://github.com/numba/numba/pull/XXXX

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be a sub-item? I presume it would refer to the PR with the cherry-picks?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done in 98a8bef

* [ ] annotated tag X.Y.Z on release branch (no `v` prefix)
* [ ] build and upload conda packages on buildfarm (check "upload")
* [ ] build wheels (`$PYTHON_VERSIONS`) on the buildfarm
* [ ] upload wheels and sdist to PyPI (upload from `ci_artifacts`)
* [ ] verify packages uploaded to Anaconda Cloud and move to `numba/label/main`
* [ ] verify wheels for all platforms arrived on PyPi
* [ ] verify ReadTheDocs build
* [ ] clean up `ci_artifacts`
* [ ] send RC/FINAL announcement email / post announcement to discourse group
* [ ] post link to Twitter
* [ ] post link to python-announce-list@python.org

### Post release

* [ ] cherry-pick change-log modifications to main branch (`master`)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should go via a PR?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, needs the addition "via PR".

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done in 34f0949

* [ ] update release checklist template
* [ ] ping Anaconda Distro team to trigger a build for `defaults` (FINAL ONLY)
* [ ] close milestone (and then close this release issue)
1 change: 1 addition & 0 deletions docs/source/developer/first_rc_checklist.yml
1 change: 1 addition & 0 deletions docs/source/developer/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Developer Manual
:maxdepth: 2

contributing.rst
release.rst
repomap.rst
architecture.rst
dispatching.rst
Expand Down
51 changes: 51 additions & 0 deletions docs/source/developer/release.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Numba Release Checklist Templates
==================================

The goal of the Numba release process -- from a birds eye perspective -- is to
Comment thread
esc marked this conversation as resolved.
Resolved
publish source and binary artifacts that correspond to the given version
Comment thread
esc marked this conversation as resolved.
Resolved
number. This usually involves a sequence of individual tasks that must be
performed in the correct order and with diligence. Numba and llvmlite are
commonly released in lockstep since there is usually a one-to-one mapping
between a Numba version and a corresponding llvmlite version.

This section contains various notes and templates that can be used to create a
Numba release checklist on the Numba Github issue tracker. This is the aid for
Comment thread
esc marked this conversation as resolved.
Resolved
the maintainers during the release process and helps to ensure that all tasks
are completed in the correct order and that no tasks are accidentally omitted.

Historically, the release checklists were copied from one release to the next.
While this worked OKish for many years, often times tasks were lost during
repeated copy and paste. As a result this document was created to keep track of

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the history needed?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure, maybe not, it was mostly documenting my personal motivation, I can remove it if just adds overhead.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure it's necessary, a good reason for this process is presented in the previous paragraph. I'd rather spend effort keeping documentation such as this accurate with respect to changes/updates, if you feel differently am happy to discuss.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, no need for that perspective here.

all potential tasks. All templates within this document are written in Github
Markdown and are available as issue templates on Github. This means,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are they called .yml as files in the doc source tree if they are markdown .md?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the format of the templates is such that you write markdown for the template content and then wrap that in yaml to add metadata such as title etc...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, this piece of documentation threw me off:

Issue templates are stored on the repository's default branch, in a hidden .github/ISSUE_TEMPLATE directory. If you create a template in another branch, it will not be available for collaborators to use. Issue template filenames are not case sensitive, and need a .md extension. To be included in the community profile checklist, issue templates must be located in the .github/ISSUE_TEMPLATE folder and contain valid name: and about: YAML front matter.

From: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates

Will rename the files to .md.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

to create a new release checklist, simply open a new issue and select the
correct template.

If new or additional items do appear during release, please do remember to add
them to the checklist templates. Note also, that the release process itself is
always a work in progress. This means, some of the information here may be
outdated. If you detect this, please do remember to submit a pull-request to
update this document.
Comment thread
esc marked this conversation as resolved.
Resolved


Primary Release Candidate Checklist
-----------------------------------

This is for the first/primary release candidate for minor release. I.e. the
Comment thread
esc marked this conversation as resolved.
Resolved
first release of every series. It is special, because during this release, the
release branch will have to be created. Release candidate indexing begins at 0.
Comment thread
esc marked this conversation as resolved.
Resolved

.. literalinclude:: first_rc_checklist.yml
:language: md
:lines: 9-
Comment thread
stuartarchibald marked this conversation as resolved.
Resolved


Second Releases Candidates, Final Releases and Patch Releases
-------------------------------------------------------------
Comment thread
esc marked this conversation as resolved.
Resolved

A patch release usually involves a series of cherry-picks, so the recipe is
slightly different.
Comment thread
esc marked this conversation as resolved.
Resolved

.. literalinclude:: sub_rc_checklist.yml
:language: md
:lines: 9-
1 change: 1 addition & 0 deletions docs/source/developer/sub_rc_checklist.yml