You can see all the PR marked for the 5.6. milestone , and all the backport versions .

IPython should start faster, as it no longer looks for all available pygments styles on startup ( PR #10859 ).

The shell object gains a check_complete() method, to allow a smoother transition to new input processing machinery planned for IPython 7 ( PR #11044 ).

ProgressBar can now be used as an iterator ( PR #10813 ).

In Python 3.6 and above, dictionaries preserve the order items were added to them. On these versions, IPython will display dictionaries in their native order, rather than sorting by the keys ( PR #10958 ).

You can see all the PR marked for the 5.5. milestone , and all the backport versions .

Document that %profile is deprecated, not to be confused with %prun . ( PR #10707 )

Make IPython work with OpenSSL in FIPS mode; change hash algorithm of input from md5 to sha1. ( PR #10696 )

Startup files can be found in /etc/ipython/startup or {sys.prefix}/etc/ipython/startup in addition to the profile directory, for system-wide or env-specific startup files.

IPython now looks for config files in {sys.prefix}/etc/ipython for environment-specific configuration.

Released a few hours after 5.4, fix a crash when backports.shutil-get-terminal-size is not installed. #10629

IPython 5.4-LTS is the first release of IPython after the release of the 6.x series which is Python 3 only. It backports most of the new exposed API additions made in IPython 6.0 and 6.1 and avoid having to write conditional logics depending of the version of IPython.

Please upgrade to pip 9 or greater before upgrading IPython. Failing to do so on Python 2 may lead to a broken IPython install.

Configurable TerminalInteractiveShell¶ Backported from the 6.x branch as an exceptional new feature. See PR #10373 and #10364 IPython gained a new c.TerminalIPythonApp.interactive_shell_class option that allow to customize the class used to start the terminal frontend. This should allow user to use custom interfaces, like reviving the former readline interface which is now a separate package not maintained by the core team.

Define _repr_mimebundle_ ¶ Object can now define _repr_mimebundle_ in place of multiple _repr_*_ methods and return a full mimebundle. This greatly simplify many implementation and allow to publish custom mimetypes (like geojson, plotly, dataframes….). See the Custom Display Logic example notebook for more informations.

Execution Heuristics¶ The heuristic for execution in the command line interface is now more biased toward executing for single statement. While in IPython 4.x and before a single line would be executed when enter is pressed, IPython 5.x would insert a new line. For single line statement this is not true anymore and if a single line is valid Python, IPython will execute it regardless of the cursor position. Use Ctrl-O to insert a new line. PR #10489

Implement Display IDs¶ Implement display id and ability to update a given display. This should greatly simplify a lot of code by removing the need for widgets and allow other frontend to implement things like progress-bars. See PR #10048

Display function¶ The display() function is now available by default in an IPython session, meaning users can call it on any object to see their rich representation. This should allow for better interactivity both at the REPL and in notebook environment. Scripts and library that rely on display and may be run outside of IPython still need to import the display function using from IPython.display import display . See PR #10596