Skip to content

Commit

Permalink
clarification of the release instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
woutdenolf committed Aug 14, 2024
1 parent 5a8cae6 commit 999c8f7
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,9 @@ How-to make a release
---------------------

Use cases
+++++++++++++
+++++++++

The `release branch` is the ``main`` branch, except for bug fix releases.

Release candidates
..................
Expand All @@ -97,49 +99,54 @@ Major/minor releases
....................

Follow this release process.

Bug fix releases
................

- For ``vM.m.1``, first create a ``M.m`` branch from the ``vM.m.0`` tag.
- For ``vM.m.1``, first create a ``M.m`` branch from the ``vM.m.0`` tag when not already done.
- Merge relevant pull requests on the ``M.m`` branch.
- Follow this release process, but for the branch ``M.m`` instead of ``main``.
- Follow this release process, but with release branch ``M.m`` instead of ``main``.

Pre-release testing
+++++++++++++++++++

Automated tests
...............

- Run the `release workflow`_ manually (see `manually running a workflow`_) to check that the release artifacts are built correctly.
- Run the `release workflow`_ called "Build and deploy" manually on the release branch (see `manually running a workflow`_).
This is to verify that the release artifacts are built correctly.
The wheels generated by the workflow can be downloaded from the release workflow run web page.
*Note: Running the workflow manually do NOT publish artifacts to pypi.*
*Note: Running the workflow manually does NOT publish artifacts to pypi.*

- Run the `previous release workflow`_ with the following variables:
- Run the `bob workflow`_ with the following variables:
- ``REPOSITORY``: ``https://github.com/<user>/silx`` (default: ``https://github.com/silx-kit/silx``)
- ``TAG``: branch or tag to test (default: ``main`` branch)

Manual testing
..............

Download wheels generated by the github release workflow from the github action release workflow web page and install silx from those wheels locally for manual testing.
Download wheels generated by the github release workflow from the github action release workflow web page and install silx
from those wheels locally for manual testing.

Prepare the release
+++++++++++++++++++

Write the release notes
.......................

- Generate the list of pull requests included in the release with github's automatically generated release notes (see `github automatically generated release notes`_) between a new tag and the previous release.
- Generate the list of pull requests included in the release with github's automatically generated release notes
(see `github automatically generated release notes`_) between a new tag and the previous release.
- Copy the generated changelog to ``CHANGELOG.rst`` and close github's release web page.
**Warning: DO NOT publish the release yet!**
- Sort, curate and fix the list of PRs and match the styling of previous release notes.

Steps
.....

- Create a branch from the release branch.
- Update ``CHANGELOG.rst``.
- Bump the version number in ``src/silx/_version.py``.
- Create a pull request with those changes, wait for reviews and merge it.
- Create a pull request to the release branch with those changes, wait for reviews and merge it.

Publish the release
+++++++++++++++++++
Expand All @@ -149,13 +156,14 @@ Create the release

* Draft a new release from `github new release page`_ using similar conventions as previous releases:
- Create a new tag which **MUST** be named ``v<release_version>`` and match the version in ``src/silx/_version.py``.
- Select the release branch as the target.
- Combine the release notes manually edited from ``CHANGELOG.rst`` with `github automatically generated release notes`_.
* Press the "Publish release" button to trigger the release workflow which builds the documentation, the source tarball, the wheels and the Windows "fat binaries".
* Press the "Publish release" button to push the new tag to the release branch and trigger the release workflow which builds
the documentation, the source tarball, the wheels and the Windows "fat binaries" of the release.

Publish Windows "fat binaries"
..............................


Once Windows "fat binaries" are built and tested, the release workflow requests the approval from a reviewer of the "assets" `deployment environment`_.
Upon approval, the following files are added to the github release assets:

Expand Down Expand Up @@ -189,7 +197,7 @@ Once this PR is merged, the new version is published on conda-forge.
.. _manually running a workflow: https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow
.. _github new release page: https://github.com/silx-kit/silx/releases/new
.. _github automatically generated release notes: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#creating-automatically-generated-release-notes-for-a-new-release
.. _previous release workflow: https://gitlab.esrf.fr/silx/bob/silx/-/pipelines/new
.. _bob workflow: https://gitlab.esrf.fr/silx/bob/silx/-/pipelines/new
.. _deployment environment: https://github.com/silx-kit/silx/settings/environments
.. _pypi: https://pypi.org/project/silx/
.. _silx feedstock: https://github.com/conda-forge/silx-feedstock

0 comments on commit 999c8f7

Please sign in to comment.