##// END OF EJS Templates
whats new version8.8
Matthias Bussonnier -
Show More
@@ -2,6 +2,44 b''
2 8.x Series
2 8.x Series
3 ============
3 ============
4
4
5 .. _version 8.8.0:
6
7 IPython 8.8.0
8 -------------
9
10 First release of IPython in 2023 as there was no release at the end of
11 December.
12
13 This is an unusually big release (relatively speaking) with more than 15 Pull
14 Requests merge.
15
16 Of particular interest are:
17
18 - :ghpull:`13852` that replace the greedy completer and improve
19 completion, in particular for dictionary keys.
20 - :ghpull:`13858` that adds ``py.typed`` to ``setup.cfg`` to make sure it is
21 bundled in wheels.
22 - :ghpull:`13869` that implements tab completions for IPython options in the
23 shell when using `argcomplete <https://github.com/kislyuk/argcomplete>`. I
24 believe this also needs a recent version of Traitlets.
25 - :ghpull:`13865` makes the ``inspector`` class of `InteractiveShell`
26 configurable.
27 - :ghpull:`13880` that remove minor-version entrypoints as the minor version
28 entry points that would be included in the wheel would be the one of the
29 Python version that was used to build the ``whl`` file.
30
31 In no particular order, the rest of the changes update the test suite to be
32 compatible with Pygments 2.14, various docfixes, testing on more recent python
33 versions and various updates.
34
35 As usual you can find the full list of PRs on GitHub under `the 8.8 milestone
36 <https://github.com/ipython/ipython/milestone/110>`__.
37
38 Many thanks to @krassowski for the many PRs and @jasongrout for reviewing and
39 merging contributions.
40
41 Thanks to the `D. E. Shaw group <https://deshaw.com/>`__ for sponsoring
42 work on IPython and related libraries.
5
43
6 .. _version 8.7.0:
44 .. _version 8.7.0:
7
45
@@ -138,7 +176,7 b' Here is a non exhaustive list of changes that have been implemented for IPython'
138 - Fix paste magic on wayland. :ghpull:`13671`
176 - Fix paste magic on wayland. :ghpull:`13671`
139 - show maxlen in deque's repr. :ghpull:`13648`
177 - show maxlen in deque's repr. :ghpull:`13648`
140
178
141 Restore line numbers for Input
179 Restore line numbers for Input
142 ------------------------------
180 ------------------------------
143
181
144 Line number information in tracebacks from input are restored.
182 Line number information in tracebacks from input are restored.
@@ -269,7 +307,7 b' Thanks to the `D. E. Shaw group <https://deshaw.com/>`__ for sponsoring'
269 work on IPython and related libraries.
307 work on IPython and related libraries.
270
308
271 .. _version 8.1.1:
309 .. _version 8.1.1:
272
310
273 IPython 8.1.1
311 IPython 8.1.1
274 -------------
312 -------------
275
313
@@ -403,10 +441,10 b' The 8.x branch started diverging from its predecessor around IPython 7.12'
403 (January 2020).
441 (January 2020).
404
442
405 This release contains 250+ pull requests, in addition to many of the features
443 This release contains 250+ pull requests, in addition to many of the features
406 and backports that have made it to the 7.x branch. Please see the
444 and backports that have made it to the 7.x branch. Please see the
407 `8.0 milestone <https://github.com/ipython/ipython/milestone/73?closed=1>`__ for the full list of pull requests.
445 `8.0 milestone <https://github.com/ipython/ipython/milestone/73?closed=1>`__ for the full list of pull requests.
408
446
409 Please feel free to send pull requests to updates those notes after release,
447 Please feel free to send pull requests to updates those notes after release,
410 I have likely forgotten a few things reviewing 250+ PRs.
448 I have likely forgotten a few things reviewing 250+ PRs.
411
449
412 Dependencies changes/downstream packaging
450 Dependencies changes/downstream packaging
@@ -421,7 +459,7 b' looking for help to do so.'
421 - minimal Python is now 3.8
459 - minimal Python is now 3.8
422 - ``nose`` is not a testing requirement anymore
460 - ``nose`` is not a testing requirement anymore
423 - ``pytest`` replaces nose.
461 - ``pytest`` replaces nose.
424 - ``iptest``/``iptest3`` cli entrypoints do not exists anymore.
462 - ``iptest``/``iptest3`` cli entrypoints do not exists anymore.
425 - minimum officially support ``numpy`` version has been bumped, but this should
463 - minimum officially support ``numpy`` version has been bumped, but this should
426 not have much effect on packaging.
464 not have much effect on packaging.
427
465
@@ -443,7 +481,7 b' deprecation warning:'
443 - Please add **since which version** something is deprecated.
481 - Please add **since which version** something is deprecated.
444
482
445 As a side note, it is much easier to conditionally compare version
483 As a side note, it is much easier to conditionally compare version
446 numbers rather than using ``try/except`` when functionality changes with a version.
484 numbers rather than using ``try/except`` when functionality changes with a version.
447
485
448 I won't list all the removed features here, but modules like ``IPython.kernel``,
486 I won't list all the removed features here, but modules like ``IPython.kernel``,
449 which was just a shim module around ``ipykernel`` for the past 8 years, have been
487 which was just a shim module around ``ipykernel`` for the past 8 years, have been
@@ -475,7 +513,7 b' by mypy.'
475 Featured changes
513 Featured changes
476 ----------------
514 ----------------
477
515
478 Here is a features list of changes in IPython 8.0. This is of course non-exhaustive.
516 Here is a features list of changes in IPython 8.0. This is of course non-exhaustive.
479 Please note as well that many features have been added in the 7.x branch as well
517 Please note as well that many features have been added in the 7.x branch as well
480 (and hence why you want to read the 7.x what's new notes), in particular
518 (and hence why you want to read the 7.x what's new notes), in particular
481 features contributed by QuantStack (with respect to debugger protocol and Xeus
519 features contributed by QuantStack (with respect to debugger protocol and Xeus
@@ -523,7 +561,7 b' The error traceback is now correctly formatted, showing the cell number in which'
523
561
524 ZeroDivisionError: division by zero
562 ZeroDivisionError: division by zero
525
563
526 The ``stack_data`` package has been integrated, which provides smarter information in the traceback;
564 The ``stack_data`` package has been integrated, which provides smarter information in the traceback;
527 in particular it will highlight the AST node where an error occurs which can help to quickly narrow down errors.
565 in particular it will highlight the AST node where an error occurs which can help to quickly narrow down errors.
528
566
529 For example in the following snippet::
567 For example in the following snippet::
@@ -563,7 +601,7 b' and IPython 8.0 is capable of telling you where the index error occurs::'
563 ----> 3 return x[0][i][0]
601 ----> 3 return x[0][i][0]
564 ^^^^^^^
602 ^^^^^^^
565
603
566 The corresponding locations marked here with ``^`` will show up highlighted in
604 The corresponding locations marked here with ``^`` will show up highlighted in
567 the terminal and notebooks.
605 the terminal and notebooks.
568
606
569 Finally, a colon ``::`` and line number is appended after a filename in
607 Finally, a colon ``::`` and line number is appended after a filename in
@@ -760,7 +798,7 b' Previously, this was not the case for the Vi-mode prompts::'
760 This is now fixed, and Vi prompt prefixes - ``[ins]`` and ``[nav]`` - are
798 This is now fixed, and Vi prompt prefixes - ``[ins]`` and ``[nav]`` - are
761 skipped just as the normal ``In`` would be.
799 skipped just as the normal ``In`` would be.
762
800
763 IPython shell can be started in the Vi mode using ``ipython --TerminalInteractiveShell.editing_mode=vi``,
801 IPython shell can be started in the Vi mode using ``ipython --TerminalInteractiveShell.editing_mode=vi``,
764 You should be able to change mode dynamically with ``%config TerminalInteractiveShell.editing_mode='vi'``
802 You should be able to change mode dynamically with ``%config TerminalInteractiveShell.editing_mode='vi'``
765
803
766 Empty History Ranges
804 Empty History Ranges
@@ -787,8 +825,8 b' when followed with :kbd:`F2`), send it to `dpaste.org <http://dpast.org>`_ using'
787
825
788 Windows timing implementation: Switch to process_time
826 Windows timing implementation: Switch to process_time
789 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
827 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
790 Timing on Windows, for example with ``%%time``, was changed from being based on ``time.perf_counter``
828 Timing on Windows, for example with ``%%time``, was changed from being based on ``time.perf_counter``
791 (which counted time even when the process was sleeping) to being based on ``time.process_time`` instead
829 (which counted time even when the process was sleeping) to being based on ``time.process_time`` instead
792 (which only counts CPU time). This brings it closer to the behavior on Linux. See :ghpull:`12984`.
830 (which only counts CPU time). This brings it closer to the behavior on Linux. See :ghpull:`12984`.
793
831
794 Miscellaneous
832 Miscellaneous
@@ -813,7 +851,7 b' Re-added support for XDG config directories'
813 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
851 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
814
852
815 XDG support through the years comes and goes. There is a tension between having
853 XDG support through the years comes and goes. There is a tension between having
816 an identical location for configuration in all platforms versus having simple instructions.
854 an identical location for configuration in all platforms versus having simple instructions.
817 After initial failures a couple of years ago, IPython was modified to automatically migrate XDG
855 After initial failures a couple of years ago, IPython was modified to automatically migrate XDG
818 config files back into ``~/.ipython``. That migration code has now been removed.
856 config files back into ``~/.ipython``. That migration code has now been removed.
819 IPython now checks the XDG locations, so if you _manually_ move your config
857 IPython now checks the XDG locations, so if you _manually_ move your config
@@ -841,7 +879,7 b' Removing support for older Python versions'
841
879
842
880
843 We are removing support for Python up through 3.7, allowing internal code to use the more
881 We are removing support for Python up through 3.7, allowing internal code to use the more
844 efficient ``pathlib`` and to make better use of type annotations.
882 efficient ``pathlib`` and to make better use of type annotations.
845
883
846 .. image:: ../_images/8.0/pathlib_pathlib_everywhere.jpg
884 .. image:: ../_images/8.0/pathlib_pathlib_everywhere.jpg
847 :alt: "Meme image of Toy Story with Woody and Buzz, with the text 'pathlib, pathlib everywhere'"
885 :alt: "Meme image of Toy Story with Woody and Buzz, with the text 'pathlib, pathlib everywhere'"
General Comments 0
You need to be logged in to leave comments. Login now