Skip to content

Commit bea1b8e

Browse files
authored
Merge pull request #3793 from h-mayorquin/add_how_to_make_a_release_notes
Add how to make a release notes
2 parents d06beb2 + 06e0814 commit bea1b8e

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

doc/development/development.rst

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,3 +397,52 @@ After this you need to add a block in `Install Sorters <https://github.com/Spike
397397
to describe your sorter.
398398

399399
Finally, make a pull request so we can review the code and incorporate into the sorters module of SpikeInterface!
400+
401+
402+
403+
How to make a release
404+
---------------------
405+
406+
Checklist
407+
^^^^^^^^^
408+
* pyproject.toml: check that the version is ahead of current release. Also, comment out the @ (git dependencies)
409+
* In the top level ``__init__`` (located at ``src/spikeinterface/__init__.py``) set ``DEV_MODE`` to ``False`` (this is used for the docker installations)
410+
* Create a new release note for the appropriate version on doc/releases/new_version_tag.
411+
412+
There can be large releases like:
413+
414+
``doc/releases/0.101.0.rst``
415+
416+
Which contain a section called "Main Changes" and minor releases which include only bug fixes like:
417+
418+
``doc/releases/0.101.2.rst``
419+
420+
To collect all the PRs and bug fixes we have a script in:
421+
``doc/scripts/``
422+
called ``auto-release-notes.sh``. Run it with ``bash auto-release-notes.sh`` and it will create the release notes for the module specific changes.
423+
424+
The first time you run the script, GitHub will guide you through an authorization process if you've not already done so.
425+
426+
The signature of the script is:
427+
428+
.. code-block:: bash
429+
430+
bash auto-release-notes.sh <start_date> <end_date>
431+
432+
Where the start date is the date of the last release and the end date is the current date. Dates are in YYYY-MM-DD format
433+
434+
The date of the last release can be found on `PyPI <https://pypi.org/project/spikeinterface/>`_.
435+
436+
437+
As a specific example:
438+
.. code-block:: bash
439+
440+
bash auto-release-notes.sh 2025-02-19 2025-03-24
441+
442+
* Finish the release notes and merge
443+
* Locally tag the main branch with the newly merged release notes with the new version
444+
* Push the tag to the remote repository which will trigger the release action (.github/workflows/publish-to-pypi.yml)
445+
* Do an after-release `PR <https://github.com/SpikeInterface/spikeinterface/pull/3828/files>`_:
446+
- Uncomment the git installs in pyproject
447+
- Set ``DEV_MODE`` to ``True`` in the top level ``__init__`` (located at ``src/spikeinterface/__init__.py``)
448+
- Update `pyproject.toml` version one patch ahead or one minor if it is larger one.

0 commit comments

Comments
 (0)