Show More
@@ -1,15 +1,15 b'' | |||||
1 | .. _core_developer_guide: |
|
1 | .. _core_developer_guide: | |
2 |
|
2 | |||
3 | ================================== |
|
3 | ================================== | |
4 |
Developer's guide |
|
4 | Developer's guide to core IPython | |
5 | ================================== |
|
5 | ================================== | |
6 |
|
6 | |||
7 |
This guide documents the development of core |
|
7 | This guide documents the development of core IPython. Alternatively, | |
8 |
third party tools and libraries that use IPython should see the |
|
8 | developers of third party tools and libraries that use IPython should see the | |
9 | :doc:`development/index` at `Developer's guide for Third Party Tools and Libraries`. |
|
9 | :doc:`../development/index`. | |
10 |
|
10 | |||
11 |
Developers working on IPython |
|
11 | Developers working on core IPython should also consult the | |
12 |
`developer information <https://github.com/ipython/ipython/wiki/Dev:-Index>`_ |
|
12 | `developer information <https://github.com/ipython/ipython/wiki/Dev:-Index>`_ | |
13 | on the IPython GitHub wiki. |
|
13 | on the IPython GitHub wiki. | |
14 |
|
14 | |||
15 | .. toctree:: |
|
15 | .. toctree:: |
@@ -1,7 +1,7 b'' | |||||
1 | .. old_release_doc:: |
|
1 | .. old_release_doc:: | |
2 |
|
2 | |||
3 |
Making an IPython release [TODO:: Can this |
|
3 | Making an IPython release [TODO:: Can this content by removed ???] | |
4 |
================================================================== |
|
4 | ================================================================== | |
5 |
|
5 | |||
6 | Make sure the repository is clean of any file that could be problematic. |
|
6 | Make sure the repository is clean of any file that could be problematic. | |
7 | You can remove all non-tracked files with: |
|
7 | You can remove all non-tracked files with: |
@@ -10,11 +10,11 b' Conveniently, the `release` script in the `tools` directory of the `IPython`' | |||||
10 | repository automates most of the release process. This document serves as a |
|
10 | repository automates most of the release process. This document serves as a | |
11 | handy reminder and checklist for the release manager. |
|
11 | handy reminder and checklist for the release manager. | |
12 |
|
12 | |||
13 |
|
|
13 | 1. Set Environment variables | |
14 | ---------------------------- |
|
14 | ---------------------------- | |
15 |
|
15 | |||
16 | Set environment variables to document previous release tag, current |
|
16 | Set environment variables to document previous release tag, current | |
17 | release milestone, current release version, and git tag: |
|
17 | release milestone, current release version, and git tag:: | |
18 |
|
|
18 | ||
19 | PREV_RELEASE=rel-1.0.0 |
|
19 | PREV_RELEASE=rel-1.0.0 | |
20 |
MILESTONE=1.1 |
|
20 | MILESTONE=1.1 | |
@@ -27,13 +27,13 b' questions instead of typing the appropriate command when the time comes. These' | |||||
27 | variables are not used by the scripts directly; therefore, there is no need to |
|
27 | variables are not used by the scripts directly; therefore, there is no need to | |
28 | `export` the variables. |
|
28 | `export` the variables. | |
29 |
|
29 | |||
30 | #. Finish release notes |
|
30 | 2. Create GitHub stats and finish release note | |
31 | ----------------------- |
|
31 | ---------------------------------------------- | |
32 |
|
32 | |||
33 | .. note:: |
|
33 | .. note:: | |
34 |
|
34 | |||
35 | Before generating the GitHub stats, verify that all closed issues and |
|
35 | Before generating the GitHub stats, verify that all closed issues and | |
36 |
pull requests |
|
36 | pull requests have `appropriate milestones <https://github.com/ipython/ipython/wiki/Dev%3A-GitHub-workflow#milestones>`_. | |
37 | `This search <https://github.com/ipython/ipython/issues?q=is%3Aclosed+no%3Amilestone+is%3Aissue>`_ |
|
37 | `This search <https://github.com/ipython/ipython/issues?q=is%3Aclosed+no%3Amilestone+is%3Aissue>`_ | |
38 | should return no results before creating the GitHub stats. |
|
38 | should return no results before creating the GitHub stats. | |
39 |
|
39 | |||
@@ -58,49 +58,49 b' If a major release:' | |||||
58 | content from `stats.rst` may simply be added to the top of an existing |
|
58 | content from `stats.rst` may simply be added to the top of an existing | |
59 | `github-stats-X.rst` file. |
|
59 | `github-stats-X.rst` file. | |
60 |
|
60 | |||
61 | To find duplicates and update `.mailmap`, use: |
|
61 | To find duplicates and update `.mailmap`, use:: | |
62 |
|
|
62 | ||
63 | git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f |
|
63 | git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f | |
64 |
|
64 | |||
65 |
|
65 | |||
66 |
|
|
66 | 3. Run the `tools/build_release` script | |
67 | --------------------------------------- |
|
67 | --------------------------------------- | |
68 |
|
68 | |||
69 |
|
|
69 | Running `tools/build_release` does all the file checking and building that | |
70 |
do. This makes test installations, checks that |
|
70 | the real release script will do. This makes test installations, checks that | |
71 | and tests other steps in the release process. |
|
71 | the build procedure runs OK, and tests other steps in the release process. | |
72 |
|
72 | |||
73 | We encourage creating a test build of the docs as well. |
|
73 | We encourage creating a test build of the docs as well. | |
74 |
|
74 | |||
75 |
|
|
75 | 4. Create and push the new tag | |
76 | ------------------------------ |
|
76 | ------------------------------ | |
77 |
|
77 | |||
78 | Edit `IPython/core/release.py` to have the current version. |
|
78 | Edit `IPython/core/release.py` to have the current version. | |
79 |
|
79 | |||
80 | Commit the changes to release.py and jsversion: |
|
80 | Commit the changes to release.py and jsversion:: | |
81 |
|
|
81 | ||
82 | git commit -am "release $VERSION" |
|
82 | git commit -am "release $VERSION" | |
83 |
git push origin $BRANCH |
|
83 | git push origin $BRANCH | |
84 |
|
|
84 | ||
85 | Create and push the tag: |
|
85 | Create and push the tag:: | |
86 |
|
|
86 | ||
87 | git tag -am "release $VERSION" "$TAG" |
|
87 | git tag -am "release $VERSION" "$TAG" | |
88 |
git push origin --tags |
|
88 | git push origin --tags | |
89 |
|
|
89 | ||
90 | Update release.py back to `x.y-dev` or `x.y-maint`, and push: |
|
90 | Update release.py back to `x.y-dev` or `x.y-maint`, and push:: | |
91 |
|
|
91 | ||
92 | git commit -am "back to development" |
|
92 | git commit -am "back to development" | |
93 |
git push origin $BRANCH |
|
93 | git push origin $BRANCH | |
94 |
|
|
94 | ||
95 |
|
|
95 | 5. Get a fresh clone | |
96 | -------------------- |
|
96 | -------------------- | |
97 |
|
97 | |||
98 | Get a fresh clone of the tag for building the release: |
|
98 | Get a fresh clone of the tag for building the release:: | |
99 |
|
|
99 | ||
100 | cd /tmp |
|
100 | cd /tmp | |
101 | git clone --depth 1 https://github.com/ipython/ipython.git -b "$TAG" |
|
101 | git clone --depth 1 https://github.com/ipython/ipython.git -b "$TAG" | |
102 |
|
|
102 | ||
103 |
|
|
103 | 6. Run the release script | |
104 | ------------------------- |
|
104 | ------------------------- | |
105 |
|
105 | |||
106 | Run the `release` script:: |
|
106 | Run the `release` script:: | |
@@ -112,31 +112,38 b' them to archive.ipython.org and registers the release with PyPI.' | |||||
112 |
|
112 | |||
113 | This step requires having a current wheel, Python 3.4 and Python 2.7. |
|
113 | This step requires having a current wheel, Python 3.4 and Python 2.7. | |
114 |
|
114 | |||
115 |
|
|
115 | 7. Draft a short release announcement | |
116 | ------------------------------------- |
|
116 | ------------------------------------- | |
117 |
|
117 | |||
118 | This should include i) highlights and ii) a link to the html version of |
|
118 | The announcement should include: | |
119 | the *What's new* section of the documentation. |
|
119 | ||
|
120 | - release highlights | |||
|
121 | - a link to the html version of the *What's new* section of the documentation | |||
|
122 | - a link to upgrade or installation tips (if necessary) | |||
120 |
|
123 | |||
121 | Post the announcement to the mailing list, and link from Twitter. |
|
124 | Post the announcement to the mailing list, and link from Twitter. | |
122 |
|
125 | |||
123 |
|
|
126 | 8. Update milestones on GitHub | |
124 | ------------------------------ |
|
127 | ------------------------------ | |
125 |
|
128 | |||
|
129 | These steps will bring milestones up to date: | |||
|
130 | ||||
126 | - close the just released milestone |
|
131 | - close the just released milestone | |
127 | - open a new milestone for the next release (x, y+1), if the milestone doesn't |
|
132 | - open a new milestone for the next release (x, y+1), if the milestone doesn't | |
128 | exist already |
|
133 | exist already | |
129 |
|
134 | |||
130 |
|
|
135 | 9. Update the IPython website | |
131 | ----------------------------- |
|
136 | ----------------------------- | |
|
137 | ||||
132 | The IPython website should document the new release: |
|
138 | The IPython website should document the new release: | |
133 |
|
139 | |||
134 | - add release announcement (news, announcements) |
|
140 | - add release announcement (news, announcements) | |
135 | - update current version and download links |
|
141 | - update current version and download links | |
136 | - update links on the documentation page (especially if a major release) |
|
142 | - update links on the documentation page (especially if a major release) | |
137 |
|
143 | |||
138 |
|
|
144 | 10. Celebrate! | |
139 | ------------- |
|
145 | -------------- | |
140 |
|
146 | |||
141 | Celebrate the release and thank the contributors for their work. |
|
147 | Celebrate the release and please thank the contributors for their work. Great | |
|
148 | job! | |||
142 |
|
149 |
@@ -1,14 +1,14 b'' | |||||
1 | .. _developer_guide: |
|
1 | .. _developer_guide: | |
2 |
|
2 | |||
3 | ===================================================== |
|
3 | ===================================================== | |
4 |
Developer's guide for |
|
4 | Developer's guide for third party tools and libraries | |
5 | ===================================================== |
|
5 | ===================================================== | |
6 |
|
6 | |||
7 | .. important: |
|
7 | .. important:: | |
8 |
|
8 | |||
9 | This guide contains information for developers of third party tools and |
|
9 | This guide contains information for developers of third party tools and | |
10 |
libraries that use IPython. |
|
10 | libraries that use IPython. Alternatively, documentation for core | |
11 |
*IPython |
|
11 | **IPython** development can be found in the :doc:`../coredev/index`. | |
12 |
|
12 | |||
13 | .. toctree:: |
|
13 | .. toctree:: | |
14 | :maxdepth: 1 |
|
14 | :maxdepth: 1 | |
@@ -19,53 +19,4 b" Developer's guide for Third Party Tools and Libraries" | |||||
19 | lexer |
|
19 | lexer | |
20 | pycompat |
|
20 | pycompat | |
21 | config |
|
21 | config | |
22 |
inputhook_app |
|
22 | inputhook_app No newline at end of file | |
23 |
|
||||
24 | Making an IPython release |
|
|||
25 | ========================= |
|
|||
26 |
|
||||
27 | Make sure the repository is clean of any file that could be problematic. |
|
|||
28 | You can remove all non-tracked files with: |
|
|||
29 |
|
||||
30 | .. code:: |
|
|||
31 |
|
||||
32 | git clean -xfdi |
|
|||
33 |
|
||||
34 | This would ask you for confirmation before removing all untracked files. Make |
|
|||
35 | sure the ``dist/`` folder is clean and avoid stale build from |
|
|||
36 | previous attempts. |
|
|||
37 |
|
||||
38 | 1. Update version number in ``IPython/core/release.py``. |
|
|||
39 |
|
||||
40 | Make sure the version number match pep440, in particular, `rc` and `beta` are |
|
|||
41 | not separated by `.` or the `sdist` and `bdist` will appear as different |
|
|||
42 | releases. |
|
|||
43 |
|
||||
44 | 2. Commit and tag the release with the current version number: |
|
|||
45 |
|
||||
46 | .. code:: |
|
|||
47 |
|
||||
48 | git commit -am "release $VERSION" |
|
|||
49 | git tag $VERSION |
|
|||
50 |
|
||||
51 |
|
||||
52 | 3. You are now ready to build the ``sdist`` and ``wheel``: |
|
|||
53 |
|
||||
54 | .. code:: |
|
|||
55 |
|
||||
56 | python setup.py sdist --formats=zip,gztar |
|
|||
57 | python2 setup.py bdist_wheel |
|
|||
58 | python3 setup.py bdist_wheel |
|
|||
59 |
|
||||
60 |
|
||||
61 | 4. You can now test the ``wheel`` and the ``sdist`` locally before uploading to PyPI. |
|
|||
62 | Make sure to use `twine <https://github.com/pypa/twine>`_ to upload the archives over SSL. |
|
|||
63 |
|
||||
64 | .. code:: |
|
|||
65 |
|
||||
66 | $ twine upload dist/* |
|
|||
67 |
|
||||
68 | 5. If all went well, change the ``IPython/core/release.py`` back adding the ``.dev`` suffix. |
|
|||
69 |
|
||||
70 | 6. Push directly on master, not forgetting to push ``--tags``. |
|
|||
71 |
|
General Comments 0
You need to be logged in to leave comments.
Login now