##// END OF EJS Templates
Update whatsnew docs.
Thomas Kluyver -
Show More
@@ -1,128 +1,135 b''
1 1 ================================================
2 2 Development version
3 3 ================================================
4 4
5 5 The changes listed here are a brief summary of the substantial work on IPython
6 6 since the 0.11.x release series. For more details, please consult the actual
7 7 source.
8 8
9 9 Main `ipython` branch
10 10 =====================
11 11
12 12
13 13 New features
14 14 ------------
15 15
16 16 .. Expand on this:
17 17 * **HTML Notebook**: A powerful new interface puts IPython in your browser. You
18 18 can start it with the command ``ipython notebook``. See :ref:`the Notebook
19 19 docs <htmlnotebook>` for technical details.
20 20
21 21 * **Python 3 compatibility**: IPython can now be installed from a single
22 22 codebase on Python 2 and Python 3. The installation process for Python 3
23 23 automatically runs 2to3. Python 3 no longer loads a separate 'python3'
24 24 profile by default. It uses the same 'default' profile as in Python 2.
25 25
26 26 * **PyPy support**: The terminal interface to IPython now runs under
27 27 `PyPy <http://pypy.org/>`_.
28 28
29 29 * **Tabbed QtConsole**: The QtConsole now supports starting multiple kernels in
30 30 tabs, and has a menubar, so it looks and behaves more like a real application.
31 31 Keyboard enthusiasts can disable the menubar with ctrl-shift-M (:ghpull:`887`).
32 32
33 33 * **SSH Tunnels**: In 0.11, the :mod:`IPython.parallel` Client could tunnel its
34 34 connections to the Controller via ssh. Now, the QtConsole :ref:`supports
35 35 <ssh_tunnels>` ssh tunneling, as do parallel engines.
36 36
37 37 * **relaxed command-line parsing**: 0.11 was released with overly-strict
38 38 command-line parsing, preventing the ability to specify arguments with spaces,
39 39 e.g. ``ipython --pylab qt`` or ``ipython -c "print 'hi'"``. This has
40 40 been fixed, by using argparse. The new parsing is a strict superset of 0.11, so
41 41 any commands in 0.11 should still work in 0.12.
42 42
43 43 * **HistoryAccessor**: The :class:`~IPython.core.history.HistoryManager` class for
44 44 interacting with your IPython SQLite history database has been split, adding
45 45 a parent :class:`~IPython.core.history.HistoryAccessor` class, so that users can
46 46 write code to access and search their IPython history without being in an IPython
47 47 session (:ghpull:`824`).
48 48
49 49 * **kernel %gui and %pylab**: The ``%gui`` and ``%pylab`` magics have been restored
50 50 to the IPython kernel (e.g. in the qtconsole or notebook). This allows activation
51 51 of pylab-mode, or eventloop integration after starting the kernel, which was
52 52 unavailable in 0.11. Unlike in the terminal, this can be set only once, and
53 53 cannot be changed.
54 54
55 55 * **%config**: A new ``%config`` magic has been added, giving easy access to the
56 56 IPython configuration system at runtime (:ghpull:`923`).
57 57
58 58 * **Standalone Kernel**: ``ipython kernel`` subcommand has been added, to allow
59 59 starting a standalone kernel, that can be used with various frontends.
60 60
61 61 * **Multiline History**: Multiline readline history has been restored to the
62 62 Terminal frontend by default (:ghpull:`838`).
63 63
64 * **%store**: The ``%store`` magic from earlier versions has been updated and
65 placed in an extension, 'storemagic'. Add 'storemagic' to ``c.InteractiveShellApp.extensions``
66 in ipython_config.py to enable it (:ghpull:`1029`).
67
64 68
65 69
66 70 Major Bugs fixed
67 71 ----------------
68 72
69 73 * Simple configuration errors should no longer crash IPython. In 0.11, errors in
70 74 config files, as well as invalid trait values, could crash IPython. Now, such
71 75 errors are reported, and help is displayed.
72 76
73 77 * Certain SyntaxErrors no longer crash IPython (e.g. just typing keywords, such as
74 78 ``return``, ``break``, etc.). See :ghissue:`704`.
75 79
76 80 * IPython path utils, such as :func:`~IPython.utils.path.get_ipython_dir` now check
77 81 for write permissions, so IPython should function on systems where the default
78 82 path resolution might point to a read-only location, such as ``HOMESHARE`` on
79 83 Windows (:ghissue:`669`).
80 84
81 85 * :func:`raw_input` now works in the kernel when multiple frontends are in use. The
82 86 request will be sent to the frontend that made the request, and an exception is
83 87 raised if that frontend does not support stdin requests (e.g. the notebook)
84 88 (:ghissue:`673`).
85 89
86 90 * :mod:`zmq` version detection no longer uses simple lexicographical comparison to
87 91 check minimum version, which prevents 0.11 from working with pyzmq-2.1.10
88 92 (:ghpull:`758`).
89 93
90 94 * A bug in PySide < 1.0.7 caused crashes on OSX when tooltips were shown
91 95 (:ghissue:`711`). these tooltips are now disabled on old PySide (:ghpull:`963`).
92 96
97 * IPython no longer crashes when started on recent versions of Python 3 in
98 Windows (:ghissue:`737`).
99
93 100 .. * use bullet list
94 101
95 102 Backwards incompatible changes
96 103 ------------------------------
97 104
98 105 * IPython connection information is no longer specified via ip/port directly,
99 106 rather via json connection files. These files are stored in the security
100 107 directory, and enable us to turn on HMAC message authentication by default,
101 108 significantly improving the security of kernels. Various utility functions
102 109 have been added to :mod:`IPython.lib.kernel`, for easier connecting to existing
103 110 kernels.
104 111
105 112 * :class:`~IPython.zmq.kernelmanager.KernelManager` now has one ip, and several port
106 113 traits, rather than several ip/port pair ``_addr`` traits. This better matches the
107 114 rest of the code, where the ip cannot not be set separately for each channel.
108 115
109 116 * The class inheritance of the Launchers in :mod:`IPython.parallel.apps.launcher`
110 117 used by ipcluster has changed, so that trait names are more consistent across
111 118 batch systems. This may require a few renames in your config files, if you
112 119 customized the command-line args for launching controllers and engines. The
113 120 configurable names have also been changed to be clearer that they point to class
114 121 names, and can now be specified by name only, rather than requiring the full
115 122 import path of each class, e.g.::
116 123
117 124 IPClusterEngines.engine_launcher = 'IPython.parallel.apps.launcher.MPIExecEngineSetLauncher'
118 125 IPClusterStart.controller_launcher = 'IPython.parallel.apps.launcher.SSHControllerLauncher'
119 126
120 127 would now be specified as::
121 128
122 129 IPClusterEngines.engine_launcher_class = 'MPIExec'
123 130 IPClusterStart.controller_launcher_class = 'SSH'
124 131
125 132 The full path will still work, and is necessary for using custom launchers not in
126 133 IPython's launcher module.
127 134
128 135 .. * use bullet list
General Comments 0
You need to be logged in to leave comments. Login now