@@ -180,16 +180,19 @@ request for another license is made and agreed on.
180
180
181
181
Release Process
182
182
---------------
183
+ 1. Ensure, that the version of the branch to be mered, is adequately increased
184
+ see Versioning _ below.
183
185
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.
187
188
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.
190
193
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:
193
196
194
197
.. code :: bash
195
198
@@ -198,16 +201,51 @@ Release Process
198
201
python setup.py build # to compile *.pyx -> *.c
199
202
python setup.py sdist
200
203
201
- 4 . Create GPG signatures of the distribution files using
204
+ 5 . Create GPG signatures of the distribution files using:
202
205
203
206
.. code :: bash
204
207
205
208
gpg --detach-sign -a dist/pyndl-X.Y.Z.tar.gz
206
209
207
- 5 . (maintainers only) Upload the distribution files to PyPI using twine.
210
+ 6 . (maintainers only) Upload the distribution files to PyPI using twine.
208
211
209
212
.. code :: bash
210
213
211
214
twine upload -s dist/*
212
215
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