##// END OF EJS Templates
Add release instructions for IPython....
Matthias Bussonnier -
Show More
@@ -22,7 +22,7 b" name = 'ipython'"
22 _version_major = 4
22 _version_major = 4
23 _version_minor = 1
23 _version_minor = 1
24 _version_patch = 0
24 _version_patch = 0
25 _version_extra = 'dev'
25 _version_extra = '.dev'
26 # _version_extra = 'rc1'
26 # _version_extra = 'rc1'
27 # _version_extra = '' # Uncomment this for full releases
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 __version__ = '.'.join(map(str, _ver))
35 __version__ = '.'.join(map(str, _ver))
36 if _version_extra:
36 if _version_extra:
37 __version__ = __version__ + '-' + _version_extra
37 __version__ = __version__ + _version_extra
38
38
39 version = __version__ # backwards compatibility name
39 version = __version__ # backwards compatibility name
40 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
40 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
@@ -26,3 +26,51 b' on the IPython GitHub wiki.'
26 pycompat
26 pycompat
27 config
27 config
28 inputhook_app
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 from __future__ import print_function
23 from __future__ import print_function
24
24
25 import sys
25 import sys
26 import re
26
27
27 # This check is also made in IPython/__init__, don't forget to update both when
28 # This check is also made in IPython/__init__, don't forget to update both when
28 # changing Python version requirements.
29 # changing Python version requirements.
@@ -42,7 +43,6 b' PY3 = (sys.version_info[0] >= 3)'
42
43
43 # Stdlib imports
44 # Stdlib imports
44 import os
45 import os
45 import shutil
46
46
47 from glob import glob
47 from glob import glob
48
48
@@ -291,7 +291,14 b' else:'
291
291
292 setup_args.update(setuptools_extra_args)
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 def main():
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 setup(**setup_args)
302 setup(**setup_args)
296
303
297 if __name__ == '__main__':
304 if __name__ == '__main__':
General Comments 0
You need to be logged in to leave comments. Login now