##// END OF EJS Templates
Add release instructions for IPython....
Matthias Bussonnier -
Show More
@@ -22,7 +22,7 b" name = 'ipython'"
22 22 _version_major = 4
23 23 _version_minor = 1
24 24 _version_patch = 0
25 _version_extra = 'dev'
25 _version_extra = '.dev'
26 26 # _version_extra = 'rc1'
27 27 # _version_extra = '' # Uncomment this for full releases
28 28
@@ -34,7 +34,7 b' _ver = [_version_major, _version_minor, _version_patch]'
34 34
35 35 __version__ = '.'.join(map(str, _ver))
36 36 if _version_extra:
37 __version__ = __version__ + '-' + _version_extra
37 __version__ = __version__ + _version_extra
38 38
39 39 version = __version__ # backwards compatibility name
40 40 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
@@ -26,3 +26,51 b' on the IPython GitHub wiki.'
26 26 pycompat
27 27 config
28 28 inputhook_app
29
30 Making an IPython release
31 =========================
32
33 Make sure the repository is clean of any file that could be problematic.
34 You can remove all non-tracked files with:
35
36 .. code::
37
38 $ git clean -xfdi
39
40 This would ask you for confirmation before removing all untracked files. Make
41 sure the ``dist/`` folder is clean and avoid stale build from
42 previous attempts.
43
44 1. Update version number in ``IPython/core/release.py``.
45
46 Make sure the version number match pep440, in particular, `rc` and `beta` are
47 not separated by `.` or the `sdist` and `bdist` will appear as different
48 releases.
49
50 2. Commit and tag the release with the current version number:
51
52 .. code::
53
54 git commit -am "release $VERSION"
55 git tag $VERSION
56
57
58 3. You are now ready to build the ``sdist`` and ``wheel``:
59
60 .. code::
61
62 $ python setup.py sdist --formats=zip,gztar
63 $ python setup.py bdist_wheel
64
65
66 4. You can now test the ``wheel`` and the ``sdist`` locally before uploading to PyPI.
67 Make sure to use `twine <https://github.com/pypa/twine>`_ to upload the archives over SSL.
68
69 .. code::
70
71 $ twine upload dist/*
72
73 5. If all went well, change the ``IPython/core/release.py`` back adding the ``.dev`` suffix.
74
75 6. Push directly on master, not forgetting to push ``--tags``.
76
@@ -23,6 +23,7 b' requires utilities which are not available under Windows."""'
23 23 from __future__ import print_function
24 24
25 25 import sys
26 import re
26 27
27 28 # This check is also made in IPython/__init__, don't forget to update both when
28 29 # changing Python version requirements.
@@ -42,7 +43,6 b' PY3 = (sys.version_info[0] >= 3)'
42 43
43 44 # Stdlib imports
44 45 import os
45 import shutil
46 46
47 47 from glob import glob
48 48
@@ -291,7 +291,14 b' else:'
291 291
292 292 setup_args.update(setuptools_extra_args)
293 293
294
295 # loose as `.dev` is suppose to be invalid
296 loose_pep440re = re.compile('^(\d+)\.(\d+)\.(\d+((a|b|rc)\d+)?)(\.post\d+)?(\.dev\d*)?$')
297
294 298 def main():
299 import IPython.core.release as r
300 if not loose_pep440re.match(r.version):
301 raise ValueError("Version number '%s' is not valid (should match [N!]N(.N)*[{a|b|rc}N][.postN][.devN])" % r.version)
295 302 setup(**setup_args)
296 303
297 304 if __name__ == '__main__':
General Comments 0
You need to be logged in to leave comments. Login now