@@ -8,35 +8,41 @@ A guide for developers who are doing a nibabel release
8
8
9
9
* Edit :file: `info.py ` and bump the version number
10
10
11
- .. _release-tools ::
11
+ .. _release-tools :
12
12
13
13
Release tools
14
14
=============
15
15
16
- In :file: `nibabel/ tools `, among other files, you will find
17
- the following utilities::
16
+ In the :file: `tools ` directory , among other files, you will find the following
17
+ utilities::
18
18
19
- nibabel/ tools/
19
+ tools/
20
20
|- build_release
21
21
|- release
22
22
|- compile.py
23
23
|- make_tarball.py
24
24
|- toollib.py
25
25
26
+ There are also some release utilities in :file: `nisext/testers.py `, with
27
+ makefile targets for their use. The relevant targets are::
28
+
29
+ make check-version-info
30
+ make sdist-tests
31
+
32
+ The first installs the code from a git archive, from the repository, and for
33
+ in-place use, and runs the ``get_info() `` function to confirm that installation
34
+ is working and information parameters are set correctly.
35
+
36
+ The second (``sdist-tests ``) makes an sdist source distribution archive,
37
+ installs it to a temporary directory, and runs the tests of that install.
38
+
26
39
.. _release-checklist :
27
40
28
41
Release checklist
29
42
=================
30
43
31
- * Make sure all tests pass.
32
-
33
44
* Review the open list of `issues <http://github.com/nipy/nibabel/issues >`_
34
45
35
- * Run :file: `build_release ` from the :file: `tools ` directory::
36
-
37
- cd tools
38
- ./build_release
39
-
40
46
* Review and update the release notes. Review and update the :file: `Changelog `
41
47
file. Get a partial list of contributors::
42
48
@@ -45,27 +51,59 @@ Release checklist
45
51
Then manually go over the *git log * to make sure the release notes are
46
52
as complete as possible and that every contributor was recognized.
47
53
48
- * Tag the release.
54
+ * Make sure all tests pass::
55
+
56
+ nosetests --with-doctest nibabel
57
+
58
+ * Make sure all tests pass from sdist::
59
+
60
+ make sdist-tests
61
+
62
+ * First pass run :file: `build_release ` from the :file: `tools ` directory::
63
+
64
+ cd tools
65
+ ./build_release
66
+
67
+ * The release should now be ready.
68
+
69
+ * Edit :file: `nibabel/info.py ` to set ``_version_extra `` to ``'' ``; commit
49
70
50
71
* Once everything looks good, run :file: `release ` from the
51
72
:file: `tools ` directory.
52
73
53
- * Announce to the mailing lists.
74
+ * Tag the release with tag of form ``1.0.0 ``::
75
+
76
+ git tag -am 'First public release' 1.0.0
77
+
78
+ * Branch to maintainance::
79
+
80
+ git co -b maint/1.0.0
54
81
55
- Releases
56
- ========
82
+ Set ``_version_extra`` back to ``.dev`` and bump ``_version_micro`` by 1.
83
+ Commmit. Push.
57
84
58
- After each release the master branch should be tagged
59
- with an annotated (or/and signed) tag, naming the intended
60
- next version, plus an 'upstream/' prefix and 'dev' suffix.
61
- For example 'upstream/1.0.0.dev' means "development start
62
- for upcoming version 1.0.0.
85
+ * Start next development series::
63
86
64
- This tag is used in the Makefile rules to create development
65
- snapshot releases to create proper versions for those. The
66
- will name the last available annotated tag, the number of
67
- commits since that, and an abbrevated SHA1. See the docs of
68
- ``git describe `` for more info.
87
+ git co main-master
88
+
89
+ then restore ``.dev`` to ``_version_extra``, and bump ``_version_minor`` by 1.
90
+
91
+ * Make next development release tag
92
+
93
+ After each release the master branch should be tagged
94
+ with an annotated (or/and signed) tag, naming the intended
95
+ next version, plus an 'upstream/' prefix and 'dev' suffix.
96
+ For example 'upstream/1.0.0.dev' means "development start
97
+ for upcoming version 1.0.0.
98
+
99
+ This tag is used in the Makefile rules to create development
100
+ snapshot releases to create proper versions for those. The
101
+ will name the last available annotated tag, the number of
102
+ commits since that, and an abbrevated SHA1. See the docs of
103
+ ``git describe `` for more info.
104
+
105
+ Please take a look at the Makefile rules ``devel-src ``,
106
+ ``devel-dsc `` and ``orig-src ``.
107
+
108
+ * Announce to the mailing lists.
69
109
70
- Please take a look at the Makefile rules ``devel-src ``,
71
- ``devel-dsc `` and ``orig-src ``.
0 commit comments