diff --git a/docs/source/whatsnew/development.rst b/docs/source/whatsnew/development.rst
index 5ae9b4e..0f628a7 100644
--- a/docs/source/whatsnew/development.rst
+++ b/docs/source/whatsnew/development.rst
@@ -22,430 +22,9 @@ Need to be updated:
pr/*
-IPython 8.0 is bringing a large number of new features and improvements to both the
-user of the terminal and of the kernel via Jupyter. The removal of compatibility
-with older version of Python is also the opportunity to do a couple of
-performance improvement in particular with respect to startup time.
-The 8.x branch started diverging from its predecessor around IPython 7.12
-(January 2020).
-
-This release contains 250+ Pull Requests, in addition to many of the features
-and backports that have made it to the 7.x branch. All PRs that went into this
-released are properly tagged with the 8.0 milestone if you wish to have a more
-in depth look at the changes.
-
-Please fell free to send pull-requests to updates those notes after release,
-I have likely forgotten a few things reviewing 250+ PRs.
-
-Dependencies changes/downstream packaging
------------------------------------------
-
-Note that most of our building step have been changes to be (mostly) declarative
-and follow PEP 517, we are trying to completely remove ``setup.py`` (:ghpull:`13238`) and are
-looking for help to do so.
-
- - Minimum supported ``traitlets`` version if now 5+
- - we now require ``stack_data``
- - Minimal Python is now 3.8
- - ``nose`` is not a testing requirement anymore
- - ``pytest`` replaces nose.
- - ``iptest``/``iptest3`` cli entrypoints do not exists anymore.
- - minimum officially support ``numpy`` version has been bumped, but this should
- not have much effect on packaging.
-
-
-Deprecation and removal
------------------------
-
-We removed almost all features, arguments, functions, and modules that were
-marked as deprecated between IPython 1.0 and 5.0. As reminder 5.0 was released
-in 2016, and 1.0 in 2013. Last release of the 5 branch was 5.10.0, in may 2020.
-The few remaining deprecated features we left have better deprecation warnings
-or have been turned into explicit errors for better error messages.
-
-I will use this occasion to add the following requests to anyone emitting a
-deprecation warning:
-
- - Please at at least ``stacklevel=2`` so that the warning is emitted into the
- caller context, and not the callee one.
- - Please add **since which version** something is deprecated.
-
-As a side note it is much easier to deal with conditional comparing to versions
-numbers than ``try/except`` when a functionality change with version.
-
-I won't list all the removed features here, but modules like ``IPython.kernel``,
-which was just a shim module around ``ipykernel`` for the past 8 years have been
-remove, and so many other similar things that pre-date the name **Jupyter**
-itself.
-
-We no longer need to add ``IPyhton.extensions`` to the PYTHONPATH because that is being
-handled by ``load_extension``.
-
-We are also removing ``Cythonmagic``, ``sympyprinting`` and ``rmagic`` as they are now in
-other packages and no longer need to be inside IPython.
-
-
-Documentation
--------------
-
-Majority of our docstrings have now been reformatted and automatically fixed by
-the experimental `Vélin `_ project, to conform
-to numpydoc.
-
-Type annotations
-----------------
-
-While IPython itself is highly dynamic and can't be completely typed, many of
-the function now have type annotation, and part of the codebase and now checked
-by mypy.
-
-
-Featured changes
-----------------
-
-Here is a features list of changes in IPython 8.0. This is of course non-exhaustive.
-Please note as well that many features have been added in the 7.x branch as well
-(and hence why you want to read the 7.x what's new notes), in particular
-features contributed by QuantStack (with respect to debugger protocol, and Xeus
-Python), as well as many debugger features that I was please to implement as
-part of my work at QuanSight and Sponsored by DE Shaw.
-
-Better Tracebacks
-~~~~~~~~~~~~~~~~~
-
-The first on is the integration of the ``stack_data`` package;
-which provide smarter informations in traceback; in particular it will highlight
-the AST node where an error occurs which can help to quickly narrow down errors.
-
-For example in the following snippet::
-
- def foo(i):
- x = [[[0]]]
- return x[0][i][0]
-
-
- def bar():
- return foo(0) + foo(
- 1
- ) + foo(2)
-
-
-Calling ``bar()`` would raise an ``IndexError`` on the return line of ``foo``,
-IPython 8.0 is capable of telling you, where the index error occurs::
-
-
- IndexError
- Input In [2], in
- ----> 1 bar()
- ^^^^^
-
- Input In [1], in bar()
- 6 def bar():
- ----> 7 return foo(0) + foo(
- ^^^^
- 8 1
- ^^^^^^^^
- 9 ) + foo(2)
- ^^^^
-
- Input In [1], in foo(i)
- 1 def foo(i):
- 2 x = [[[0]]]
- ----> 3 return x[0][i][0]
- ^^^^^^^
-
-Corresponding location marked here with ``^`` will show up highlighted in
-terminal and notebooks.
-
-
-Autosuggestons
-~~~~~~~~~~~~~~
-
-Autosuggestion is a very useful feature available in `fish `__, `zsh `__, and `prompt-toolkit `__.
-
-`Ptpython `__ allows users to enable this feature in
-`ptpython/config.py `__.
-
-This feature allows users to accept autosuggestions with ctrl e, ctrl f,
-or right arrow as described below.
-
-1. Start ipython
-
-.. image:: ../_images/8.0/auto_suggest_1_prompt_no_text.png
-
-2. Run ``print("hello")``
-
-.. image:: ../_images/8.0/auto_suggest_2_print_hello_suggest.png
-
-3. start typing ``print`` again to see the autosuggestion
-
-.. image:: ../_images/8.0/auto_suggest_3_print_hello_suggest.png
-
-4. Press ``ctrl-f``, or ``ctrl-e``, or ``right-arrow`` to accept the suggestion
-
-.. image:: ../_images/8.0/auto_suggest_4_print_hello.png
-
-You can also complete word by word:
-
-1. Run ``def say_hello(): print("hello")``
-
-.. image:: ../_images/8.0/auto_suggest_second_prompt.png
-
-2. Start typing the first letter if ``def`` to see the autosuggestion
-
-.. image:: ../_images/8.0/auto_suggest_d_phantom.png
-
-3. Press ``alt-f`` (or ``escape`` followed by ``f``), to accept the first word of the suggestion
-
-.. image:: ../_images/8.0/auto_suggest_def_phantom.png
-
-Importantly, this feature does not interfere with tab completion:
-
-1. After running ``def say_hello(): print("hello")``, press d
-
-.. image:: ../_images/8.0/auto_suggest_d_phantom.png
-
-2. Press Tab to start tab completion
-
-.. image:: ../_images/8.0/auto_suggest_d_completions.png
-
-3A. Press Tab again to select the first option
-
-.. image:: ../_images/8.0/auto_suggest_def_completions.png
-
-3B. Press ``alt f`` (``escape``, ``f``) to accept to accept the first word of the suggestion
-
-.. image:: ../_images/8.0/auto_suggest_def_phantom.png
-
-3C. Press ``ctrl-f`` or ``ctrl-e`` to accept the entire suggestion
-
-.. image:: ../_images/8.0/auto_suggest_match_parens.png
-
-
-Currently, autosuggestions are only shown in the emacs or vi insert editing modes:
-
-- The ctrl e, ctrl f, and alt f shortcuts work by default in emacs mode.
-- To use these shortcuts in vi insert mode, you will have to create `custom keybindings in your config.py `__.
-
-
-Show pinfo information in ipdb using "?" and "??"
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In IPDB, it is now possible to show the information about an object using "?"
-and "??", in much the same way it can be done when using the IPython prompt::
-
- ipdb> partial?
- Init signature: partial(self, /, *args, **kwargs)
- Docstring:
- partial(func, *args, **keywords) - new function with partial application
- of the given arguments and keywords.
- File: ~/.pyenv/versions/3.8.6/lib/python3.8/functools.py
- Type: type
- Subclasses:
-
-Previously, ``pinfo`` or ``pinfo2`` command had to be used for this purpose.
-
-
-Autoreload 3 feature
-~~~~~~~~~~~~~~~~~~~~
-
-Example: When an IPython session is ran with the 'autoreload' extension loaded,
-you will now have the option '3' to select which means the following:
-
- 1. replicate all functionality from option 2
- 2. autoload all new funcs/classes/enums/globals from the module when they are added
- 3. autoload all newly imported funcs/classes/enums/globals from external modules
-
-Try ``%autoreload 3`` in an IPython session after running ``%load_ext autoreload``
-
-For more information please see the following unit test : ``extensions/tests/test_autoreload.py:test_autoload_newly_added_objects``
-
-
-
-
-History Range Glob feature
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Previously, when using ``%history``, users could specify either
-a range of sessions and lines, for example:
-
-.. code-block:: python
-
- ~8/1-~6/5 # see history from the first line of 8 sessions ago,
- # to the fifth line of 6 sessions ago.``
-
-Or users could specify a glob pattern:
-
-.. code-block:: python
-
- -g # glob ALL history for the specified pattern.
-
-However users could *not* specify both.
-
-If a user *did* specify both a range and a glob pattern,
-then the glob pattern would be used (globbing *all* history) *and the range would be ignored*.
-
-With this enhancement, if a user specifies both a range and a glob pattern, then the glob pattern will be applied to the specified range of history.
-
-Don't start a multi line cell with sunken parenthesis
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-From now on IPython will not ask for the next line of input when given a single
-line with more closing than opening brackets. For example, this means that if
-you (mis)type ``]]`` instead of ``[]``, a ``SyntaxError`` will show up, instead of
-the ``...:`` prompt continuation.
-
-IPython shell for ipdb interact
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ipdb ``interact`` starts an IPython shell instead of Python's built-in ``code.interact()``.
-
-Automatic Vi prompt stripping
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When pasting code into IPython, it will strip the leading prompt characters if
-there are any. For example, you can paste the following code into the console -
-it will still work, even though each line is prefixed with prompts (`In`,
-`Out`)::
-
- In [1]: 2 * 2 == 4
- Out[1]: True
-
- In [2]: print("This still works as pasted")
-
-
-Previously, this was not the case for the Vi-mode prompts::
-
- In [1]: [ins] In [13]: 2 * 2 == 4
- ...: Out[13]: True
- ...:
- File "", line 1
- [ins] In [13]: 2 * 2 == 4
- ^
- SyntaxError: invalid syntax
-
-This is now fixed, and Vi prompt prefixes - ``[ins]`` and ``[nav]`` - are
-skipped just as the normal ``In`` would be.
-
-IPython shell can be started in the Vi mode using ``ipython --TerminalInteractiveShell.editing_mode=vi``,
-You should be able to change mode dynamically with ``%config TerminalInteractiveShell.editing_mode='vi'``
-
-Empty History Ranges
-~~~~~~~~~~~~~~~~~~~~
-
-A number of magics that take history ranges can now be used with an empty
-range. These magics are:
-
- * ``%save``
- * ``%load``
- * ``%pastebin``
- * ``%pycat``
-
-Using them this way will make them take the history of the current session up
-to the point of the magic call (such that the magic itself will not be
-included).
-
-Therefore it is now possible to save the whole history to a file using simple
-``%save ``, load and edit it using ``%load`` (makes for a nice usage
-when followed with :kbd:`F2`), send it to dpaste.org using ``%pastebin``, or
-view the whole thing syntax-highlighted with a single ``%pycat``.
-
-Traceback improvements
-~~~~~~~~~~~~~~~~~~~~~~
-
-
-Previously, error tracebacks for errors happening in code cells were showing a hash, the one used for compiling the Python AST::
-
- In [1]: def foo():
- ...: return 3 / 0
- ...:
-
- In [2]: foo()
- ---------------------------------------------------------------------------
- ZeroDivisionError Traceback (most recent call last)
- in
- ----> 1 foo()
-
- in foo()
- 1 def foo():
- ----> 2 return 3 / 0
- 3
-
- ZeroDivisionError: division by zero
-
-The error traceback is now correctly formatted, showing the cell number in which the error happened::
-
- In [1]: def foo():
- ...: return 3 / 0
- ...:
-
- Input In [2]: foo()
- ---------------------------------------------------------------------------
- ZeroDivisionError Traceback (most recent call last)
- input In [2], in
- ----> 1 foo()
-
- Input In [1], in foo()
- 1 def foo():
- ----> 2 return 3 / 0
-
- ZeroDivisionError: division by zero
-
-Miscellaneous
-~~~~~~~~~~~~~
-
- - ``~`` is now expanded when part of a path in most magics :ghpull:`13385`
- - ``%/%%timeit`` magic now adds comma every thousands to make reading long number easier :ghpull:`13379`
- - ``"info"`` messages can now be customised to hide some fields :ghpull:`13343`
- - ``collections.UserList`` now pretty-prints :ghpull:`13320`
- - The debugger now have a persistent history, which should make it less
- annoying to retype commands :ghpull:`13246`
- - ``!pip`` ``!conda`` ``!cd`` or ``!ls`` are likely doing the wrong thing, we
- now warn users if they use it. :ghpull:`12954`
- - make ``%precision`` work for ``numpy.float64`` type :ghpull:`12902`
-
-
-
-
-Numfocus Small Developer Grant
-------------------------------
-
-To prepare for Python 3.10 we have also started working on removing reliance and
-any dependency that is not Python 3.10 compatible; that include migrating our
-test suite to pytest, and starting to remove nose. This also mean that the
-``iptest`` command is now gone, and all testing is via pytest.
-
-This was in bog part thanks the NumFOCUS Small Developer grant, we were able to
-allocate 4000 to hire `Nikita Kniazev (@Kojoley) `__
-who did a fantastic job at updating our code base, migrating to pytest, pushing
-our coverage, and fixing a large number of bugs. I highly recommend contacting
-them if you need help with C++ and Python projects
-
-You can find all relevant issues and PRs with the SDG 2021 tag ``__
-
-Removing support for Older Python
----------------------------------
-
-
-We are also removing support for Python up to 3.7 allowing internal code to use more
-efficient ``pathlib``, and make better use of type annotations.
-
-.. image:: ../_images/8.0/pathlib_pathlib_everywhere.jpg
- :alt: "Meme image of Toy Story with Woody and Buzz, with the text 'pathlib, pathlib everywhere'"
-
-
-We have about 34 PRs only to update some logic tu update some function from managing strings to
-using Pathlib.
-
-The completer has also seen significant updates and make use of newer Jedi API
-offering faster and more reliable tab completion.
-
.. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT.
-As a reminder, IPython master has diverged from the 7.x branch, thus master may
-have more feature and API changes.
-
Backwards incompatible changes
------------------------------
diff --git a/docs/source/whatsnew/index.rst b/docs/source/whatsnew/index.rst
index 775d18c..8eecbb9 100644
--- a/docs/source/whatsnew/index.rst
+++ b/docs/source/whatsnew/index.rst
@@ -33,6 +33,7 @@ development work they do here in a user friendly format.
.. toctree::
:maxdepth: 1
+ version8
version7
github-stats-7
version6
diff --git a/docs/source/whatsnew/version8.rst b/docs/source/whatsnew/version8.rst
new file mode 100644
index 0000000..712c76c
--- /dev/null
+++ b/docs/source/whatsnew/version8.rst
@@ -0,0 +1,428 @@
+============
+ 8.x Series
+============
+
+IPython 8.0
+-----------
+
+IPython 8.0 is still in alpha/beta stage. Please help us improve those release notes
+by sending PRs that modify docs/source/whatsnew/version8.rst
+
+IPython 8.0 is bringing a large number of new features and improvements to both the
+user of the terminal and of the kernel via Jupyter. The removal of compatibility
+with older version of Python is also the opportunity to do a couple of
+performance improvement in particular with respect to startup time.
+The 8.x branch started diverging from its predecessor around IPython 7.12
+(January 2020).
+
+This release contains 250+ Pull Requests, in addition to many of the features
+and backports that have made it to the 7.x branch. All PRs that went into this
+released are properly tagged with the 8.0 milestone if you wish to have a more
+in depth look at the changes.
+
+Please fell free to send pull-requests to updates those notes after release,
+I have likely forgotten a few things reviewing 250+ PRs.
+
+Dependencies changes/downstream packaging
+-----------------------------------------
+
+Note that most of our building step have been changes to be (mostly) declarative
+and follow PEP 517, we are trying to completely remove ``setup.py`` (:ghpull:`13238`) and are
+looking for help to do so.
+
+ - Minimum supported ``traitlets`` version if now 5+
+ - we now require ``stack_data``
+ - Minimal Python is now 3.8
+ - ``nose`` is not a testing requirement anymore
+ - ``pytest`` replaces nose.
+ - ``iptest``/``iptest3`` cli entrypoints do not exists anymore.
+ - minimum officially support ``numpy`` version has been bumped, but this should
+ not have much effect on packaging.
+
+
+Deprecation and removal
+-----------------------
+
+We removed almost all features, arguments, functions, and modules that were
+marked as deprecated between IPython 1.0 and 5.0. As reminder 5.0 was released
+in 2016, and 1.0 in 2013. Last release of the 5 branch was 5.10.0, in may 2020.
+The few remaining deprecated features we left have better deprecation warnings
+or have been turned into explicit errors for better error messages.
+
+I will use this occasion to add the following requests to anyone emitting a
+deprecation warning:
+
+ - Please at at least ``stacklevel=2`` so that the warning is emitted into the
+ caller context, and not the callee one.
+ - Please add **since which version** something is deprecated.
+
+As a side note it is much easier to deal with conditional comparing to versions
+numbers than ``try/except`` when a functionality change with version.
+
+I won't list all the removed features here, but modules like ``IPython.kernel``,
+which was just a shim module around ``ipykernel`` for the past 8 years have been
+remove, and so many other similar things that pre-date the name **Jupyter**
+itself.
+
+We no longer need to add ``IPyhton.extensions`` to the PYTHONPATH because that is being
+handled by ``load_extension``.
+
+We are also removing ``Cythonmagic``, ``sympyprinting`` and ``rmagic`` as they are now in
+other packages and no longer need to be inside IPython.
+
+
+Documentation
+-------------
+
+Majority of our docstrings have now been reformatted and automatically fixed by
+the experimental `Vélin `_ project, to conform
+to numpydoc.
+
+Type annotations
+----------------
+
+While IPython itself is highly dynamic and can't be completely typed, many of
+the function now have type annotation, and part of the codebase and now checked
+by mypy.
+
+
+Featured changes
+----------------
+
+Here is a features list of changes in IPython 8.0. This is of course non-exhaustive.
+Please note as well that many features have been added in the 7.x branch as well
+(and hence why you want to read the 7.x what's new notes), in particular
+features contributed by QuantStack (with respect to debugger protocol, and Xeus
+Python), as well as many debugger features that I was please to implement as
+part of my work at QuanSight and Sponsored by DE Shaw.
+
+Better Tracebacks
+~~~~~~~~~~~~~~~~~
+
+The first on is the integration of the ``stack_data`` package;
+which provide smarter informations in traceback; in particular it will highlight
+the AST node where an error occurs which can help to quickly narrow down errors.
+
+For example in the following snippet::
+
+ def foo(i):
+ x = [[[0]]]
+ return x[0][i][0]
+
+
+ def bar():
+ return foo(0) + foo(
+ 1
+ ) + foo(2)
+
+
+Calling ``bar()`` would raise an ``IndexError`` on the return line of ``foo``,
+IPython 8.0 is capable of telling you, where the index error occurs::
+
+
+ IndexError
+ Input In [2], in
+ ----> 1 bar()
+ ^^^^^
+
+ Input In [1], in bar()
+ 6 def bar():
+ ----> 7 return foo(0) + foo(
+ ^^^^
+ 8 1
+ ^^^^^^^^
+ 9 ) + foo(2)
+ ^^^^
+
+ Input In [1], in foo(i)
+ 1 def foo(i):
+ 2 x = [[[0]]]
+ ----> 3 return x[0][i][0]
+ ^^^^^^^
+
+Corresponding location marked here with ``^`` will show up highlighted in
+terminal and notebooks.
+
+
+Autosuggestons
+~~~~~~~~~~~~~~
+
+Autosuggestion is a very useful feature available in `fish `__, `zsh `__, and `prompt-toolkit `__.
+
+`Ptpython `__ allows users to enable this feature in
+`ptpython/config.py `__.
+
+This feature allows users to accept autosuggestions with ctrl e, ctrl f,
+or right arrow as described below.
+
+1. Start ipython
+
+.. image:: ../_images/8.0/auto_suggest_1_prompt_no_text.png
+
+2. Run ``print("hello")``
+
+.. image:: ../_images/8.0/auto_suggest_2_print_hello_suggest.png
+
+3. start typing ``print`` again to see the autosuggestion
+
+.. image:: ../_images/8.0/auto_suggest_3_print_hello_suggest.png
+
+4. Press ``ctrl-f``, or ``ctrl-e``, or ``right-arrow`` to accept the suggestion
+
+.. image:: ../_images/8.0/auto_suggest_4_print_hello.png
+
+You can also complete word by word:
+
+1. Run ``def say_hello(): print("hello")``
+
+.. image:: ../_images/8.0/auto_suggest_second_prompt.png
+
+2. Start typing the first letter if ``def`` to see the autosuggestion
+
+.. image:: ../_images/8.0/auto_suggest_d_phantom.png
+
+3. Press ``alt-f`` (or ``escape`` followed by ``f``), to accept the first word of the suggestion
+
+.. image:: ../_images/8.0/auto_suggest_def_phantom.png
+
+Importantly, this feature does not interfere with tab completion:
+
+1. After running ``def say_hello(): print("hello")``, press d
+
+.. image:: ../_images/8.0/auto_suggest_d_phantom.png
+
+2. Press Tab to start tab completion
+
+.. image:: ../_images/8.0/auto_suggest_d_completions.png
+
+3A. Press Tab again to select the first option
+
+.. image:: ../_images/8.0/auto_suggest_def_completions.png
+
+3B. Press ``alt f`` (``escape``, ``f``) to accept to accept the first word of the suggestion
+
+.. image:: ../_images/8.0/auto_suggest_def_phantom.png
+
+3C. Press ``ctrl-f`` or ``ctrl-e`` to accept the entire suggestion
+
+.. image:: ../_images/8.0/auto_suggest_match_parens.png
+
+
+Currently, autosuggestions are only shown in the emacs or vi insert editing modes:
+
+- The ctrl e, ctrl f, and alt f shortcuts work by default in emacs mode.
+- To use these shortcuts in vi insert mode, you will have to create `custom keybindings in your config.py `__.
+
+
+Show pinfo information in ipdb using "?" and "??"
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In IPDB, it is now possible to show the information about an object using "?"
+and "??", in much the same way it can be done when using the IPython prompt::
+
+ ipdb> partial?
+ Init signature: partial(self, /, *args, **kwargs)
+ Docstring:
+ partial(func, *args, **keywords) - new function with partial application
+ of the given arguments and keywords.
+ File: ~/.pyenv/versions/3.8.6/lib/python3.8/functools.py
+ Type: type
+ Subclasses:
+
+Previously, ``pinfo`` or ``pinfo2`` command had to be used for this purpose.
+
+
+Autoreload 3 feature
+~~~~~~~~~~~~~~~~~~~~
+
+Example: When an IPython session is ran with the 'autoreload' extension loaded,
+you will now have the option '3' to select which means the following:
+
+ 1. replicate all functionality from option 2
+ 2. autoload all new funcs/classes/enums/globals from the module when they are added
+ 3. autoload all newly imported funcs/classes/enums/globals from external modules
+
+Try ``%autoreload 3`` in an IPython session after running ``%load_ext autoreload``
+
+For more information please see the following unit test : ``extensions/tests/test_autoreload.py:test_autoload_newly_added_objects``
+
+
+
+
+History Range Glob feature
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Previously, when using ``%history``, users could specify either
+a range of sessions and lines, for example:
+
+.. code-block:: python
+
+ ~8/1-~6/5 # see history from the first line of 8 sessions ago,
+ # to the fifth line of 6 sessions ago.``
+
+Or users could specify a glob pattern:
+
+.. code-block:: python
+
+ -g # glob ALL history for the specified pattern.
+
+However users could *not* specify both.
+
+If a user *did* specify both a range and a glob pattern,
+then the glob pattern would be used (globbing *all* history) *and the range would be ignored*.
+
+With this enhancement, if a user specifies both a range and a glob pattern, then the glob pattern will be applied to the specified range of history.
+
+Don't start a multi line cell with sunken parenthesis
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+From now on IPython will not ask for the next line of input when given a single
+line with more closing than opening brackets. For example, this means that if
+you (mis)type ``]]`` instead of ``[]``, a ``SyntaxError`` will show up, instead of
+the ``...:`` prompt continuation.
+
+IPython shell for ipdb interact
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ipdb ``interact`` starts an IPython shell instead of Python's built-in ``code.interact()``.
+
+Automatic Vi prompt stripping
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When pasting code into IPython, it will strip the leading prompt characters if
+there are any. For example, you can paste the following code into the console -
+it will still work, even though each line is prefixed with prompts (`In`,
+`Out`)::
+
+ In [1]: 2 * 2 == 4
+ Out[1]: True
+
+ In [2]: print("This still works as pasted")
+
+
+Previously, this was not the case for the Vi-mode prompts::
+
+ In [1]: [ins] In [13]: 2 * 2 == 4
+ ...: Out[13]: True
+ ...:
+ File "", line 1
+ [ins] In [13]: 2 * 2 == 4
+ ^
+ SyntaxError: invalid syntax
+
+This is now fixed, and Vi prompt prefixes - ``[ins]`` and ``[nav]`` - are
+skipped just as the normal ``In`` would be.
+
+IPython shell can be started in the Vi mode using ``ipython --TerminalInteractiveShell.editing_mode=vi``,
+You should be able to change mode dynamically with ``%config TerminalInteractiveShell.editing_mode='vi'``
+
+Empty History Ranges
+~~~~~~~~~~~~~~~~~~~~
+
+A number of magics that take history ranges can now be used with an empty
+range. These magics are:
+
+ * ``%save``
+ * ``%load``
+ * ``%pastebin``
+ * ``%pycat``
+
+Using them this way will make them take the history of the current session up
+to the point of the magic call (such that the magic itself will not be
+included).
+
+Therefore it is now possible to save the whole history to a file using simple
+``%save ``, load and edit it using ``%load`` (makes for a nice usage
+when followed with :kbd:`F2`), send it to dpaste.org using ``%pastebin``, or
+view the whole thing syntax-highlighted with a single ``%pycat``.
+
+Traceback improvements
+~~~~~~~~~~~~~~~~~~~~~~
+
+
+Previously, error tracebacks for errors happening in code cells were showing a hash, the one used for compiling the Python AST::
+
+ In [1]: def foo():
+ ...: return 3 / 0
+ ...:
+
+ In [2]: foo()
+ ---------------------------------------------------------------------------
+ ZeroDivisionError Traceback (most recent call last)
+ in
+ ----> 1 foo()
+
+ in foo()
+ 1 def foo():
+ ----> 2 return 3 / 0
+ 3
+
+ ZeroDivisionError: division by zero
+
+The error traceback is now correctly formatted, showing the cell number in which the error happened::
+
+ In [1]: def foo():
+ ...: return 3 / 0
+ ...:
+
+ Input In [2]: foo()
+ ---------------------------------------------------------------------------
+ ZeroDivisionError Traceback (most recent call last)
+ input In [2], in
+ ----> 1 foo()
+
+ Input In [1], in foo()
+ 1 def foo():
+ ----> 2 return 3 / 0
+
+ ZeroDivisionError: division by zero
+
+Miscellaneous
+~~~~~~~~~~~~~
+
+ - ``~`` is now expanded when part of a path in most magics :ghpull:`13385`
+ - ``%/%%timeit`` magic now adds comma every thousands to make reading long number easier :ghpull:`13379`
+ - ``"info"`` messages can now be customised to hide some fields :ghpull:`13343`
+ - ``collections.UserList`` now pretty-prints :ghpull:`13320`
+ - The debugger now have a persistent history, which should make it less
+ annoying to retype commands :ghpull:`13246`
+ - ``!pip`` ``!conda`` ``!cd`` or ``!ls`` are likely doing the wrong thing, we
+ now warn users if they use it. :ghpull:`12954`
+ - make ``%precision`` work for ``numpy.float64`` type :ghpull:`12902`
+
+
+
+
+Numfocus Small Developer Grant
+------------------------------
+
+To prepare for Python 3.10 we have also started working on removing reliance and
+any dependency that is not Python 3.10 compatible; that include migrating our
+test suite to pytest, and starting to remove nose. This also mean that the
+``iptest`` command is now gone, and all testing is via pytest.
+
+This was in bog part thanks the NumFOCUS Small Developer grant, we were able to
+allocate 4000 to hire `Nikita Kniazev (@Kojoley) `__
+who did a fantastic job at updating our code base, migrating to pytest, pushing
+our coverage, and fixing a large number of bugs. I highly recommend contacting
+them if you need help with C++ and Python projects
+
+You can find all relevant issues and PRs with the SDG 2021 tag ``__
+
+Removing support for Older Python
+---------------------------------
+
+
+We are also removing support for Python up to 3.7 allowing internal code to use more
+efficient ``pathlib``, and make better use of type annotations.
+
+.. image:: ../_images/8.0/pathlib_pathlib_everywhere.jpg
+ :alt: "Meme image of Toy Story with Woody and Buzz, with the text 'pathlib, pathlib everywhere'"
+
+
+We have about 34 PRs only to update some logic tu update some function from managing strings to
+using Pathlib.
+
+The completer has also seen significant updates and make use of newer Jedi API
+offering faster and more reliable tab completion.
+