##// END OF EJS Templates
Update stats and docs for 6.0 release.
Matthias Bussonnier -
Show More
@@ -0,0 +1,49 b''
1 Issues closed in the 6.x development cycle
2 ==========================================
3
4 Issues closed in 6.0
5 --------------------
6
7 GitHub stats for 2017/04/10 - 2017/04/19 (milestone: 6.0)
8
9 These lists are automatically generated, and may be incomplete or contain duplicates.
10
11 We closed 49 issues and merged 145 pull requests.
12 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A6.0+>`__
13
14 The following 34 authors contributed 176 commits.
15
16 * Adam Eury
17 * anantkaushik89
18 * Antonino Ingargiola
19 * Benjamin Ragan-Kelley
20 * Carol Willing
21 * Chilaka Ramakrishna
22 * chillaranand
23 * Denis S. Tereshchenko
24 * Diego Garcia
25 * fatData
26 * Fermi paradox
27 * fuho
28 * Grant Nestor
29 * Ian Rose
30 * Jeroen Demeyer
31 * kaushikanant
32 * Keshav Ramaswamy
33 * Matteo
34 * Matthias Bussonnier
35 * mbyt
36 * Michael KΓ€ufl
37 * michaelpacer
38 * Moez Bouhlel
39 * Pablo Galindo
40 * Paul Ivanov
41 * Piotr Przetacznik
42 * Rounak Banik
43 * sachet-mittal
44 * Srinivas Reddy Thatiparthy
45 * Tamir Bahar
46 * Thomas Hisch
47 * Thomas Kluyver
48 * Utkarsh Upadhyay
49 * Yuri Numerov
@@ -1,309 +1,310 b''
1 .. _core_developer_guide:
1 .. _core_developer_guide:
2
2
3 =================================
3 =================================
4 Guide for IPython core Developers
4 Guide for IPython core Developers
5 =================================
5 =================================
6
6
7 This guide documents the development of IPython itself. Alternatively,
7 This guide documents the development of IPython itself. Alternatively,
8 developers of 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`.
9 :doc:`../development/index`.
10
10
11
11
12 For instructions on how to make a developer install see :ref:`devinstall`.
12 For instructions on how to make a developer install see :ref:`devinstall`.
13
13
14 Backporting Pull requests
14 Backporting Pull requests
15 -------------------------
15 -------------------------
16
16
17 All pull requests should usually be made against ``master``, if a Pull Request
17 All pull requests should usually be made against ``master``, if a Pull Request
18 need to be backported to an earlier release; then it should be tagged with the
18 need to be backported to an earlier release; then it should be tagged with the
19 correct ``milestone``.
19 correct ``milestone``.
20
20
21 If you are an admin on the IPython repository just mention the **backport bot** to
21 If you are an admin on the IPython repository just mention the **backport bot** to
22 do the work for you. The bot is evolving so instructions may be different. At
22 do the work for you. The bot is evolving so instructions may be different. At
23 the time of this writing you can use::
23 the time of this writing you can use::
24
24
25 @meeseeksdev[bot] backport to <branchname>
25 @meeseeksdev[bot] backport to <branchname>
26
26
27 The bot will attempt to backport the current pull-request and issue a PR if
27 The bot will attempt to backport the current pull-request and issue a PR if
28 possible.
28 possible.
29
29
30 .. note::
30 .. note::
31
31
32 The ``@`` and ``[dev]`` when mentioning the bot should be optional and can
32 The ``@`` and ``[dev]`` when mentioning the bot should be optional and can
33 be omitted.
33 be omitted.
34
34
35
35
36 Backport with ghpro
36 Backport with ghpro
37 -------------------
37 -------------------
38
38
39 We can also use `ghpro <https://pypi.python.org/pypi/ghpro>`
39 We can also use `ghpro <https://pypi.python.org/pypi/ghpro>`
40 to automatically list and apply the PR on other branches. For example:
40 to automatically list and apply the PR on other branches. For example:
41
41
42 .. code-block:: bash
42 .. code-block:: bash
43
43
44 $ backport-pr todo --milestone 5.2
44 $ backport-pr todo --milestone 5.2
45 [...snip..]
45 [...snip..]
46 The following PRs have been backported
46 The following PRs have been backported
47 9848
47 9848
48 9851
48 9851
49 9953
49 9953
50 9955
50 9955
51 The following PRs should be backported:
51 The following PRs should be backported:
52 9417
52 9417
53 9863
53 9863
54 9925
54 9925
55 9947
55 9947
56
56
57 $ backport-pr apply 5.x 9947
57 $ backport-pr apply 5.x 9947
58 [...snip...]
58 [...snip...]
59
59
60
60
61 .. _release_process:
61 .. _release_process:
62
62
63 =======================
63 =======================
64 IPython release process
64 IPython release process
65 =======================
65 =======================
66
66
67 This document contains the process that is used to create an IPython release.
67 This document contains the process that is used to create an IPython release.
68
68
69 Conveniently, the ``release`` script in the ``tools`` directory of the ``IPython``
69 Conveniently, the ``release`` script in the ``tools`` directory of the ``IPython``
70 repository automates most of the release process. This document serves as a
70 repository automates most of the release process. This document serves as a
71 handy reminder and checklist for the release manager.
71 handy reminder and checklist for the release manager.
72
72
73 During the release process, you might need the extra following dependencies:
73 During the release process, you might need the extra following dependencies:
74
74
75 - ``keyring`` to access your GitHub authentication tokens
75 - ``keyring`` to access your GitHub authentication tokens
76 - ``graphviz`` to generate some graphs in the documentation
76 - ``graphviz`` to generate some graphs in the documentation
77 - ``ghpro`` to generate the stats
77
78
78 Make sure you have all the required dependencies to run the tests as well.
79 Make sure you have all the required dependencies to run the tests as well.
79
80
80
81
81 1. Set Environment variables
82 1. Set Environment variables
82 ----------------------------
83 ----------------------------
83
84
84 Set environment variables to document previous release tag, current
85 Set environment variables to document previous release tag, current
85 release milestone, current release version, and git tag.
86 release milestone, current release version, and git tag.
86
87
87 These variables may be used later to copy/paste as answers to the script
88 These variables may be used later to copy/paste as answers to the script
88 questions instead of typing the appropriate command when the time comes. These
89 questions instead of typing the appropriate command when the time comes. These
89 variables are not used by the scripts directly; therefore, there is no need to
90 variables are not used by the scripts directly; therefore, there is no need to
90 ``export`` them. The format for bash is as follows, but note that these values
91 ``export`` them. The format for bash is as follows, but note that these values
91 are just an example valid only for the 5.0 release; you'll need to update them
92 are just an example valid only for the 5.0 release; you'll need to update them
92 for the release you are actually making::
93 for the release you are actually making::
93
94
94 PREV_RELEASE=4.2.1
95 PREV_RELEASE=4.2.1
95 MILESTONE=5.0
96 MILESTONE=5.0
96 VERSION=5.0.0
97 VERSION=5.0.0
97 BRANCH=master
98 BRANCH=master
98
99
99
100
100 2. Create GitHub stats and finish release note
101 2. Create GitHub stats and finish release note
101 ----------------------------------------------
102 ----------------------------------------------
102
103
103 .. note::
104 .. note::
104
105
105 This step is optional if making a Beta or RC release.
106 This step is optional if making a Beta or RC release.
106
107
107 .. note::
108 .. note::
108
109
109 Before generating the GitHub stats, verify that all closed issues and pull
110 Before generating the GitHub stats, verify that all closed issues and pull
110 requests have `appropriate milestones
111 requests have `appropriate milestones
111 <https://github.com/ipython/ipython/wiki/Dev:-GitHub-workflow#milestones>`_.
112 <https://github.com/ipython/ipython/wiki/Dev:-GitHub-workflow#milestones>`_.
112 `This search
113 `This search
113 <https://github.com/ipython/ipython/issues?q=is%3Aclosed+no%3Amilestone+is%3Aissue>`_
114 <https://github.com/ipython/ipython/issues?q=is%3Aclosed+no%3Amilestone+is%3Aissue>`_
114 should return no results before creating the GitHub stats.
115 should return no results before creating the GitHub stats.
115
116
116 If a major release:
117 If a major release:
117
118
118 - merge any pull request notes into what's new::
119 - merge any pull request notes into what's new::
119
120
120 python tools/update_whatsnew.py
121 python tools/update_whatsnew.py
121
122
122 - update ``docs/source/whatsnew/development.rst``, to ensure it covers
123 - update ``docs/source/whatsnew/development.rst``, to ensure it covers
123 the major release features
124 the major release features
124
125
125 - move the contents of ``development.rst`` to ``versionX.rst`` where ``X`` is
126 - move the contents of ``development.rst`` to ``versionX.rst`` where ``X`` is
126 the numerical release version
127 the numerical release version
127
128
128 - generate summary of GitHub contributions, which can be done with::
129 - generate summary of GitHub contributions, which can be done with::
129
130
130 python tools/github_stats.py --milestone $MILESTONE > stats.rst
131 python tools/github_stats.py --milestone $MILESTONE > stats.rst
131
132
132 which may need some manual cleanup of ``stats.rst``. Add the cleaned
133 which may need some manual cleanup of ``stats.rst``. Add the cleaned
133 ``stats.rst`` results to ``docs/source/whatsnew/github-stats-X.rst``
134 ``stats.rst`` results to ``docs/source/whatsnew/github-stats-X.rst``
134 where ``X`` is the numerical release version (don't forget to add it to
135 where ``X`` is the numerical release version (don't forget to add it to
135 the git repo as well). If creating a major release, make a new
136 the git repo as well). If creating a major release, make a new
136 ``github-stats-X.rst`` file; if creating a minor release, the content
137 ``github-stats-X.rst`` file; if creating a minor release, the content
137 from ``stats.rst`` may simply be added to the top of an existing
138 from ``stats.rst`` may simply be added to the top of an existing
138 ``github-stats-X.rst`` file. Finally, edit
139 ``github-stats-X.rst`` file. Finally, edit
139 ``docs/source/whatsnew/index.rst`` to list the new ``github-stats-X``
140 ``docs/source/whatsnew/index.rst`` to list the new ``github-stats-X``
140 file you just created and remove temporarily the first entry called
141 file you just created and remove temporarily the first entry called
141 ``development`` (you'll need to add it back after release).
142 ``development`` (you'll need to add it back after release).
142
143
143 Make sure that the stats file has a header or it won't be rendered in
144 Make sure that the stats file has a header or it won't be rendered in
144 the final documentation.
145 the final documentation.
145
146
146 To find duplicates and update `.mailmap`, use::
147 To find duplicates and update `.mailmap`, use::
147
148
148 git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f
149 git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f
149
150
150 If a minor release you might need to do some of the above points manually, and
151 If a minor release you might need to do some of the above points manually, and
151 forward port the changes.
152 forward port the changes.
152
153
153 3. Make sure the repository is clean
154 3. Make sure the repository is clean
154 ------------------------------------
155 ------------------------------------
155
156
156 of any file that could be problematic.
157 of any file that could be problematic.
157 Remove all non-tracked files with:
158 Remove all non-tracked files with:
158
159
159 .. code::
160 .. code::
160
161
161 git clean -xfdi
162 git clean -xfdi
162
163
163 This will ask for confirmation before removing all untracked files. Make
164 This will ask for confirmation before removing all untracked files. Make
164 sure the ``dist/`` folder is clean to avoid any stale builds from
165 sure the ``dist/`` folder is clean to avoid any stale builds from
165 previous build attempts.
166 previous build attempts.
166
167
167
168
168 4. Update the release version number
169 4. Update the release version number
169 ------------------------------------
170 ------------------------------------
170
171
171 Edit ``IPython/core/release.py`` to have the current version.
172 Edit ``IPython/core/release.py`` to have the current version.
172
173
173 in particular, update version number and ``_version_extra`` content in
174 in particular, update version number and ``_version_extra`` content in
174 ``IPython/core/release.py``.
175 ``IPython/core/release.py``.
175
176
176 Step 5 will validate your changes automatically, but you might still want to
177 Step 5 will validate your changes automatically, but you might still want to
177 make sure the version number matches pep440.
178 make sure the version number matches pep440.
178
179
179 In particular, ``rc`` and ``beta`` are not separated by ``.`` or the ``sdist``
180 In particular, ``rc`` and ``beta`` are not separated by ``.`` or the ``sdist``
180 and ``bdist`` will appear as different releases. For example, a valid version
181 and ``bdist`` will appear as different releases. For example, a valid version
181 number for a release candidate (rc) release is: ``1.3rc1``. Notice that there
182 number for a release candidate (rc) release is: ``1.3rc1``. Notice that there
182 is no separator between the '3' and the 'r'. Check the environment variable
183 is no separator between the '3' and the 'r'. Check the environment variable
183 ``$VERSION`` as well.
184 ``$VERSION`` as well.
184
185
185 You will likely just have to modify/comment/uncomment one of the lines setting
186 You will likely just have to modify/comment/uncomment one of the lines setting
186 ``_version_extra``
187 ``_version_extra``
187
188
188
189
189 5. Run the `tools/build_release` script
190 5. Run the `tools/build_release` script
190 ---------------------------------------
191 ---------------------------------------
191
192
192 Running ``tools/build_release`` does all the file checking and building that
193 Running ``tools/build_release`` does all the file checking and building that
193 the real release script will do. This makes test installations, checks that
194 the real release script will do. This makes test installations, checks that
194 the build procedure runs OK, and tests other steps in the release process.
195 the build procedure runs OK, and tests other steps in the release process.
195
196
196 The ``build_release`` script will in particular verify that the version number
197 The ``build_release`` script will in particular verify that the version number
197 match PEP 440, in order to avoid surprise at the time of build upload.
198 match PEP 440, in order to avoid surprise at the time of build upload.
198
199
199 We encourage creating a test build of the docs as well.
200 We encourage creating a test build of the docs as well.
200
201
201 6. Create and push the new tag
202 6. Create and push the new tag
202 ------------------------------
203 ------------------------------
203
204
204 Commit the changes to release.py::
205 Commit the changes to release.py::
205
206
206 git commit -am "release $VERSION"
207 git commit -am "release $VERSION"
207 git push origin $BRANCH
208 git push origin $BRANCH
208
209
209 Create and push the tag::
210 Create and push the tag::
210
211
211 git tag -am "release $VERSION" "$VERSION"
212 git tag -am "release $VERSION" "$VERSION"
212 git push origin --tags
213 git push origin --tags
213
214
214 Update release.py back to ``x.y-dev`` or ``x.y-maint``, and re-add the
215 Update release.py back to ``x.y-dev`` or ``x.y-maint``, and re-add the
215 ``development`` entry in ``docs/source/whatsnew/index.rst`` and push::
216 ``development`` entry in ``docs/source/whatsnew/index.rst`` and push::
216
217
217 git commit -am "back to development"
218 git commit -am "back to development"
218 git push origin $BRANCH
219 git push origin $BRANCH
219
220
220 Now checkout the tag we just made::
221 Now checkout the tag we just made::
221
222
222 git checkout $VERSION
223 git checkout $VERSION
223
224
224 7. Run the release script
225 7. Run the release script
225 -------------------------
226 -------------------------
226
227
227 Run the ``release`` script, this step requires having a current wheel, Python
228 Run the ``release`` script, this step requires having a current wheel, Python
228 >=3.4 and Python 2.7.::
229 >=3.4 and Python 2.7.::
229
230
230 ./tools/release
231 ./tools/release
231
232
232 This makes the tarballs and wheels, and puts them under the ``dist/``
233 This makes the tarballs and wheels, and puts them under the ``dist/``
233 folder. Be sure to test the ``wheels`` and the ``sdist`` locally before
234 folder. Be sure to test the ``wheels`` and the ``sdist`` locally before
234 uploading them to PyPI. We do not use an universal wheel as each wheel
235 uploading them to PyPI. We do not use an universal wheel as each wheel
235 installs an ``ipython2`` or ``ipython3`` script, depending on the version of
236 installs an ``ipython2`` or ``ipython3`` script, depending on the version of
236 Python it is built for. Using an universal wheel would prevent this.
237 Python it is built for. Using an universal wheel would prevent this.
237
238
238 Use the following to actually upload the result of the build::
239 Use the following to actually upload the result of the build::
239
240
240 ./tools/release upload
241 ./tools/release upload
241
242
242 It should posts them to ``archive.ipython.org`` and to PyPI.
243 It should posts them to ``archive.ipython.org`` and to PyPI.
243
244
244 PyPI/Warehouse will automatically hide previous releases. If you are uploading
245 PyPI/Warehouse will automatically hide previous releases. If you are uploading
245 a non-stable version, make sure to log-in to PyPI and un-hide previous version.
246 a non-stable version, make sure to log-in to PyPI and un-hide previous version.
246
247
247
248
248 8. Draft a short release announcement
249 8. Draft a short release announcement
249 -------------------------------------
250 -------------------------------------
250
251
251 The announcement should include:
252 The announcement should include:
252
253
253 - release highlights
254 - release highlights
254 - a link to the html version of the *What's new* section of the documentation
255 - a link to the html version of the *What's new* section of the documentation
255 - a link to upgrade or installation tips (if necessary)
256 - a link to upgrade or installation tips (if necessary)
256
257
257 Post the announcement to the mailing list and or blog, and link from Twitter.
258 Post the announcement to the mailing list and or blog, and link from Twitter.
258
259
259 .. note::
260 .. note::
260
261
261 If you are doing a RC or Beta, you can likely skip the next steps.
262 If you are doing a RC or Beta, you can likely skip the next steps.
262
263
263 9. Update milestones on GitHub
264 9. Update milestones on GitHub
264 -------------------------------
265 -------------------------------
265
266
266 These steps will bring milestones up to date:
267 These steps will bring milestones up to date:
267
268
268 - close the just released milestone
269 - close the just released milestone
269 - open a new milestone for the next release (x, y+1), if the milestone doesn't
270 - open a new milestone for the next release (x, y+1), if the milestone doesn't
270 exist already
271 exist already
271
272
272 10. Update the IPython website
273 10. Update the IPython website
273 ------------------------------
274 ------------------------------
274
275
275 The IPython website should document the new release:
276 The IPython website should document the new release:
276
277
277 - add release announcement (news, announcements)
278 - add release announcement (news, announcements)
278 - update current version and download links
279 - update current version and download links
279 - update links on the documentation page (especially if a major release)
280 - update links on the documentation page (especially if a major release)
280
281
281 11. Update readthedocs
282 11. Update readthedocs
282 ----------------------
283 ----------------------
283
284
284 Make sure to update readthedocs and set the latest tag as stable, as well as
285 Make sure to update readthedocs and set the latest tag as stable, as well as
285 checking that previous release is still building under its own tag.
286 checking that previous release is still building under its own tag.
286
287
287 12. Update the Conda-Forge feedstock
288 12. Update the Conda-Forge feedstock
288 ------------------------------------
289 ------------------------------------
289
290
290 Follow the instructions on `the repository <https://github.com/conda-forge/ipython-feedstock>`_
291 Follow the instructions on `the repository <https://github.com/conda-forge/ipython-feedstock>`_
291
292
292 13. Celebrate!
293 13. Celebrate!
293 --------------
294 --------------
294
295
295 Celebrate the release and please thank the contributors for their work. Great
296 Celebrate the release and please thank the contributors for their work. Great
296 job!
297 job!
297
298
298
299
299
300
300 Old Documentation
301 Old Documentation
301 =================
302 =================
302
303
303 Out of date documentation is still available and have been kept for archival purposes.
304 Out of date documentation is still available and have been kept for archival purposes.
304
305
305 .. note::
306 .. note::
306
307
307 Developers documentation used to be on the IPython wiki, but are now out of
308 Developers documentation used to be on the IPython wiki, but are now out of
308 date. The wiki is though still available for historical reasons: `Old IPython
309 date. The wiki is though still available for historical reasons: `Old IPython
309 GitHub Wiki. <https://github.com/ipython/ipython/wiki/Dev:-Index>`_
310 GitHub Wiki. <https://github.com/ipython/ipython/wiki/Dev:-Index>`_
@@ -1,45 +1,46 b''
1 .. Developers should add in this file, during each release cycle, information
1 .. Developers should add in this file, during each release cycle, information
2 .. about important changes they've made, in a summary format that's meant for
2 .. about important changes they've made, in a summary format that's meant for
3 .. end users. For each release we normally have three sections: features, bug
3 .. end users. For each release we normally have three sections: features, bug
4 .. fixes and api breakage.
4 .. fixes and api breakage.
5 .. Please remember to credit the authors of the contributions by name,
5 .. Please remember to credit the authors of the contributions by name,
6 .. especially when they are new users or developers who do not regularly
6 .. especially when they are new users or developers who do not regularly
7 .. participate in IPython's development.
7 .. participate in IPython's development.
8
8
9 .. _whatsnew_index:
9 .. _whatsnew_index:
10
10
11 =====================
11 =====================
12 What's new in IPython
12 What's new in IPython
13 =====================
13 =====================
14
14
15 This section documents the changes that have been made in various versions of
15 This section documents the changes that have been made in various versions of
16 IPython. Users should consult these pages to learn about new features, bug
16 IPython. Users should consult these pages to learn about new features, bug
17 fixes and backwards incompatibilities. Developers should summarize the
17 fixes and backwards incompatibilities. Developers should summarize the
18 development work they do here in a user friendly format.
18 development work they do here in a user friendly format.
19
19
20 .. toctree::
20 .. toctree::
21 :maxdepth: 1
21 :maxdepth: 1
22
22
23 version6
23 version6
24 github-stats-6
24 version5
25 version5
25 github-stats-5
26 github-stats-5
26 version4
27 version4
27 github-stats-4
28 github-stats-4
28 version3
29 version3
29 github-stats-3
30 github-stats-3
30 version3_widget_migration
31 version3_widget_migration
31 version2.0
32 version2.0
32 github-stats-2.0
33 github-stats-2.0
33 version1.0
34 version1.0
34 github-stats-1.0
35 github-stats-1.0
35 version0.13
36 version0.13
36 github-stats-0.13
37 github-stats-0.13
37 version0.12
38 version0.12
38 github-stats-0.12
39 github-stats-0.12
39 version0.11
40 version0.11
40 github-stats-0.11
41 github-stats-0.11
41 version0.10
42 version0.10
42 version0.9
43 version0.9
43 version0.8
44 version0.8
44
45
45
46
@@ -1,188 +1,188 b''
1 ============
1 ============
2 6.x Series
2 6.x Series
3 ============
3 ============
4
4
5 IPython 6.0
5 IPython 6.0
6 ===========
6 ===========
7
7
8 Released .... ...., 2017
8 Released April 19th, 2017
9
9
10 IPython 6 feature a major improvement in the completion machinery which is now
10 IPython 6 feature a major improvement in the completion machinery which is now
11 capable of completing non-executed code. It is also the first version of IPython
11 capable of completing non-executed code. It is also the first version of IPython
12 to stop compatibility with Python 2, which is still supported on the bugfix only
12 to stop compatibility with Python 2, which is still supported on the bugfix only
13 5.x branch. Read below to have a non-exhaustive list of new features.
13 5.x branch. Read below to have a non-exhaustive list of new features.
14
14
15 Make sure you have pip > 9.0 before upgrading.
15 Make sure you have pip > 9.0 before upgrading.
16 You should be able to update by using:
16 You should be able to update by using:
17
17
18 .. code::
18 .. code::
19
19
20 pip install ipython --upgrade
20 pip install ipython --upgrade
21
21
22
22
23 .. note::
23 .. note::
24
24
25 If your pip version is greater of equal to pip 9.0.1 you will automatically get
25 If your pip version is greater of equal to pip 9.0.1 you will automatically get
26 the most recent version of IPython compatible with your system: on Python 2 you
26 the most recent version of IPython compatible with your system: on Python 2 you
27 will get the latest IPython 5.x bugfix, while in Python 3
27 will get the latest IPython 5.x bugfix, while in Python 3
28 you will get the latest 6.x stable version.
28 you will get the latest 6.x stable version.
29
29
30 New completion API and Interface
30 New completion API and Interface
31 --------------------------------
31 --------------------------------
32
32
33 The completer Completion API has seen an overhaul, and the new completer have
33 The completer Completion API has seen an overhaul, and the new completer have
34 plenty of improvement both from the end users of terminal IPython or for
34 plenty of improvement both from the end users of terminal IPython or for
35 consumers of the API.
35 consumers of the API.
36
36
37 This new API is capable of pulling completions from :any:`jedi`, thus allowing
37 This new API is capable of pulling completions from :any:`jedi`, thus allowing
38 type inference on non-executed code. If :any:`jedi` is installed completion like
38 type inference on non-executed code. If :any:`jedi` is installed completion like
39 the following are now becoming possible without code evaluation:
39 the following are now becoming possible without code evaluation:
40
40
41 >>> data = ['Number of users', 123_456]
41 >>> data = ['Number of users', 123_456]
42 ... data[0].<tab>
42 ... data[0].<tab>
43
43
44 That is to say, IPython is now capable of inferring that `data[0]` is a string,
44 That is to say, IPython is now capable of inferring that `data[0]` is a string,
45 and will suggest completions like `.capitalize`. The completion power of IPython
45 and will suggest completions like `.capitalize`. The completion power of IPython
46 will increase with new Jedi releases, and a number of bugs and more completions
46 will increase with new Jedi releases, and a number of bugs and more completions
47 are already available on the development version of :any:`jedi` if you are curious.
47 are already available on the development version of :any:`jedi` if you are curious.
48
48
49 With the help of prompt toolkit, types of completions can be shown in the
49 With the help of prompt toolkit, types of completions can be shown in the
50 completer interface:
50 completer interface:
51
51
52 .. image:: ../_images/jedi_type_inference_60.png
52 .. image:: ../_images/jedi_type_inference_60.png
53 :alt: Jedi showing ability to do type inference
53 :alt: Jedi showing ability to do type inference
54 :align: center
54 :align: center
55 :width: 400px
55 :width: 400px
56 :target: ../_images/jedi_type_inference_60.png
56 :target: ../_images/jedi_type_inference_60.png
57
57
58 The appearance of the completer is controlled by the
58 The appearance of the completer is controlled by the
59 ``c.TerminalInteractiveShell.display_completions`` option that will show the
59 ``c.TerminalInteractiveShell.display_completions`` option that will show the
60 type differently depending on the value among ``'column'``, ``'multicolumn'``
60 type differently depending on the value among ``'column'``, ``'multicolumn'``
61 and ``'readlinelike'``
61 and ``'readlinelike'``
62
62
63 The use of Jedi also fulfills a number of requests and fix a number of bugs
63 The use of Jedi also fulfills a number of requests and fix a number of bugs
64 like case-insensitive completion, completion after division operator: See
64 like case-insensitive completion, completion after division operator: See
65 :ghpull:`10182`.
65 :ghpull:`10182`.
66
66
67 Extra patches and updates will be needed to the :mod:`ipykernel` package for
67 Extra patches and updates will be needed to the :mod:`ipykernel` package for
68 this feature to be available to other clients like Jupyter Notebook, Lab,
68 this feature to be available to other clients like Jupyter Notebook, Lab,
69 Nteract, Hydrogen...
69 Nteract, Hydrogen...
70
70
71 The use of Jedi is should be barely noticeable on recent enough machines, but
71 The use of Jedi is should be barely noticeable on recent enough machines, but
72 can be slower on older ones. To tweak the performances, the amount
72 can be slower on older ones. To tweak the performances, the amount
73 of time given to Jedi to compute type inference can be adjusted with
73 of time given to Jedi to compute type inference can be adjusted with
74 ``c.IPCompleter.jedi_compute_type_timeout``. The objects whose type were not
74 ``c.IPCompleter.jedi_compute_type_timeout``. The objects whose type were not
75 inferred will be shown as ``<unknown>``. Jedi can also be completely deactivated
75 inferred will be shown as ``<unknown>``. Jedi can also be completely deactivated
76 by using the ``c.Completer.use_jedi=False`` option.
76 by using the ``c.Completer.use_jedi=False`` option.
77
77
78
78
79 The old ``Completer.complete()`` API is waiting deprecation and should be
79 The old ``Completer.complete()`` API is waiting deprecation and should be
80 replaced replaced by ``Completer.completions()`` in a near future. Feedback on
80 replaced replaced by ``Completer.completions()`` in a near future. Feedback on
81 the current state of the API and suggestions welcome.
81 the current state of the API and suggestions welcome.
82
82
83 Python 3 only codebase
83 Python 3 only codebase
84 ----------------------
84 ----------------------
85
85
86 One of the large challenges in IPython 6.0 has been the adoption of a pure
86 One of the large challenges in IPython 6.0 has been the adoption of a pure
87 Python 3 codebase, which leads us to great length to upstream patches in pip,
87 Python 3 codebase, which leads us to great length to upstream patches in pip,
88 pypi and warehouse to make sure Python 2 system still upgrade to the latest
88 pypi and warehouse to make sure Python 2 system still upgrade to the latest
89 compatible Python version compatible.
89 compatible Python version compatible.
90
90
91 We remind our Python 2 users that IPython 5 is still compatible with Python 2.7,
91 We remind our Python 2 users that IPython 5 is still compatible with Python 2.7,
92 still maintained and get regular releases. Using pip 9+, upgrading IPython will
92 still maintained and get regular releases. Using pip 9+, upgrading IPython will
93 automatically upgrade to the latest version compatible with your system.
93 automatically upgrade to the latest version compatible with your system.
94
94
95 .. warning::
95 .. warning::
96
96
97 If you are on a system using an older version of pip on Python 2, pip may
97 If you are on a system using an older version of pip on Python 2, pip may
98 still install IPython 6.0 on your system, and IPython will refuse to start.
98 still install IPython 6.0 on your system, and IPython will refuse to start.
99 You can fix this by upgrading pip, and reinstalling ipython, or forcing pip to
99 You can fix this by upgrading pip, and reinstalling ipython, or forcing pip to
100 install an earlier version: ``pip install 'ipython<6'``
100 install an earlier version: ``pip install 'ipython<6'``
101
101
102 The ability to use only Python 3 on the code base of IPython brings a number
102 The ability to use only Python 3 on the code base of IPython brings a number
103 of advantage. Most of the newly written code make use of `optional function type
103 of advantage. Most of the newly written code make use of `optional function type
104 annotation <https://www.python.org/dev/peps/pep-0484/>`_ leading to clearer code
104 annotation <https://www.python.org/dev/peps/pep-0484/>`_ leading to clearer code
105 and better documentation.
105 and better documentation.
106
106
107 The total size of the repository has also decreased by about 1500 lines (for the
107 The total size of the repository has also decreased by about 1500 lines (for the
108 first time excluding the big split for 4.0). The decrease is potentially
108 first time excluding the big split for 4.0). The decrease is potentially
109 a bit more for the sour as some documents like this one are append only and
109 a bit more for the sour as some documents like this one are append only and
110 are about 300 lines long.
110 are about 300 lines long.
111
111
112 The removal as of Python2/Python3 shim layer has made the code quite clearer and
112 The removal as of Python2/Python3 shim layer has made the code quite clearer and
113 more idiomatic in a number of location, and much friendlier to work with and
113 more idiomatic in a number of location, and much friendlier to work with and
114 understand. We hope to further embrace Python 3 capability in the next release
114 understand. We hope to further embrace Python 3 capability in the next release
115 cycle and introduce more of the Python 3 only idioms (yield from, kwarg only,
115 cycle and introduce more of the Python 3 only idioms (yield from, kwarg only,
116 general unpacking) in the code base of IPython, and see if we can take advantage
116 general unpacking) in the code base of IPython, and see if we can take advantage
117 of these as well to improve user experience with better error messages and
117 of these as well to improve user experience with better error messages and
118 hints.
118 hints.
119
119
120
120
121 Configurable TerminalInteractiveShell, readline interface
121 Configurable TerminalInteractiveShell, readline interface
122 ---------------------------------------------------------
122 ---------------------------------------------------------
123
123
124 IPython gained a new ``c.TerminalIPythonApp.interactive_shell_class`` option
124 IPython gained a new ``c.TerminalIPythonApp.interactive_shell_class`` option
125 that allows customizing the class used to start the terminal frontend. This
125 that allows customizing the class used to start the terminal frontend. This
126 should allow a user to use custom interfaces, like reviving the former readline
126 should allow a user to use custom interfaces, like reviving the former readline
127 interface which is now a separate package not actively maintained by the core
127 interface which is now a separate package not actively maintained by the core
128 team. See the project to bring back the readline interface: `rlipython
128 team. See the project to bring back the readline interface: `rlipython
129 <https://github.com/ipython/rlipython>`_.
129 <https://github.com/ipython/rlipython>`_.
130
130
131 This change will be backported to the IPython 5.x series.
131 This change will be backported to the IPython 5.x series.
132
132
133 Miscs improvements
133 Miscs improvements
134 ------------------
134 ------------------
135
135
136
136
137 - The :cellmagic:`capture` magic can now capture the result of a cell (from
137 - The :cellmagic:`capture` magic can now capture the result of a cell (from
138 an expression on the last line), as well as printed and displayed output.
138 an expression on the last line), as well as printed and displayed output.
139 :ghpull:`9851`.
139 :ghpull:`9851`.
140
140
141 - Pressing Ctrl-Z in the terminal debugger now suspends IPython, as it already
141 - Pressing Ctrl-Z in the terminal debugger now suspends IPython, as it already
142 does in the main terminal prompt.
142 does in the main terminal prompt.
143
143
144 - Autoreload can now reload ``Enum``. See :ghissue:`10232` and :ghpull:`10316`
144 - Autoreload can now reload ``Enum``. See :ghissue:`10232` and :ghpull:`10316`
145
145
146 - IPython.display has gained a :any:`GeoJSON <IPython.display.GeoJSON>` object.
146 - IPython.display has gained a :any:`GeoJSON <IPython.display.GeoJSON>` object.
147 :ghpull:`10288` and :ghpull:`10253`
147 :ghpull:`10288` and :ghpull:`10253`
148
148
149 Functions Deprecated in 6.x Development cycle
149 Functions Deprecated in 6.x Development cycle
150 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
150 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
151
151
152 - Loading extensions from ``ipython_extension_dir`` prints a warning that this
152 - Loading extensions from ``ipython_extension_dir`` prints a warning that this
153 location is pending deprecation. This should only affect users still having
153 location is pending deprecation. This should only affect users still having
154 extensions installed with ``%install_ext`` which has been deprecated since
154 extensions installed with ``%install_ext`` which has been deprecated since
155 IPython 4.0, and removed in 5.0. Extensions still present in
155 IPython 4.0, and removed in 5.0. Extensions still present in
156 ``ipython_extension_dir`` may shadow more recently installed versions using
156 ``ipython_extension_dir`` may shadow more recently installed versions using
157 pip. It is thus recommended to clean ``ipython_extension_dir`` of any
157 pip. It is thus recommended to clean ``ipython_extension_dir`` of any
158 extension now available as a package.
158 extension now available as a package.
159
159
160
160
161 - ``IPython.utils.warn`` was deprecated in IPython 4.0, and has now been removed.
161 - ``IPython.utils.warn`` was deprecated in IPython 4.0, and has now been removed.
162 instead of ``IPython.utils.warn`` inbuilt :any:`warnings` module is used.
162 instead of ``IPython.utils.warn`` inbuilt :any:`warnings` module is used.
163
163
164
164
165 - The function `IPython.core.oinspect.py:call_tip` is unused, was marked as
165 - The function `IPython.core.oinspect.py:call_tip` is unused, was marked as
166 deprecated (raising a `DeprecationWarning`) and marked for later removal.
166 deprecated (raising a `DeprecationWarning`) and marked for later removal.
167 :ghpull:`10104`
167 :ghpull:`10104`
168
168
169 Backward incompatible changes
169 Backward incompatible changes
170 ------------------------------
170 ------------------------------
171
171
172 Functions Removed in 6.x Development cycle
172 Functions Removed in 6.x Development cycle
173 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
174
174
175 The following functions have been removed in the
175 The following functions have been removed in the
176 development cycle marked for Milestone 6.0.
176 development cycle marked for Milestone 6.0.
177
177
178 - ``IPython/utils/process.py`` - ``is_cmd_found``
178 - ``IPython/utils/process.py`` - ``is_cmd_found``
179 - ``IPython/utils/process.py`` - ``pycmd2argv``
179 - ``IPython/utils/process.py`` - ``pycmd2argv``
180
180
181 - The `--deep-reload` flag and the corresponding options to inject `dreload` or
181 - The `--deep-reload` flag and the corresponding options to inject `dreload` or
182 `reload` into the interactive namespace have been removed. You have to
182 `reload` into the interactive namespace have been removed. You have to
183 explicitly import `reload` from `IPython.lib.deepreload` to use it.
183 explicitly import `reload` from `IPython.lib.deepreload` to use it.
184
184
185 - The :magic:`profile` used to print current IPython profile in use, and which
185 - The :magic:`profile` used to print current IPython profile in use, and which
186 was deprecated in IPython 2.0 does now raise a `DeprecationWarning` error when
186 was deprecated in IPython 2.0 does now raise a `DeprecationWarning` error when
187 used. It is often confused with the :magic:`prun` and the deprecation remove
187 used. It is often confused with the :magic:`prun` and the deprecation remove
188 should free up the ``profile`` name in future versions.
188 should free up the ``profile`` name in future versions.
General Comments 0
You need to be logged in to leave comments. Login now