##// END OF EJS Templates
Backport PR #12404: Update what's new for 7.16
Matthias Bussonnier -
Show More
@@ -1,34 +1,35 b''
1 1 =====================
2 2 Development version
3 3 =====================
4 4
5 5 This document describes in-flight development work.
6 6
7 7 .. warning::
8 8
9 9 Please do not edit this file by hand (doing so will likely cause merge
10 10 conflicts for other Pull Requests). Instead, create a new file in the
11 11 `docs/source/whatsnew/pr` folder
12 12
13 13
14 14 Released .... ...., 2019
15 15
16 16
17 17 Need to be updated:
18 18
19 19 .. toctree::
20 20 :maxdepth: 2
21 21 :glob:
22 22
23 23 pr/*
24 24
25 25
26
26 27 .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT.
27 28
28 29 As a reminder, IPython master has diverged from the 7.x branch, thus master may
29 30 have more feature and API changes.
30 31
31 32 Backwards incompatible changes
32 33 ------------------------------
33 34
34 35 .. DO NOT EDIT THIS LINE BEFORE RELEASE. INCOMPAT INSERTION POINT.
@@ -1,526 +1,548 b''
1 1 Issues closed in the 7.x development cycle
2 2 ==========================================
3 3
4
5 Issues closed in 7.16
6 ---------------------
7
8 GitHub stats for 2020/05/29 - 2020/06/26 (tag: 7.15.0)
9
10 These lists are automatically generated, and may be incomplete or contain duplicates.
11
12 We closed 0 issues and merged 18 pull requests.
13 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.16>`__
14
15 The following 7 authors contributed 22 commits.
16
17 * Benjamin Ragan-Kelley
18 * dalthviz
19 * Frank Tobia
20 * Matthias Bussonnier
21 * palewire
22 * Paul McCarthy
23 * Talley Lambert
24
25
4 26 Issues closed in 7.15
5 27 ---------------------
6 28
7 29 GitHub stats for 2020/05/01 - 2020/05/29 (tag: 7.14.0)
8 30
9 31 These lists are automatically generated, and may be incomplete or contain duplicates.
10 32
11 33 We closed 1 issues and merged 29 pull requests.
12 34 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.15>`__
13 35
14 36 The following 6 authors contributed 31 commits.
15 37
16 38 * Blake Griffin
17 39 * Inception95
18 40 * Marcio Mazza
19 41 * Matthias Bussonnier
20 42 * Talley Lambert
21 43 * Thomas
22 44
23 45 Issues closed in 7.14
24 46 ---------------------
25 47
26 48 GitHub stats for 2020/02/29 - 2020/05/01 (tag: 7.13.0)
27 49
28 50 These lists are automatically generated, and may be incomplete or contain duplicates.
29 51
30 52 We closed 0 issues and merged 30 pull requests.
31 53 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.14>`__
32 54
33 55 The following 10 authors contributed 47 commits.
34 56
35 57 * Eric Wieser
36 58 * foobarbyte
37 59 * Ian Castleden
38 60 * Itamar Turner-Trauring
39 61 * Lumir Balhar
40 62 * Markus Wageringel
41 63 * Matthias Bussonnier
42 64 * Matthieu Ancellin
43 65 * Quentin Peter
44 66 * Theo Ouzhinski
45 67
46 68 Issues closed in 7.13
47 69 ---------------------
48 70
49 71 GitHub stats for 2020/02/29 - 2020/05/01 (tag: 7.13.0)
50 72
51 73 These lists are automatically generated, and may be incomplete or contain duplicates.
52 74
53 75 We closed 0 issues and merged 30 pull requests.
54 76 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.14>`__
55 77
56 78 The following 10 authors contributed 47 commits.
57 79
58 80 * Eric Wieser
59 81 * foobarbyte
60 82 * Ian Castleden
61 83 * Itamar Turner-Trauring
62 84 * Lumir Balhar
63 85 * Markus Wageringel
64 86 * Matthias Bussonnier
65 87 * Matthieu Ancellin
66 88 * Quentin Peter
67 89 * Theo Ouzhinski
68 90
69 91 Issues closed in 7.13
70 92 ---------------------
71 93
72 94 GitHub stats for 2020/02/01 - 2020/02/28 (tag: 7.12.0)
73 95
74 96 These lists are automatically generated, and may be incomplete or contain duplicates.
75 97
76 98 We closed 1 issues and merged 24 pull requests.
77 99 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.13>`__
78 100
79 101 The following 12 authors contributed 108 commits.
80 102
81 103 * Alex Hall
82 104 * Augusto
83 105 * Coon, Ethan T
84 106 * Daniel Hahler
85 107 * Inception95
86 108 * Itamar Turner-Trauring
87 109 * Jonas Haag
88 110 * Jonathan Slenders
89 111 * linar-jether
90 112 * Matthias Bussonnier
91 113 * Nathan Goldbaum
92 114 * Terry Davis
93 115
94 116
95 117 Issues closed in 7.12
96 118 ---------------------
97 119
98 120 GitHub stats for 2020/01/01 - 2020/01/31 (tag: 7.11.1)
99 121
100 122 These lists are automatically generated, and may be incomplete or contain duplicates.
101 123
102 124 We closed 2 issues and merged 14 pull requests.
103 125 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.12>`__
104 126
105 127 The following 11 authors contributed 48 commits.
106 128
107 129 * Augusto
108 130 * Eric Wieser
109 131 * Jeff Potter
110 132 * Mark E. Haase
111 133 * Matthias Bussonnier
112 134 * ossdev07
113 135 * ras44
114 136 * takuya fujiwara
115 137 * Terry Davis
116 138 * Thomas A Caswell
117 139 * yangyang
118 140
119 141 Issues closed in 7.11
120 142 ---------------------
121 143
122 144 GitHub stats for 2019/12/01 - 2019/12/27 (tag: 7.10.1)
123 145
124 146 These lists are automatically generated, and may be incomplete or contain duplicates.
125 147
126 148 We closed 4 issues and merged 36 pull requests.
127 149 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.11>`__
128 150
129 151 The following 16 authors contributed 114 commits.
130 152
131 153 * Augusto
132 154 * Benjamin Ragan-Kelley
133 155 * Chemss Eddine Ben Hassine
134 156 * Danny Hermes
135 157 * Dominik Miedziński
136 158 * Jonathan Feinberg
137 159 * Jonathan Slenders
138 160 * Joseph Kahn
139 161 * kousik
140 162 * Kousik Mitra
141 163 * Marc Hernandez Cabot
142 164 * Matthias Bussonnier
143 165 * Naveen Honest Raj K
144 166 * Pratyay Pandey
145 167 * Quentin Peter
146 168 * takuya fujiwara
147 169
148 170
149 171 Issues closed in 7.10.2
150 172 -----------------------
151 173
152 174
153 175 GitHub stats for 2019/12/01 - 2019/12/14 (tag: 7.10.1)
154 176
155 177 These lists are automatically generated, and may be incomplete or contain duplicates.
156 178
157 179 We closed 3 issues and merged 10 pull requests.
158 180 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10.2>`__
159 181
160 182 The following 3 authors contributed 11 commits.
161 183
162 184 * Jonathan Slenders
163 185 * Joseph Kahn
164 186 * Matthias Bussonnier
165 187
166 188 Issues closed in 7.10.1
167 189 -----------------------
168 190
169 191 GitHub stats for 2019/11/27 - 2019/12/01 (tag: 7.10.0)
170 192
171 193 These lists are automatically generated, and may be incomplete or contain duplicates.
172 194
173 195 We closed 5 issues and merged 7 pull requests.
174 196 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10.1>`__
175 197
176 198 The following 2 authors contributed 14 commits.
177 199
178 200 * Jonathan Slenders
179 201 * Matthias Bussonnier
180 202
181 203 Issues closed in 7.10
182 204 ---------------------
183 205
184 206 GitHub stats for 2019/10/25 - 2019/11/27 (tag: 7.9.0)
185 207
186 208 These lists are automatically generated, and may be incomplete or contain duplicates.
187 209
188 210 We closed 4 issues and merged 22 pull requests.
189 211 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10>`__
190 212
191 213 The following 15 authors contributed 101 commits.
192 214
193 215 * anatoly techtonik
194 216 * Ben Lewis
195 217 * Benjamin Ragan-Kelley
196 218 * Gerrit Buss
197 219 * grey275
198 220 * Gökcen Eraslan
199 221 * Jonathan Slenders
200 222 * Joris Van den Bossche
201 223 * kousik
202 224 * Matthias Bussonnier
203 225 * Nicholas Bollweg
204 226 * Paul McCarthy
205 227 * Srinivas Reddy Thatiparthy
206 228 * Timo Kaufmann
207 229 * Tony Fast
208 230
209 231 Issues closed in 7.9
210 232 --------------------
211 233
212 234 GitHub stats for 2019/08/30 - 2019/10/25 (tag: 7.8.0)
213 235
214 236 These lists are automatically generated, and may be incomplete or contain duplicates.
215 237
216 238 We closed 1 issues and merged 9 pull requests.
217 239 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.9>`__
218 240
219 241 The following 8 authors contributed 20 commits.
220 242
221 243 * Benjamin Ragan-Kelley
222 244 * Hugo
223 245 * Matthias Bussonnier
224 246 * mfh92
225 247 * Mohammad Hossein Sekhavat
226 248 * Niclas
227 249 * Vidar Tonaas Fauske
228 250 * Георгий Фролов
229 251
230 252 Issues closed in 7.8
231 253 --------------------
232 254
233 255 GitHub stats for 2019/07/26 - 2019/08/30 (tag: 7.7.0)
234 256
235 257 These lists are automatically generated, and may be incomplete or contain duplicates.
236 258
237 259 We closed 1 issues and merged 4 pull requests.
238 260 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.8>`__
239 261
240 262 The following 5 authors contributed 27 commits.
241 263
242 264 * Dan Allan
243 265 * Matthias Bussonnier
244 266 * Min ho Kim
245 267 * Oscar Gustafsson
246 268 * Terry Davis
247 269
248 270 Issues closed in 7.7
249 271 --------------------
250 272
251 273 GitHub stats for 2019/07/03 - 2019/07/26 (tag: 7.6.1)
252 274
253 275 These lists are automatically generated, and may be incomplete or contain duplicates.
254 276
255 277 We closed 5 issues and merged 9 pull requests.
256 278 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.7>`__
257 279
258 280 The following 8 authors contributed 26 commits.
259 281
260 282 * Brandon T. Willard
261 283 * juanis2112
262 284 * lllf
263 285 * Matthias Bussonnier
264 286 * Min ho Kim
265 287 * Oriol (Prodesk)
266 288 * Po-Chuan Hsieh
267 289 * techassetskris
268 290
269 291 Issues closed in 7.6
270 292 --------------------
271 293
272 294 GitHub stats for 2019/04/24 - 2019/06/28 (tag: 7.5.0)
273 295
274 296 These lists are automatically generated, and may be incomplete or contain duplicates.
275 297
276 298 We closed 9 issues and merged 43 pull requests.
277 299 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.6>`__
278 300
279 301 The following 19 authors contributed 144 commits.
280 302
281 303 * Alok Singh
282 304 * Andreas
283 305 * Antony Lee
284 306 * Daniel Hahler
285 307 * Ed OBrien
286 308 * Kevin Sheppard
287 309 * Luciana da Costa Marques
288 310 * Maor Kleinberger
289 311 * Matthias Bussonnier
290 312 * Miro Hrončok
291 313 * Niclas
292 314 * Nikita Bezdolniy
293 315 * Oriol Abril
294 316 * Piers Titus van der Torren
295 317 * Pragnya Srinivasan
296 318 * Robin Gustafsson
297 319 * stonebig
298 320 * Thomas A Caswell
299 321 * zzzz-qq
300 322
301 323
302 324 Issues closed in 7.5
303 325 --------------------
304 326
305 327 GitHub stats for 2019/03/21 - 2019/04/24 (tag: 7.4.0)
306 328
307 329 These lists are automatically generated, and may be incomplete or contain duplicates.
308 330
309 331 We closed 2 issues and merged 9 pull requests.
310 332 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.5>`__
311 333
312 334 The following 7 authors contributed 28 commits.
313 335
314 336 * Akshay Paropkari
315 337 * Benjamin Ragan-Kelley
316 338 * Ivan Tham
317 339 * Matthias Bussonnier
318 340 * Nick Tallant
319 341 * Sebastian Witowski
320 342 * stef-ubuntu
321 343
322 344
323 345 Issues closed in 7.4
324 346 --------------------
325 347
326 348 GitHub stats for 2019/02/18 - 2019/03/21 (tag: 7.3.0)
327 349
328 350 These lists are automatically generated, and may be incomplete or contain duplicates.
329 351
330 352 We closed 9 issues and merged 20 pull requests.
331 353 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
332 354
333 355 The following 23 authors contributed 69 commits.
334 356
335 357 * anatoly techtonik
336 358 * Benjamin Ragan-Kelley
337 359 * bnables
338 360 * Frédéric Chapoton
339 361 * Gabriel Potter
340 362 * Ian Bell
341 363 * Jake VanderPlas
342 364 * Jan S. (Milania1)
343 365 * Jesse Widner
344 366 * jsnydes
345 367 * Kyungdahm Yun
346 368 * Laurent Gautier
347 369 * Luciana da Costa Marques
348 370 * Matan Gover
349 371 * Matthias Bussonnier
350 372 * memeplex
351 373 * Mickaël Schoentgen
352 374 * Partha P. Mukherjee
353 375 * Philipp A
354 376 * Sanyam Agarwal
355 377 * Steve Nicholson
356 378 * Tony Fast
357 379 * Wouter Overmeire
358 380
359 381
360 382 Issues closed in 7.3
361 383 --------------------
362 384
363 385 GitHub stats for 2018/11/30 - 2019/02/18 (tag: 7.2.0)
364 386
365 387 These lists are automatically generated, and may be incomplete or contain duplicates.
366 388
367 389 We closed 4 issues and merged 20 pull requests.
368 390 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
369 391
370 392 The following 17 authors contributed 99 commits.
371 393
372 394 * anatoly techtonik
373 395 * Benjamin Ragan-Kelley
374 396 * Gabriel Potter
375 397 * Ian Bell
376 398 * Jake VanderPlas
377 399 * Jan S. (Milania1)
378 400 * Jesse Widner
379 401 * Kyungdahm Yun
380 402 * Laurent Gautier
381 403 * Matthias Bussonnier
382 404 * memeplex
383 405 * Mickaël Schoentgen
384 406 * Partha P. Mukherjee
385 407 * Philipp A
386 408 * Sanyam Agarwal
387 409 * Steve Nicholson
388 410 * Tony Fast
389 411
390 412 Issues closed in 7.2
391 413 --------------------
392 414
393 415 GitHub stats for 2018/10/28 - 2018/11/29 (tag: 7.1.1)
394 416
395 417 These lists are automatically generated, and may be incomplete or contain duplicates.
396 418
397 419 We closed 2 issues and merged 18 pull requests.
398 420 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.2>`__
399 421
400 422 The following 16 authors contributed 95 commits.
401 423
402 424 * Antony Lee
403 425 * Benjamin Ragan-Kelley
404 426 * CarsonGSmith
405 427 * Chris Mentzel
406 428 * Christopher Brown
407 429 * Dan Allan
408 430 * Elliott Morgan Jobson
409 431 * is-this-valid
410 432 * kd2718
411 433 * Kevin Hess
412 434 * Martin Bergtholdt
413 435 * Matthias Bussonnier
414 436 * Nicholas Bollweg
415 437 * Pavel Karateev
416 438 * Philipp A
417 439 * Reuben Morais
418 440
419 441 Issues closed in 7.1
420 442 --------------------
421 443
422 444 GitHub stats for 2018/09/27 - 2018/10/27 (since tag: 7.0.1)
423 445
424 446 These lists are automatically generated, and may be incomplete or contain duplicates.
425 447
426 448 We closed 31 issues and merged 54 pull requests.
427 449 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.1>`__
428 450
429 451 The following 33 authors contributed 254 commits.
430 452
431 453 * ammarmallik
432 454 * Audrey Dutcher
433 455 * Bart Skowron
434 456 * Benjamin Ragan-Kelley
435 457 * BinaryCrochet
436 458 * Chris Barker
437 459 * Christopher Moura
438 460 * Dedipyaman Das
439 461 * Dominic Kuang
440 462 * Elyashiv
441 463 * Emil Hessman
442 464 * felixzhuologist
443 465 * hongshaoyang
444 466 * Hugo
445 467 * kd2718
446 468 * kory donati
447 469 * Kory Donati
448 470 * koryd
449 471 * luciana
450 472 * luz.paz
451 473 * Massimo Santini
452 474 * Matthias Bussonnier
453 475 * Matthias Geier
454 476 * meeseeksdev[bot]
455 477 * Michael Penkov
456 478 * Mukesh Bhandarkar
457 479 * Nguyen Duy Hai
458 480 * Roy Wellington Ⅳ
459 481 * Sha Liu
460 482 * Shao Yang
461 483 * Shashank Kumar
462 484 * Tony Fast
463 485 * wim glenn
464 486
465 487
466 488 Issues closed in 7.0
467 489 --------------------
468 490
469 491 GitHub stats for 2018/07/29 - 2018/09/27 (since tag: 6.5.0)
470 492
471 493 These lists are automatically generated, and may be incomplete or contain duplicates.
472 494
473 495 We closed 20 issues and merged 76 pull requests.
474 496 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.0>`__
475 497
476 498 The following 49 authors contributed 471 commits.
477 499
478 500 * alphaCTzo7G
479 501 * Alyssa Whitwell
480 502 * Anatol Ulrich
481 503 * apunisal
482 504 * Benjamin Ragan-Kelley
483 505 * Chaz Reid
484 506 * Christoph
485 507 * Dale Jung
486 508 * Dave Hirschfeld
487 509 * dhirschf
488 510 * Doug Latornell
489 511 * Fernando Perez
490 512 * Fred Mitchell
491 513 * Gabriel Potter
492 514 * gpotter2
493 515 * Grant Nestor
494 516 * hongshaoyang
495 517 * Hugo
496 518 * J Forde
497 519 * Jonathan Slenders
498 520 * Jörg Dietrich
499 521 * Kyle Kelley
500 522 * luz.paz
501 523 * M Pacer
502 524 * Matthew R. Scott
503 525 * Matthew Seal
504 526 * Matthias Bussonnier
505 527 * meeseeksdev[bot]
506 528 * Michael Käufl
507 529 * Olesya Baranova
508 530 * oscar6echo
509 531 * Paul Ganssle
510 532 * Paul Ivanov
511 533 * Peter Parente
512 534 * prasanth
513 535 * Shailyn javier Ortiz jimenez
514 536 * Sourav Singh
515 537 * Srinivas Reddy Thatiparthy
516 538 * Steven Silvester
517 539 * stonebig
518 540 * Subhendu Ranjan Mishra
519 541 * Takafumi Arakaki
520 542 * Thomas A Caswell
521 543 * Thomas Kluyver
522 544 * Todd
523 545 * Wei Yen
524 546 * Yarko Tymciurak
525 547 * Yutao Yuan
526 548 * Zi Chong Kao
@@ -1,1005 +1,1066 b''
1 1 ============
2 2 7.x Series
3 3 ============
4 4
5 .. _version 716:
6
7 IPython 7.16
8 ============
9
10
11 The default traceback mode will now skip frames that are marked with
12 ``__tracebackhide__ = True`` and show how many traceback frames have been
13 skipped. This can be toggled by using :magic:`xmode` with the ``--show`` or
14 ``--hide`` attribute. It will have no effect on non verbose traceback modes.
15
16 The ipython debugger also now understands ``__tracebackhide__`` as well and will
17 skip hidden frames when displaying. Movement up and down the stack will skip the
18 hidden frames and will show how many frames were hidden. Internal IPython frames
19 are also now hidden by default. The behavior can be changed with the
20 ``skip_hidden`` while in the debugger, command and accepts "yes", "no", "true"
21 and "false" case insensitive parameters.
22
23
24 Misc Noticeable changes:
25 ------------------------
26
27 - Exceptions are now (re)raised when running notebooks via the :magic:`%run`, helping to catch issues in workflows and
28 pipelines. :ghpull:`12301`
29 - Fix inputhook for qt 5.15.0 :ghpull:`12355`
30 - Fix wx inputhook :ghpull:`12375`
31 - Add handling for malformed pathext env var (Windows) :ghpull:`12367`
32 - use $SHELL in system_piped :ghpull:`12360` for uniform behavior with
33 ipykernel.
34
35 Reproducible Build
36 ------------------
37
38 IPython 7.15 reproducible build did not work, so we try again this month
39 :ghpull:`12358`.
40
41
42 API Changes
43 -----------
44
45 Change of API and exposed objects automatically detected using `frappuccino
46 <https://pypi.org/project/frappuccino/>`_ (still in beta):
47
48
49 The following items are new and mostly related to understanding ``__tracebackbhide__``::
50
51 + IPython.core.debugger.Pdb.do_down(self, arg)
52 + IPython.core.debugger.Pdb.do_skip_hidden(self, arg)
53 + IPython.core.debugger.Pdb.do_up(self, arg)
54 + IPython.core.debugger.Pdb.hidden_frames(self, stack)
55 + IPython.core.debugger.Pdb.stop_here(self, frame)
56
57
58 The following items have been removed::
59
60 - IPython.core.debugger.Pdb.new_do_down
61 - IPython.core.debugger.Pdb.new_do_up
62
63 Those were implementation details.
64
65
5 66 .. _version 715:
6 67
7 68 IPython 7.15
8 69 ============
9 70
10 71 IPython 7.15 brings a number of bug fixes and user facing improvements.
11 72
12 73 Misc Noticeable changes:
13 74 ------------------------
14 75
15 76 - Long completion name have better elision in terminal :ghpull:`12284`
16 77 - I've started to test on Python 3.9 :ghpull:`12307` and fix some errors.
17 78 - Hi DPI scaling of figures when using qt eventloop :ghpull:`12314`
18 79 - Document the ability to have systemwide configuration for IPython.
19 80 :ghpull:`12328`
20 81 - Fix issues with input autoformatting :ghpull:`12336`
21 82 - ``IPython.core.debugger.Pdb`` is now interruptible (:ghpull:`12168`, in 7.14
22 83 but forgotten in release notes)
23 84 - Video HTML attributes (:ghpull:`12212`, in 7.14 but forgotten in release
24 85 notes)
25 86
26 87 Reproducible Build
27 88 ------------------
28 89
29 90 Starting with IPython 7.15, I am attempting to provide reproducible builds,
30 91 that is to say you should be able from the source tree to generate an sdist
31 92 and wheel that are identical byte for byte with the publish version on PyPI.
32 93
33 94 I've only tested on a couple of machines so far and the process is relatively
34 95 straightforward, so this mean that IPython not only have a deterministic build
35 96 process, but also I have either removed, or put under control all effects of
36 97 the build environments on the final artifact. I encourage you to attempt the
37 98 build process on your machine as documented in :ref:`core_developer_guide`
38 99 and let me know if you do not obtain an identical artifact.
39 100
40 101 While reproducible builds is critical to check that the supply chain of (open
41 102 source) software has not been compromised, it can also help to speedup many
42 103 of the build processes in large environment (conda, apt...) by allowing
43 104 better caching of intermediate build steps.
44 105
45 106 Learn more on `<https://reproducible-builds.org/>`_. `Reflections on trusting
46 107 trust <https://dl.acm.org/doi/10.1145/358198.358210>`_ is also one of the
47 108 cornerstone and recommended reads on this subject.
48 109
49 110 .. note::
50 111
51 112 The build commit from which the sdist is generated is also `signed
52 113 <https://en.wikipedia.org/wiki/Digital_signature>`_, so you should be able to
53 114 check it has not been compromised, and the git repository is a `merkle-tree
54 115 <https://en.wikipedia.org/wiki/Merkle_tree>`_, you can check the consistency
55 116 with `git-fsck <https://git-scm.com/docs/git-fsck>`_ which you likely `want
56 117 to enable by default
57 118 <https://gist.github.com/mbbx6spp/14b86437e794bffb4120>`_.
58 119
59 120 NEP29: Last version to support Python 3.6
60 121 -----------------------------------------
61 122
62 123 IPython 7.15 will be the Last IPython version to officially support Python
63 124 3.6, as stated by `NumPy Enhancement Proposal 29
64 125 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_. Starting with
65 126 next minor version of IPython I may stop testing on Python 3.6 and may stop
66 127 publishing release artifacts that install on Python 3.6
67 128
68 129 Highlighted features
69 130 --------------------
70 131
71 132 Highlighted features are not new, but seem to not be widely known, this
72 133 section will help you discover in more narrative form what you can do with
73 134 IPython.
74 135
75 136 Increase Tab Completion Menu Height
76 137 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77 138
78 139 In terminal IPython it is possible to increase the hight of the tab-completion
79 140 menu. To do so set the value of
80 141 :configtrait:`TerminalInteractiveShell.space_for_menu`, this will reserve more
81 142 space at the bottom of the screen for various kind of menus in IPython including
82 143 tab completion and searching in history.
83 144
84 145 Autoformat Code in the terminal
85 146 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86 147
87 148 If you have a preferred code formatter, you can configure IPython to
88 149 reformat your code. Set the value of
89 150 :configtrait:`TerminalInteractiveShell.autoformatter` to for example ``'black'``
90 151 and IPython will auto format your code when possible.
91 152
92 153
93 154 .. _version 714:
94 155
95 156 IPython 7.14
96 157 ============
97 158
98 159 IPython 7.14 is a minor release that fix a couple of bugs and prepare
99 160 compatibility with new or future versions of some libraries.
100 161
101 162 Important changes:
102 163 ------------------
103 164
104 165 - Fix compatibility with Sphinx 3+ :ghpull:`12235`
105 166 - Remove deprecated matplotlib parameter usage, compatibility with matplotlib
106 167 3.3+ :`122250`
107 168
108 169 Misc Changes
109 170 ------------
110 171
111 172 - set ``.py`` extension when editing current buffer in vi/emacs. :ghpull:`12167`
112 173 - support for unicode identifiers in ``?``/``??`` :ghpull:`12208`
113 174 - add extra options to the ``Video`` Rich objects :ghpull:`12212`
114 175 - add pretty-printing to ``SimpleNamespace`` :ghpull:`12230`
115 176
116 177 IPython.core.debugger.Pdb is now interruptible
117 178 ----------------------------------------------
118 179
119 180 A ``KeyboardInterrupt`` will now interrupt IPython's extended debugger, in order to make Jupyter able to interrupt it. (:ghpull:`12168`)
120 181
121 182 Video HTML attributes
122 183 ---------------------
123 184
124 185 Add an option to `IPython.display.Video` to change the attributes of the HTML display of the video (:ghpull:`12212`)
125 186
126 187
127 188 Pending deprecated imports
128 189 --------------------------
129 190
130 191 Many object present in ``IPython.core.display`` are there for internal use only,
131 192 and should already been imported from ``IPython.display`` by users and external
132 193 libraries. Trying to import those from ``IPython.core.display`` is still possible
133 194 but will trigger a
134 195 deprecation warning in later versions of IPython and will become errors in the
135 196 future.
136 197
137 198 This will simplify compatibility with other Python kernels (like Xeus-Python),
138 199 and simplify code base.
139 200
140 201
141 202
142 203
143 204 .. _version 713:
144 205
145 206 IPython 7.13
146 207 ============
147 208
148 209 IPython 7.13 is the final release of the 7.x branch since master is diverging
149 210 toward an 8.0. Exiting new features have already been merged in 8.0 and will
150 211 not be available on the 7.x branch. All the changes below have been backported
151 212 from the master branch.
152 213
153 214
154 215 - Fix inability to run PDB when inside an event loop :ghpull:`12141`
155 216 - Fix ability to interrupt some processes on windows :ghpull:`12137`
156 217 - Fix debugger shortcuts :ghpull:`12132`
157 218 - improve tab completion when inside a string by removing irrelevant elements :ghpull:`12128`
158 219 - Fix display of filename tab completion when the path is long :ghpull:`12122`
159 220 - Many removal of Python 2 specific code path :ghpull:`12110`
160 221 - displaying wav files do not require NumPy anymore, and is 5x to 30x faster :ghpull:`12113`
161 222
162 223 See the list of all closed issues and pull request on `github
163 224 <https://github.com/ipython/ipython/pulls?q=is%3Aclosed+milestone%3A7.13>`_.
164 225
165 226 .. _version 712:
166 227
167 228 IPython 7.12
168 229 ============
169 230
170 231 IPython 7.12 is a minor update that mostly brings code cleanup, removal of
171 232 longtime deprecated function and a couple update to documentation cleanup as well.
172 233
173 234 Notable changes are the following:
174 235
175 236 - Exit non-zero when ipython is given a file path to run that doesn't exist :ghpull:`12074`
176 237 - Test PR on ARM64 with Travis-CI :ghpull:`12073`
177 238 - Update CI to work with latest Pytest :ghpull:`12086`
178 239 - Add infrastructure to run ipykernel eventloop via trio :ghpull:`12097`
179 240 - Support git blame ignore revs :ghpull:`12091`
180 241 - Start multi-line ``__repr__`` s on their own line :ghpull:`12099`
181 242
182 243 .. _version 7111:
183 244
184 245 IPython 7.11.1
185 246 ==============
186 247
187 248 A couple of deprecated functions (no-op) have been reintroduces in py3compat as
188 249 Cython was still relying on them, and will be removed in a couple of versions.
189 250
190 251 .. _version 711:
191 252
192 253 IPython 7.11
193 254 ============
194 255
195 256 IPython 7.11 received a couple of compatibility fixes and code cleanup.
196 257
197 258 A number of function in the ``py3compat`` have been removed; a number of types
198 259 in the IPython code base are now non-ambiguous and now always ``unicode``
199 260 instead of ``Union[Unicode,bytes]``; many of the relevant code path have thus
200 261 been simplified/cleaned and types annotation added.
201 262
202 263 IPython support several verbosity level from exceptions. ``xmode plain`` now
203 264 support chained exceptions. :ghpull:`11999`
204 265
205 266 We are starting to remove ``shell=True`` in some usages of subprocess. While not directly
206 267 a security issue (as IPython is made to run arbitrary code anyway) it is not good
207 268 practice and we'd like to show the example. :ghissue:`12023`. This discussion
208 269 was started by ``@mschwager`` thanks to a new auditing tool they are working on
209 270 with duo-labs (`dlint <https://github.com/duo-labs/dlint>`_).
210 271
211 272 Work around some bugs in Python 3.9 tokenizer :ghpull:`12057`
212 273
213 274 IPython will now print its version after a crash. :ghpull:`11986`
214 275
215 276 This is likely the last release from the 7.x series that will see new feature.
216 277 The master branch will soon accept large code changes and thrilling new
217 278 features; the 7.x branch will only start to accept critical bug fixes, and
218 279 update dependencies.
219 280
220 281 .. _version 7102:
221 282
222 283 IPython 7.10.2
223 284 ==============
224 285
225 286 IPython 7.10.2 fix a couple of extra incompatibility between IPython, ipdb,
226 287 asyncio and Prompt Toolkit 3.
227 288
228 289 .. _version 7101:
229 290
230 291 IPython 7.10.1
231 292 ==============
232 293
233 294 IPython 7.10.1 fix a couple of incompatibilities with Prompt toolkit 3 (please
234 295 update Prompt toolkit to 3.0.2 at least), and fixes some interaction with
235 296 headless IPython.
236 297
237 298 .. _version 7100:
238 299
239 300 IPython 7.10.0
240 301 ==============
241 302
242 303 IPython 7.10 is the first double digit minor release in the last decade, and
243 304 first since the release of IPython 1.0, previous double digit minor release was
244 305 in August 2009.
245 306
246 307 We've been trying to give you regular release on the last Friday of every month
247 308 for a guaranty of rapid access to bug fixes and new features.
248 309
249 310 Unlike the previous first few releases that have seen only a couple of code
250 311 changes, 7.10 bring a number of changes, new features and bugfixes.
251 312
252 313 Stop Support for Python 3.5 – Adopt NEP 29
253 314 ------------------------------------------
254 315
255 316 IPython has decided to follow the informational `NEP 29
256 317 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_ which layout a clear
257 318 policy as to which version of (C)Python and NumPy are supported.
258 319
259 320 We thus dropped support for Python 3.5, and cleaned up a number of code path
260 321 that were Python-version dependant. If you are on 3.5 or earlier pip should
261 322 automatically give you the latest compatible version of IPython so you do not
262 323 need to pin to a given version.
263 324
264 325 Support for Prompt Toolkit 3.0
265 326 ------------------------------
266 327
267 328 Prompt Toolkit 3.0 was release a week before IPython 7.10 and introduces a few
268 329 breaking changes. We believe IPython 7.10 should be compatible with both Prompt
269 330 Toolkit 2.x and 3.x, though it has not been extensively tested with 3.x so
270 331 please report any issues.
271 332
272 333
273 334 Prompt Rendering Performance improvements
274 335 -----------------------------------------
275 336
276 337 Pull Request :ghpull:`11933` introduced an optimisation in the prompt rendering
277 338 logic that should decrease the resource usage of IPython when using the
278 339 _default_ configuration but could potentially introduce a regression of
279 340 functionalities if you are using a custom prompt.
280 341
281 342 We know assume if you haven't changed the default keybindings that the prompt
282 343 **will not change** during the duration of your input – which is for example
283 344 not true when using vi insert mode that switches between `[ins]` and `[nor]`
284 345 for the current mode.
285 346
286 347 If you are experiencing any issue let us know.
287 348
288 349 Code autoformatting
289 350 -------------------
290 351
291 352 The IPython terminal can now auto format your code just before entering a new
292 353 line or executing a command. To do so use the
293 354 ``--TerminalInteractiveShell.autoformatter`` option and set it to ``'black'``;
294 355 if black is installed IPython will use black to format your code when possible.
295 356
296 357 IPython cannot always properly format your code; in particular it will
297 358 auto formatting with *black* will only work if:
298 359
299 360 - Your code does not contains magics or special python syntax.
300 361
301 362 - There is no code after your cursor.
302 363
303 364 The Black API is also still in motion; so this may not work with all versions of
304 365 black.
305 366
306 367 It should be possible to register custom formatter, though the API is till in
307 368 flux.
308 369
309 370 Arbitrary Mimetypes Handing in Terminal (Aka inline images in terminal)
310 371 -----------------------------------------------------------------------
311 372
312 373 When using IPython terminal it is now possible to register function to handle
313 374 arbitrary mimetypes. While rendering non-text based representation was possible in
314 375 many jupyter frontend; it was not possible in terminal IPython, as usually
315 376 terminal are limited to displaying text. As many terminal these days provide
316 377 escape sequences to display non-text; bringing this loved feature to IPython CLI
317 378 made a lot of sens. This functionality will not only allow inline images; but
318 379 allow opening of external program; for example ``mplayer`` to "display" sound
319 380 files.
320 381
321 382 So far only the hooks necessary for this are in place, but no default mime
322 383 renderers added; so inline images will only be available via extensions. We will
323 384 progressively enable these features by default in the next few releases, and
324 385 contribution is welcomed.
325 386
326 387 We welcome any feedback on the API. See :ref:`shell_mimerenderer` for more
327 388 informations.
328 389
329 390 This is originally based on work form in :ghpull:`10610` from @stephanh42
330 391 started over two years ago, and still a lot need to be done.
331 392
332 393 MISC
333 394 ----
334 395
335 396 - Completions can define their own ordering :ghpull:`11855`
336 397 - Enable Plotting in the same cell than the one that import matplotlib
337 398 :ghpull:`11916`
338 399 - Allow to store and restore multiple variables at once :ghpull:`11930`
339 400
340 401 You can see `all pull-requests <https://github.com/ipython/ipython/pulls?q=is%3Apr+milestone%3A7.10+is%3Aclosed>`_ for this release.
341 402
342 403 API Changes
343 404 -----------
344 405
345 406 Change of API and exposed objects automatically detected using `frappuccino <https://pypi.org/project/frappuccino/>`_ (still in beta):
346 407
347 408 The following items are new in IPython 7.10::
348 409
349 410 + IPython.terminal.shortcuts.reformat_text_before_cursor(buffer, document, shell)
350 411 + IPython.terminal.interactiveshell.PTK3
351 412 + IPython.terminal.interactiveshell.black_reformat_handler(text_before_cursor)
352 413 + IPython.terminal.prompts.RichPromptDisplayHook.write_format_data(self, format_dict, md_dict='None')
353 414
354 415 The following items have been removed in 7.10::
355 416
356 417 - IPython.lib.pretty.DICT_IS_ORDERED
357 418
358 419 The following signatures differ between versions::
359 420
360 421 - IPython.extensions.storemagic.restore_aliases(ip)
361 422 + IPython.extensions.storemagic.restore_aliases(ip, alias='None')
362 423
363 424 Special Thanks
364 425 --------------
365 426
366 427 - @stephanh42 who started the work on inline images in terminal 2 years ago
367 428 - @augustogoulart who spent a lot of time triaging issues and responding to
368 429 users.
369 430 - @con-f-use who is my (@Carreau) first sponsor on GitHub, as a reminder if you
370 431 like IPython, Jupyter and many other library of the SciPy stack you can
371 432 donate to numfocus.org non profit
372 433
373 434 .. _version 790:
374 435
375 436 IPython 7.9.0
376 437 =============
377 438
378 439 IPython 7.9 is a small release with a couple of improvement and bug fixes.
379 440
380 441 - Xterm terminal title should be restored on exit :ghpull:`11910`
381 442 - special variables ``_``,``__``, ``___`` are not set anymore when cache size
382 443 is 0 or less. :ghpull:`11877`
383 444 - Autoreload should have regained some speed by using a new heuristic logic to
384 445 find all objects needing reload. This should avoid large objects traversal
385 446 like pandas dataframes. :ghpull:`11876`
386 447 - Get ready for Python 4. :ghpull:`11874`
387 448 - `%env` Magic now has heuristic to hide potentially sensitive values :ghpull:`11896`
388 449
389 450 This is a small release despite a number of Pull Request Pending that need to
390 451 be reviewed/worked on. Many of the core developers have been busy outside of
391 452 IPython/Jupyter and we thanks all contributor for their patience; we'll work on
392 453 these as soon as we have time.
393 454
394 455
395 456 .. _version780:
396 457
397 458 IPython 7.8.0
398 459 =============
399 460
400 461 IPython 7.8.0 contain a few bugfix and 2 new APIs:
401 462
402 463 - Enable changing the font color for LaTeX rendering :ghpull:`11840`
403 464 - and Re-Expose some PDB API (see below)
404 465
405 466 Expose Pdb API
406 467 --------------
407 468
408 469 Expose the built-in ``pdb.Pdb`` API. ``Pdb`` constructor arguments are generically
409 470 exposed, regardless of python version.
410 471 Newly exposed arguments:
411 472
412 473 - ``skip`` - Python 3.1+
413 474 - ``nosiginnt`` - Python 3.2+
414 475 - ``readrc`` - Python 3.6+
415 476
416 477 Try it out::
417 478
418 479 from IPython.terminal.debugger import TerminalPdb
419 480 pdb = TerminalPdb(skip=["skipthismodule"])
420 481
421 482
422 483 See :ghpull:`11840`
423 484
424 485 .. _version770:
425 486
426 487 IPython 7.7.0
427 488 =============
428 489
429 490 IPython 7.7.0 contain multiple bug fixes and documentation updates; Here are a
430 491 few of the outstanding issue fixed:
431 492
432 493 - Fix a bug introduced in 7.6 where the ``%matplotlib`` magic would fail on
433 494 previously acceptable arguments :ghpull:`11814`.
434 495 - Fix the manage location on freebsd :ghpull:`11808`.
435 496 - Fix error message about aliases after ``%reset`` call in ipykernel
436 497 :ghpull:`11806`
437 498 - Fix Duplication completions in emacs :ghpull:`11803`
438 499
439 500 We are planning to adopt `NEP29 <https://github.com/numpy/numpy/pull/14086>`_
440 501 (still currently in draft) which may make this minor version of IPython the
441 502 last one to support Python 3.5 and will make the code base more aggressive
442 503 toward removing compatibility with older versions of Python.
443 504
444 505 GitHub now support to give only "Triage" permissions to users; if you'd like to
445 506 help close stale issues and labels issues please reach to us with your GitHub
446 507 Username and we'll add you to the triage team. It is a great way to start
447 508 contributing and a path toward getting commit rights.
448 509
449 510 .. _version761:
450 511
451 512 IPython 7.6.1
452 513 =============
453 514
454 515 IPython 7.6.1 contain a critical bugfix in the ``%timeit`` magic, which would
455 516 crash on some inputs as a side effect of :ghpull:`11716`. See :ghpull:`11812`
456 517
457 518
458 519 .. _whatsnew760:
459 520
460 521 IPython 7.6.0
461 522 =============
462 523
463 524 IPython 7.6.0 contains a couple of bug fixes and number of small features
464 525 additions as well as some compatibility with the current development version of
465 526 Python 3.8.
466 527
467 528 - Add a ``-l`` option to :magic:`psearch` to list the available search
468 529 types. :ghpull:`11672`
469 530 - Support ``PathLike`` for ``DisplayObject`` and ``Image``. :ghpull:`11764`
470 531 - Configurability of timeout in the test suite for slow platforms.
471 532 :ghpull:`11756`
472 533 - Accept any casing for matplotlib backend. :ghpull:`121748`
473 534 - Properly skip test that requires numpy to be installed :ghpull:`11723`
474 535 - More support for Python 3.8 and positional only arguments (pep570)
475 536 :ghpull:`11720`
476 537 - Unicode names for the completion are loaded lazily on first use which
477 538 should decrease startup time. :ghpull:`11693`
478 539 - Autoreload now update the types of reloaded objects; this for example allow
479 540 pickling of reloaded objects. :ghpull:`11644`
480 541 - Fix a bug where ``%%time`` magic would suppress cell output. :ghpull:`11716`
481 542
482 543
483 544 Prepare migration to pytest (instead of nose) for testing
484 545 ---------------------------------------------------------
485 546
486 547 Most of the work between 7.5 and 7.6 was to prepare the migration from our
487 548 testing framework to pytest. Most of the test suite should now work by simply
488 549 issuing ``pytest`` from the root of the repository.
489 550
490 551 The migration to pytest is just at its beginning. Many of our test still rely
491 552 on IPython-specific plugins for nose using pytest (doctest using IPython syntax
492 553 is one example of this where test appear as "passing", while no code has been
493 554 ran). Many test also need to be updated like ``yield-test`` to be properly
494 555 parametrized tests.
495 556
496 557 Migration to pytest allowed me to discover a number of issues in our test
497 558 suite; which was hiding a number of subtle issues – or not actually running
498 559 some of the tests in our test suite – I have thus corrected many of those; like
499 560 improperly closed resources; or used of deprecated features. I also made use of
500 561 the ``pytest --durations=...`` to find some of our slowest test and speed them
501 562 up (our test suite can now be up to 10% faster). Pytest as also a variety of
502 563 plugins and flags which will make the code quality of IPython and the testing
503 564 experience better.
504 565
505 566 Misc
506 567 ----
507 568
508 569 We skipped the release of 7.6 at the end of May, but will attempt to get back
509 570 on schedule. We are starting to think about making introducing backward
510 571 incompatible change and start the 8.0 series.
511 572
512 573 Special Thanks to Gabriel (@gpotter2 on GitHub), who among other took care many
513 574 of the remaining task for 7.4 and 7.5, like updating the website.
514 575
515 576 .. _whatsnew750:
516 577
517 578 IPython 7.5.0
518 579 =============
519 580
520 581 IPython 7.5.0 consist mostly of bug-fixes, and documentation updates, with one
521 582 minor new feature. The `Audio` display element can now be assigned an element
522 583 id when displayed in browser. See :ghpull:`11670`
523 584
524 585 The major outstanding bug fix correct a change of behavior that was introduce
525 586 in 7.4.0 where some cell magics would not be able to access or modify global
526 587 scope when using the ``@needs_local_scope`` decorator. This was typically
527 588 encountered with the ``%%time`` and ``%%timeit`` magics. See :ghissue:`11659`
528 589 and :ghpull:`11698`.
529 590
530 591 .. _whatsnew740:
531 592
532 593 IPython 7.4.0
533 594 =============
534 595
535 596 Unicode name completions
536 597 ------------------------
537 598
538 599 Previously, we provided completion for a unicode name with its relative symbol.
539 600 With this, now IPython provides complete suggestions to unicode name symbols.
540 601
541 602 As on the PR, if user types ``\LAT<tab>``, IPython provides a list of
542 603 possible completions. In this case, it would be something like::
543 604
544 605 'LATIN CAPITAL LETTER A',
545 606 'LATIN CAPITAL LETTER B',
546 607 'LATIN CAPITAL LETTER C',
547 608 'LATIN CAPITAL LETTER D',
548 609 ....
549 610
550 611 This help to type unicode character that do not have short latex aliases, and
551 612 have long unicode names. for example ``Ͱ``, ``\GREEK CAPITAL LETTER HETA``.
552 613
553 614 This feature was contributed by Luciana Marques :ghpull:`11583`.
554 615
555 616 Make audio normalization optional
556 617 ---------------------------------
557 618
558 619 Added 'normalize' argument to `IPython.display.Audio`. This argument applies
559 620 when audio data is given as an array of samples. The default of `normalize=True`
560 621 preserves prior behavior of normalizing the audio to the maximum possible range.
561 622 Setting to `False` disables normalization.
562 623
563 624
564 625 Miscellaneous
565 626 -------------
566 627
567 628 - Fix improper acceptation of ``return`` outside of functions. :ghpull:`11641`.
568 629 - Fixed PyQt 5.11 backwards incompatibility causing sip import failure.
569 630 :ghpull:`11613`.
570 631 - Fix Bug where ``type?`` would crash IPython. :ghpull:`1608`.
571 632 - Allow to apply ``@needs_local_scope`` to cell magics for convenience.
572 633 :ghpull:`11542`.
573 634
574 635 .. _whatsnew730:
575 636
576 637 IPython 7.3.0
577 638 =============
578 639
579 640 .. _whatsnew720:
580 641
581 642 IPython 7.3.0 bring several bug fixes and small improvements that you will
582 643 described bellow.
583 644
584 645 The biggest change to this release is the implementation of the ``%conda`` and
585 646 ``%pip`` magics, that will attempt to install packages in the **current
586 647 environment**. You may still need to restart your interpreter or kernel for the
587 648 change to be taken into account, but it should simplify installation of packages
588 649 into remote environment. Installing using pip/conda from the command line is
589 650 still the prefer method.
590 651
591 652 The ``%pip`` magic was already present, but was only printing a warning; now it
592 653 will actually forward commands to pip.
593 654
594 655 Misc bug fixes and improvements:
595 656
596 657 - Compatibility with Python 3.8.
597 658 - Do not expand shell variable in execution magics, and added the
598 659 ``no_var_expand`` decorator for magic requiring a similar functionality
599 660 :ghpull:`11516`
600 661 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
601 662 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
602 663 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
603 664
604 665 IPython 7.2.0
605 666 =============
606 667
607 668 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
608 669
609 670 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
610 671 - Run CI on Mac OS ! :ghpull:`11471`
611 672 - Fix IPython "Demo" mode. :ghpull:`11498`
612 673 - Fix ``%run`` magic with path in name :ghpull:`11499`
613 674 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
614 675 - Better rendering of signatures, especially long ones. :ghpull:`11505`
615 676 - Re-enable jedi by default if it's installed :ghpull:`11506`
616 677 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
617 678
618 679
619 680 Added ability to show subclasses when using pinfo and other utilities
620 681 ---------------------------------------------------------------------
621 682
622 683 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
623 684
624 685 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
625 686 is one of the people who played a critical role in IPython/Jupyter getting
626 687 funding.
627 688
628 689 We are grateful for all the help Chris has given us over the years,
629 690 and we're now proud to have code contributed by Chris in IPython.
630 691
631 692 OSMagics.cd_force_quiet configuration option
632 693 --------------------------------------------
633 694
634 695 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
635 696 ::
636 697
637 698 In [1]: cd /
638 699 /
639 700
640 701 In [2]: %config OSMagics.cd_force_quiet = True
641 702
642 703 In [3]: cd /tmp
643 704
644 705 In [4]:
645 706
646 707 See :ghpull:`11491`
647 708
648 709 In vi editing mode, whether the prompt includes the current vi mode can now be configured
649 710 -----------------------------------------------------------------------------------------
650 711
651 712 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
652 713 (default: True) to control this feature. See :ghpull:`11492`
653 714
654 715 .. _whatsnew710:
655 716
656 717 IPython 7.1.0
657 718 =============
658 719
659 720 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
660 721 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
661 722 transition. It also brings **Compatibility with Python 3.7.1**, as we're
662 723 unwillingly relying on a bug in CPython.
663 724
664 725 New Core Dev:
665 726
666 727 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
667 728 work on prompt_toolkit, and we'd like to recognise his impact by giving him
668 729 commit rights. :ghissue:`11397`
669 730
670 731 Notable Changes
671 732
672 733 - Major update of "latex to unicode" tab completion map (see below)
673 734
674 735 Notable New Features:
675 736
676 737 - Restore functionality and documentation of the **sphinx directive**, which
677 738 is now stricter (fail on error by daefault), has new configuration options,
678 739 has a brand new documentation page :ref:`ipython_directive` (which needs
679 740 some cleanup). It is also now *tested* so we hope to have less regressions.
680 741 :ghpull:`11402`
681 742
682 743 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
683 744 allowing a custom width and height to be set instead of using the video's
684 745 width and height. :ghpull:`11353`
685 746
686 747 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
687 748
688 749 - Allow Dynamic switching of editing mode between vi/emacs and show
689 750 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
690 751 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
691 752 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
692 753 between modes.
693 754
694 755
695 756 Notable Fixes:
696 757
697 758 - Fix entering of **multi-line blocks in terminal** IPython, and various
698 759 crashes in the new input transformation machinery :ghpull:`11354`,
699 760 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
700 761 with Python 3.7.1**.
701 762
702 763 - Fix moving through generator stack in ipdb :ghpull:`11266`
703 764
704 765 - %Magic command arguments now support quoting. :ghpull:`11330`
705 766
706 767 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
707 768
708 769 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
709 770
710 771 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
711 772 mode. :ghpull:`11382`
712 773
713 774 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
714 775 nested code blocks :ghpull:`11418`
715 776
716 777 - Fix instructions for custom shortcuts :ghpull:`11426`
717 778
718 779
719 780 Notable Internals improvements:
720 781
721 782 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
722 783 :ghpull:`11365`
723 784
724 785 - use ``perf_counter`` instead of ``clock`` for more precise
725 786 timing results with ``%time`` :ghpull:`11376`
726 787
727 788 Many thanks to all the contributors and in particular to ``bartskowron`` and
728 789 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
729 790 had a number of first time contributors and maybe hacktoberfest participants that
730 791 made significant contributions and helped us free some time to focus on more
731 792 complicated bugs.
732 793
733 794 You
734 795 can see all the closed issues and Merged PR, new features and fixes `here
735 796 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
736 797
737 798 Unicode Completion update
738 799 -------------------------
739 800
740 801 In IPython 7.1 the Unicode completion map has been updated and synchronized with
741 802 the Julia language.
742 803
743 804 Added and removed character characters:
744 805
745 806 ``\jmath`` (``ȷ``), ``\\underleftrightarrow`` (U+034D, combining) have been
746 807 added, while ``\\textasciicaron`` have been removed
747 808
748 809 Some sequences have seen their prefix removed:
749 810
750 811 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
751 812 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
752 813 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
753 814 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
754 815
755 816 Some sequences have seen their prefix shortened:
756 817
757 818 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
758 819 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
759 820 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
760 821 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
761 822
762 823 A couple of characters had their sequence simplified:
763 824
764 825 - ``ð``, type ``\dh<tab>``, instead of ``\eth<tab>``
765 826 - ``ħ``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
766 827 - ``ɸ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
767 828 - ``ϴ``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
768 829 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
769 830 - ``ℎ``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
770 831
771 832 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
772 833
773 834 A couple of sequences have been updated:
774 835
775 836 - ``\varepsilon`` now gives ``ɛ`` (GREEK SMALL LETTER EPSILON) instead of ``ε`` (GREEK LUNATE EPSILON SYMBOL),
776 837 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
777 838
778 839
779 840 .. _whatsnew700:
780 841
781 842 IPython 7.0.0
782 843 =============
783 844
784 845 Released Thursday September 27th, 2018
785 846
786 847 IPython 7 includes major feature improvements.
787 848 This is also the second major version of IPython to support only
788 849 Python 3 – starting at Python 3.4. Python 2 is still community-supported
789 850 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
790 851 is on Jan 1st 2020.
791 852
792 853 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
793 854 backported more than `70 Pull-Requests
794 855 <https://github.com/ipython/ipython/pulls?page=3&q=is%3Apr+sort%3Aupdated-desc+author%3Aapp%2Fmeeseeksdev++5.x&utf8=%E2%9C%93>`_, but there are still many PRs that required manual work. This is an area of the project where you can easily contribute by looking for `PRs that still need manual backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
795 856
796 857 The IPython 6.x branch will likely not see any further release unless critical
797 858 bugs are found.
798 859
799 860 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
800 861
801 862 .. code::
802 863
803 864 pip install ipython --upgrade
804 865
805 866 .. only:: ipydev
806 867
807 868 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
808 869 version, use pip ``--pre`` flag.
809 870
810 871 .. code::
811 872
812 873 pip install ipython --upgrade --pre
813 874
814 875
815 876 Or, if you have conda installed:
816 877
817 878 .. code::
818 879
819 880 conda install ipython
820 881
821 882
822 883
823 884 Prompt Toolkit 2.0
824 885 ------------------
825 886
826 887 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
827 888 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
828 889
829 890 Autowait: Asynchronous REPL
830 891 ---------------------------
831 892
832 893 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
833 894 top level code. You should not need to access an event loop or runner
834 895 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
835 896 :ghpull:`11265`, or try the following code::
836 897
837 898 Python 3.6.0
838 899 Type 'copyright', 'credits' or 'license' for more information
839 900 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
840 901
841 902 In [1]: import aiohttp
842 903 ...: result = aiohttp.get('https://api.github.com')
843 904
844 905 In [2]: response = await result
845 906 <pause for a few 100s ms>
846 907
847 908 In [3]: await response.json()
848 909 Out[3]:
849 910 {'authorizations_url': 'https://api.github.com/authorizations',
850 911 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
851 912 ...
852 913 }
853 914
854 915 .. note::
855 916
856 917 Async integration is experimental code, behavior may change or be removed
857 918 between Python and IPython versions without warnings.
858 919
859 920 Integration is by default with `asyncio`, but other libraries can be configured --
860 921 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
861 922
862 923 In [1]: %autoawait trio
863 924
864 925 In [2]: import trio
865 926
866 927 In [3]: async def child(i):
867 928 ...: print(" child %s goes to sleep"%i)
868 929 ...: await trio.sleep(2)
869 930 ...: print(" child %s wakes up"%i)
870 931
871 932 In [4]: print('parent start')
872 933 ...: async with trio.open_nursery() as n:
873 934 ...: for i in range(3):
874 935 ...: n.spawn(child, i)
875 936 ...: print('parent end')
876 937 parent start
877 938 child 2 goes to sleep
878 939 child 0 goes to sleep
879 940 child 1 goes to sleep
880 941 <about 2 seconds pause>
881 942 child 2 wakes up
882 943 child 1 wakes up
883 944 child 0 wakes up
884 945 parent end
885 946
886 947 See :ref:`autoawait` for more information.
887 948
888 949
889 950 Asynchronous code in a Notebook interface or any other frontend using the
890 951 Jupyter Protocol will require further updates to the IPykernel package.
891 952
892 953 Non-Asynchronous code
893 954 ~~~~~~~~~~~~~~~~~~~~~
894 955
895 956 As the internal API of IPython is now asynchronous, IPython needs to run under
896 957 an event loop. In order to allow many workflows, (like using the :magic:`%run`
897 958 magic, or copy-pasting code that explicitly starts/stop event loop), when
898 959 top-level code is detected as not being asynchronous, IPython code is advanced
899 960 via a pseudo-synchronous runner, and may not advance pending tasks.
900 961
901 962 Change to Nested Embed
902 963 ~~~~~~~~~~~~~~~~~~~~~~
903 964
904 965 The introduction of the ability to run async code had some effect on the
905 966 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
906 967 code unless an event loop is specified.
907 968
908 969 Effects on Magics
909 970 ~~~~~~~~~~~~~~~~~
910 971
911 972 Some magics will not work with async until they're updated.
912 973 Contributions welcome.
913 974
914 975 Expected Future changes
915 976 ~~~~~~~~~~~~~~~~~~~~~~~
916 977
917 978 We expect more internal but public IPython functions to become ``async``, and
918 979 will likely end up having a persistent event loop while IPython is running.
919 980
920 981 Thanks
921 982 ~~~~~~
922 983
923 984 This release took more than a year in the making.
924 985 The code was rebased a number of
925 986 times; leading to commit authorship that may have been lost in the final
926 987 Pull-Request. Huge thanks to many people for contribution, discussion, code,
927 988 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
928 989 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
929 990
930 991
931 992 Autoreload Improvement
932 993 ----------------------
933 994
934 995 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
935 996 classes. Earlier, only methods existing as of the initial import were being
936 997 tracked and updated.
937 998
938 999 This new feature helps dual environment development - Jupyter+IDE - where the
939 1000 code gradually moves from notebook cells to package files as it gets
940 1001 structured.
941 1002
942 1003 **Example**: An instance of the class ``MyClass`` will be able to access the
943 1004 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
944 1005 disk.
945 1006
946 1007
947 1008 .. code::
948 1009
949 1010 # notebook
950 1011
951 1012 from mymodule import MyClass
952 1013 first = MyClass(5)
953 1014
954 1015 .. code::
955 1016
956 1017 # mymodule/file1.py
957 1018
958 1019 class MyClass:
959 1020
960 1021 def __init__(self, a=10):
961 1022 self.a = a
962 1023
963 1024 def square(self):
964 1025 print('compute square')
965 1026 return self.a*self.a
966 1027
967 1028 # def cube(self):
968 1029 # print('compute cube')
969 1030 # return self.a*self.a*self.a
970 1031
971 1032
972 1033
973 1034
974 1035 Misc
975 1036 ----
976 1037
977 1038 The autoindent feature that was deprecated in 5.x was re-enabled and
978 1039 un-deprecated in :ghpull:`11257`
979 1040
980 1041 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
981 1042 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
982 1043
983 1044
984 1045 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
985 1046 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
986 1047 the given code is non-zero (thus halting execution of further cells in a
987 1048 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
988 1049
989 1050
990 1051 Deprecations
991 1052 ------------
992 1053
993 1054 A couple of unused functions and methods have been deprecated and will be removed
994 1055 in future versions:
995 1056
996 1057 - ``IPython.utils.io.raw_print_err``
997 1058 - ``IPython.utils.io.raw_print``
998 1059
999 1060
1000 1061 Backwards incompatible changes
1001 1062 ------------------------------
1002 1063
1003 1064 * The API for transforming input before it is parsed as Python code has been
1004 1065 completely redesigned: any custom input transformations will need to be
1005 1066 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now