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__ |
|
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