Skip to content

Commit 57ebba9

Browse files
derNarrTrybnetic
authored andcommitted
reworks the documentation on how to release and how the versioning should be done in pyndl (#159)
* reworks the documentation on how to release and how the versioning should be done in pyndl * refers to versioning section in Github release step
1 parent dce2056 commit 57ebba9

File tree

1 file changed

+48
-10
lines changed

1 file changed

+48
-10
lines changed

doc/source/development.rst

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -180,16 +180,19 @@ request for another license is made and agreed on.
180180

181181
Release Process
182182
---------------
183+
1. Ensure, that the version of the branch to be mered, is adequately increased
184+
see Versioning_ below.
183185

184-
1. Merge Pull Requests with new features or bugfixes into *pyndl*'s' ``master``
185-
branch. Ensure, that the version is adequately increased (``X.Y+1.Z`` for new
186-
features and ``X.Y.Z+1`` for a bugfix).
186+
2. Merge Pull Requests with new features or bugfixes into *pyndl*'s' ``master``
187+
branch.
187188

188-
2. Create a new release on Github of the `master` branch of the form ``vX.Y.Z``.
189-
Add a description of the new feature or bugfix
189+
3. Create a new release on Github of the `master` branch of the form ``vX.Y.Z``
190+
(where ``X``, ``Y``, and ``Z`` refer to the new version). Add a description
191+
of the new feature or bugfix. For details on the version number see
192+
Versioning_ below.
190193

191-
3. Pull the repository and checkout the tag and create the distribution files
192-
using
194+
4. Pull the repository and checkout the tag and create the distribution files
195+
using:
193196

194197
.. code:: bash
195198
@@ -198,16 +201,51 @@ Release Process
198201
python setup.py build # to compile *.pyx -> *.c
199202
python setup.py sdist
200203
201-
4. Create GPG signatures of the distribution files using
204+
5. Create GPG signatures of the distribution files using:
202205

203206
.. code:: bash
204207
205208
gpg --detach-sign -a dist/pyndl-X.Y.Z.tar.gz
206209
207-
5. (maintainers only) Upload the distribution files to PyPI using twine.
210+
6. (maintainers only) Upload the distribution files to PyPI using twine.
208211

209212
.. code:: bash
210213
211214
twine upload -s dist/*
212215
213-
6. Check if the new version is on pypi (https://pypi.python.org/pypi/pyndl/).
216+
7. (maintainers only) Check if the new version is on pypi (https://pypi.python.org/pypi/pyndl/).
217+
218+
219+
Versioning
220+
----------
221+
We use a semvers versioning scheme. Assuming the current version is ``X.Y.Z``
222+
than ``X`` refers to the major version, ``Y`` refers to the minor version and
223+
``Z`` refers to a bugfix version.
224+
225+
226+
Bugfix release
227+
^^^^^^^^^^^^^^
228+
For a bugfix only merge, which does not add any new features and does not
229+
break any existing API increase the bugfix version by one (``X.Y.Z ->
230+
X.Y.Z+1``).
231+
232+
Minor release
233+
^^^^^^^^^^^^^
234+
If a merge adds new features or breaks with the existing API a deprecation
235+
warning has to be supplied which should keep the existing API. The minor
236+
version is increased by one (``X.Y.Z -> X.Y+1.Z``). Deprecation warnings should
237+
be kept until the next major version. They should warn the user that the old
238+
API is only usable in this major version and will not be available any more
239+
with the next major ``X+1.0.0`` release onwards. The deprecation warning should
240+
give the exact version number when the API becomes unavailable and the way of
241+
achieving the same behaviour.
242+
243+
Major release
244+
^^^^^^^^^^^^^
245+
If enough changes are accumulated to justify a new major release, create a new
246+
pull request which only contains the following two changes:
247+
248+
- the change of the version number from ``X.Y.Z`` to ``X+1.0.0``
249+
- remove all the API with deprecation warning introduced in the current
250+
``X.Y.Z`` release
251+

0 commit comments

Comments
 (0)