Skip to content

Commit 4f01396

Browse files
committed
Document release process
Closes #2942.
1 parent 35c3492 commit 4f01396

File tree

1 file changed

+53
-20
lines changed

1 file changed

+53
-20
lines changed

doc/development.rst

Lines changed: 53 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,6 @@ AMICI developer’s guide
44
This document contains information for AMICI developers, not too
55
relevant to regular users.
66

7-
Branches / releases
8-
-------------------
9-
10-
For AMICI, we mostly do `trunk-based development <https://trunkbaseddevelopment.com/>`__.
11-
All new contributions are merged into ``main`` after passing the test suite
12-
and code review. Releases are usually created directly from ``main``.
13-
New releases are created on GitHub and are automatically deployed to
14-
`Zenodo <https://doi.org/10.5281/zenodo.597928>`__ for
15-
archiving and to obtain a digital object identifier (DOI) to make them
16-
citable. Furthermore, our `CI pipeline <documentation/CI.md>`__ will
17-
automatically create and deploy a new release on
18-
`PyPI <https://pypi.org/project/amici/>`__.
19-
20-
We try to keep a clean git history. Therefore, feature pull requests are
21-
squash-merged to ``main``.
22-
237
When starting to work on some issue
248
-----------------------------------
259

@@ -131,11 +115,60 @@ C++
131115
- For new code, we use `Google's C++ style guide <https://google.github.io/styleguide/cppguide.html>`__ as a reference.
132116

133117

134-
Matlab
135-
^^^^^^
118+
Branches / releases
119+
-------------------
120+
121+
For AMICI, we mostly do `trunk-based development <https://trunkbaseddevelopment.com/>`__.
122+
All new contributions are merged into ``main`` after passing the test suite
123+
and code review. Releases are usually created directly from ``main``.
124+
New releases are created on GitHub and are automatically deployed to
125+
`Zenodo <https://doi.org/10.5281/zenodo.597928>`__ for
126+
archiving and to obtain a digital object identifier (DOI) to make them
127+
citable. Furthermore, our `CI pipeline <documentation/CI.md>`__ will
128+
automatically create and deploy a new release on
129+
`PyPI <https://pypi.org/project/amici/>`__.
130+
131+
We try to keep a clean git history. Therefore, feature pull requests are
132+
squash-merged to ``main``.
133+
134+
Release process
135+
^^^^^^^^^^^^^^^
136+
137+
Releases are created by the maintainer team.
138+
139+
To create a new release, please follow these steps:
140+
141+
1. Ensure that all changes intended for the new release are merged
142+
into ``main``.
143+
144+
2. Update ``CHANGELOG.md`` with a short description of the changes
145+
included in the new release. Focus on user-relevant changes.
146+
147+
3. Bump the version number in `version.txt` according to
148+
`Semantic Versioning <https://semver.org/>`__.
149+
150+
4. Regenerate the test models by running
151+
152+
```shell
153+
python -c "from amici.testing.models import import_test_models; import_test_models()"
154+
```
155+
156+
This ensures that the models can be imported with the new version.
157+
158+
5. Create a new release on GitHub, using the new version number prefixed
159+
by "v" (e.g., "v0.12.0"). Copy the relevant parts of
160+
``CHANGELOG.md`` into the release notes.
161+
162+
6. After creating the release, our GitHub Actions pipeline will automatically
163+
create and deploy the new release on Zenodo and PyPI.
164+
Verify that this was successful.
165+
166+
In rare cases, it might be necessary to create a hotfix release for a
167+
critical bug in an existing release. In this case, create a new branch
168+
from the respective tag, apply the fix (usually a backport from ``main``),
169+
and follow the same steps as above, starting from step 2.
170+
Merge the updated CHANGELOG and version bump back into ``main`` afterwards.
136171

137-
No new Matlab code should be added to AMICI
138-
(see `#2727 <https://github.com/AMICI-dev/AMICI/issues/2727>`__).
139172

140173
Further topics
141174
--------------

0 commit comments

Comments
 (0)