##// END OF EJS Templates
Remove dev contents in what's new (that material is now 0.12).
Fernando Perez -
Show More
@@ -1,161 +1,6 b''
1 ================================================
1 =====================
2 Development version
2 Development version
3 ================================================
4
5 The changes listed here are a brief summary of the substantial work on IPython
6 since the 0.11.x release series. For more details, please consult the actual
7 source.
8
9 Main `ipython` branch
10 =====================
3 =====================
11
4
5 This document describes in-flight development work.
12
6
13 New features
14 ------------
15
16 .. Expand on this:
17 * **HTML Notebook**: A powerful new interface puts IPython in your browser. You
18 can start it with the command ``ipython notebook``. See :ref:`the Notebook
19 docs <htmlnotebook>` for technical details.
20
21 * **Tabbed QtConsole**: The QtConsole now supports starting multiple kernels in
22 tabs, and has a menubar, so it looks and behaves more like a real application.
23 Keyboard enthusiasts can disable the menubar with ctrl-shift-M (:ghpull:`887`).
24
25 * **Python 3 compatibility**: IPython can now be installed from a single
26 codebase on Python 2 and Python 3. The installation process for Python 3
27 automatically runs 2to3. The same 'default' profile is now used for
28 Python 2 and 3 (the previous version had a separate 'python3' profile).
29
30 * **PyPy support**: The terminal interface to IPython now runs under
31 `PyPy <http://pypy.org/>`_.
32
33 * **SSH Tunnels**: In 0.11, the :mod:`IPython.parallel` Client could tunnel its
34 connections to the Controller via ssh. Now, the QtConsole :ref:`supports
35 <ssh_tunnels>` ssh tunneling, as do parallel engines.
36
37 * **relaxed command-line parsing**: 0.11 was released with overly-strict
38 command-line parsing, preventing the ability to specify arguments with spaces,
39 e.g. ``ipython --pylab qt`` or ``ipython -c "print 'hi'"``. This has
40 been fixed, by using argparse. The new parsing is a strict superset of 0.11, so
41 any commands in 0.11 should still work in 0.12.
42
43 * **HistoryAccessor**: The :class:`~IPython.core.history.HistoryManager` class for
44 interacting with your IPython SQLite history database has been split, adding
45 a parent :class:`~IPython.core.history.HistoryAccessor` class, so that users can
46 write code to access and search their IPython history without being in an IPython
47 session (:ghpull:`824`).
48
49 * **kernel %gui and %pylab**: The ``%gui`` and ``%pylab`` magics have been restored
50 to the IPython kernel (e.g. in the qtconsole or notebook). This allows activation
51 of pylab-mode, or eventloop integration after starting the kernel, which was
52 unavailable in 0.11. Unlike in the terminal, this can be set only once, and
53 cannot be changed.
54
55 * **%config**: A new ``%config`` magic has been added, giving easy access to the
56 IPython configuration system at runtime (:ghpull:`923`).
57
58 * **Standalone Kernel**: ``ipython kernel`` subcommand has been added, to allow
59 starting a standalone kernel, that can be used with various frontends.
60
61 * **Multiline History**: Multiline readline history has been restored to the
62 Terminal frontend by default (:ghpull:`838`).
63
64 * **%store**: The ``%store`` magic from earlier versions has been updated and
65 re-enabled (:ref:`extensions_storemagic`; :ghpull:`1029`). To autorestore
66 stored variables on startup, specify ``c.StoreMagic.autorestore = True`` in
67 :file:`ipython_config.py`.
68
69
70
71 Major Bugs fixed
72 ----------------
73
74 * Simple configuration errors should no longer crash IPython. In 0.11, errors in
75 config files, as well as invalid trait values, could crash IPython. Now, such
76 errors are reported, and help is displayed.
77
78 * Certain SyntaxErrors no longer crash IPython (e.g. just typing keywords, such as
79 ``return``, ``break``, etc.). See :ghissue:`704`.
80
81 * IPython path utils, such as :func:`~IPython.utils.path.get_ipython_dir` now check
82 for write permissions, so IPython should function on systems where the default
83 path resolution might point to a read-only location, such as ``HOMESHARE`` on
84 Windows (:ghissue:`669`).
85
86 * :func:`raw_input` now works in the kernel when multiple frontends are in use. The
87 request will be sent to the frontend that made the request, and an exception is
88 raised if that frontend does not support stdin requests (e.g. the notebook)
89 (:ghissue:`673`).
90
91 * :mod:`zmq` version detection no longer uses simple lexicographical comparison to
92 check minimum version, which prevents 0.11 from working with pyzmq-2.1.10
93 (:ghpull:`758`).
94
95 * A bug in PySide < 1.0.7 caused crashes on OSX when tooltips were shown
96 (:ghissue:`711`). these tooltips are now disabled on old PySide (:ghpull:`963`).
97
98 * IPython no longer crashes when started on recent versions of Python 3 in
99 Windows (:ghissue:`737`).
100
101 * Instances of classes defined interactively can now be pickled (:ghissue:`29`;
102 :ghpull:`648`). Note that pickling saves a reference to the class definition,
103 so unpickling the instances will only work where the class has been defined.
104
105 .. * use bullet list
106
107 Backwards incompatible changes
108 ------------------------------
109
110 * IPython connection information is no longer specified via ip/port directly,
111 rather via json connection files. These files are stored in the security
112 directory, and enable us to turn on HMAC message authentication by default,
113 significantly improving the security of kernels. Various utility functions
114 have been added to :mod:`IPython.lib.kernel`, for easier connecting to existing
115 kernels.
116
117 * :class:`~IPython.zmq.kernelmanager.KernelManager` now has one ip, and several port
118 traits, rather than several ip/port pair ``_addr`` traits. This better matches the
119 rest of the code, where the ip cannot not be set separately for each channel.
120
121 * Custom prompts are now configured using a new class,
122 :class:`~IPython.core.prompts.PromptManager`, which has traits for :attr:`in_template`,
123 :attr:`in2_template` (the ``...:`` continuation prompt), :attr:`out_template`
124 and :attr:`rewrite_template`. This uses Python's string formatting system, so
125 you can use ``{time}`` and ``{cwd}``, although we have preserved the abbreviations
126 from previous versions, e.g. ``\#`` (prompt number) and ``\w`` (working
127 directory). For the list of available fields, refer to the source of
128 :file:`IPython/core/prompts.py`.
129
130 * The class inheritance of the Launchers in :mod:`IPython.parallel.apps.launcher`
131 used by ipcluster has changed, so that trait names are more consistent across
132 batch systems. This may require a few renames in your config files, if you
133 customized the command-line args for launching controllers and engines. The
134 configurable names have also been changed to be clearer that they point to class
135 names, and can now be specified by name only, rather than requiring the full
136 import path of each class, e.g.::
137
138 IPClusterEngines.engine_launcher = 'IPython.parallel.apps.launcher.MPIExecEngineSetLauncher'
139 IPClusterStart.controller_launcher = 'IPython.parallel.apps.launcher.SSHControllerLauncher'
140
141 would now be specified as::
142
143 IPClusterEngines.engine_launcher_class = 'MPI'
144 IPClusterStart.controller_launcher_class = 'SSH'
145
146 The full path will still work, and is necessary for using custom launchers not in
147 IPython's launcher module.
148
149 Further, MPIExec launcher names are now prefixed with just MPI, to better match
150 other batch launchers, and be generally more intuitive. The MPIExec names are
151 deprecated, but continue to work.
152
153 * For embedding a shell, note that the parameters ``user_global_ns`` and ``global_ns``
154 have been deprectated in favour of ``user_module`` and ``module`` respsectively.
155 The new parameters expect a module-like object, rather than a namespace dict.
156 The old parameters remain for backwards compatibility, although ``user_global_ns``
157 is now ignored. The ``user_ns`` parameter works the same way as before, and
158 calling :func:`~IPython.frontend.terminal.embed.embed` with no arguments still
159 works as before.
160
161 .. * use bullet list
@@ -671,7 +671,7 b' Removed Features'
671 ----------------
671 ----------------
672
672
673 As part of the updating of IPython, we have removed a few features for the
673 As part of the updating of IPython, we have removed a few features for the
674 purpsoes of cleaning up the codebase and interfaces. These removals are
674 purposes of cleaning up the codebase and interfaces. These removals are
675 permanent, but for any item listed below, equivalent functionality is
675 permanent, but for any item listed below, equivalent functionality is
676 available.
676 available.
677
677
General Comments 0
You need to be logged in to leave comments. Login now