Show More
@@ -1,71 +1,85 b'' | |||
|
1 | 1 | .. _module_reorg: |
|
2 | 2 | |
|
3 | 3 | =========================== |
|
4 | 4 | IPython module organization |
|
5 | 5 | =========================== |
|
6 | 6 | |
|
7 | 7 | As of the 0.11 release of IPython, the top-level packages and modules have |
|
8 | 8 | been completely reorganized. This section describes the purpose of the |
|
9 | 9 | top-level IPython subpackages. |
|
10 | 10 | |
|
11 | 11 | Subpackage descriptions |
|
12 | 12 | ======================= |
|
13 | 13 | |
|
14 |
* :mod:`IPython.config`. This package contains the configuration system |
|
|
15 |
IPython, as well as default configuration files for the |
|
|
16 | applications. | |
|
14 | * :mod:`IPython.config`. This package contains the :ref:`configuration system | |
|
15 | <config_index>` of IPython, as well as default configuration files for the | |
|
16 | different IPython applications. | |
|
17 | 17 | |
|
18 | 18 | * :mod:`IPython.core`. This sub-package contains the core of the IPython |
|
19 | 19 | interpreter, but none of its extended capabilities. |
|
20 | 20 | |
|
21 | 21 | * :mod:`IPython.deathrow`. This is for code that is outdated, untested, |
|
22 | 22 | rotting, or that belongs in a separate third party project. Eventually all |
|
23 |
this code will either |
|
|
23 | this code will either 1) be revived by someone willing to maintain it with | |
|
24 | 24 | tests and docs and re-included into IPython or 2) be removed from IPython |
|
25 | 25 | proper, but put into a separate third-party Python package. No new code will |
|
26 | 26 | be allowed here. If your favorite extension has been moved here please |
|
27 | 27 | contact the IPython developer mailing list to help us determine the best |
|
28 | 28 | course of action. |
|
29 | 29 | |
|
30 | 30 | * :mod:`IPython.extensions`. This package contains fully supported IPython |
|
31 | 31 | extensions. These extensions adhere to the official IPython extension API |
|
32 | 32 | and can be enabled by adding them to a field in the configuration file. |
|
33 | 33 | If your extension is no longer in this location, please look in |
|
34 | 34 | :mod:`IPython.quarantine` and :mod:`IPython.deathrow` and contact the |
|
35 | 35 | IPython developer mailing list. |
|
36 | 36 | |
|
37 | 37 | * :mod:`IPython.external`. This package contains third party packages and |
|
38 | 38 | modules that IPython ships internally to reduce the number of dependencies. |
|
39 | 39 | Usually, these are short, single file modules. |
|
40 | 40 | |
|
41 | 41 | * :mod:`IPython.frontend`. This package contains the various IPython |
|
42 | frontends. Currently, the code in this subpackage is very experimental and | |
|
43 | may be broken. | |
|
44 | ||
|
45 | * :mod:`IPython.gui`. Another semi-experimental wxPython based IPython GUI. | |
|
46 | ||
|
47 | * :mod:`IPython.kernel`. This contains IPython's parallel computing system. | |
|
42 | frontends which communicate with the :mod:`IPython.zmq` kernels (see | |
|
43 | :ref:`Messaging in IPython <messaging>`). This includes the | |
|
44 | :ref:`ipython notebook <htmlnotebook>`, :ref:`ipython qtconsole | |
|
45 | <qtconsole>`, and :ref:`ipython console <two_process_console>` entry points. | |
|
48 | 46 | |
|
49 | 47 | * :mod:`IPython.lib`. IPython has many extended capabilities that are not part |
|
50 | 48 | of the IPython core. These things will go here and in. Modules in this |
|
51 | 49 | package are similar to extensions, but don't adhere to the official |
|
52 | 50 | IPython extension API. |
|
53 | 51 | |
|
52 | * :mod:`IPython.nbformat`. This package contains code related to reading and | |
|
53 | writing :ref:`IPython Notebook's <htmlnotebook>` file format (`.ipynb` | |
|
54 | files). | |
|
55 | ||
|
56 | * :mod:`IPython.parallel`. This contains :ref:`IPython's parallel computing | |
|
57 | system <parallel_index>`. This previously lived under :mod:`IPython.kernel`, | |
|
58 | but that module has been deprecated. | |
|
59 | ||
|
54 | 60 | * :mod:`IPython.quarantine`. This is for code that doesn't meet IPython's |
|
55 | 61 | standards, but that we plan on keeping. To be moved out of this sub-package |
|
56 | 62 | a module needs to have approval of the core IPython developers, tests and |
|
57 | 63 | documentation. If your favorite extension has been moved here please contact |
|
58 | 64 | the IPython developer mailing list to help us determine the best course of |
|
59 | 65 | action. |
|
60 | 66 | |
|
61 | 67 | * :mod:`IPython.scripts`. This package contains a variety of top-level |
|
62 | 68 | command line scripts. Eventually, these should be moved to the |
|
63 | 69 | :file:`scripts` subdirectory of the appropriate IPython subpackage. |
|
64 | 70 | |
|
71 | * :mod:`IPython.testing`. This package contains code related to the IPython | |
|
72 | test suite, which locates and executes the `tests` submodules of all | |
|
73 | IPython sub-packages. It also contains decorators and utilities relevant for | |
|
74 | testing. | |
|
75 | ||
|
65 | 76 | * :mod:`IPython.utils`. This sub-package will contain anything that might |
|
66 | 77 | eventually be found in the Python standard library, like things in |
|
67 | 78 | :mod:`genutils`. Each sub-module in this sub-package should contain |
|
68 | 79 | functions and classes that serve a single purpose and that don't |
|
69 | 80 | depend on things in the rest of IPython. |
|
70 | 81 | |
|
82 | * :mod:`IPython.zmq`. This sub-package contains code related to starting and | |
|
83 | managing IPython kernels, which :mod:`IPython.frontend` instances can then | |
|
84 | communicate with (see :ref:`Messaging in IPython <messaging>`). | |
|
71 | 85 |
@@ -1,369 +1,370 b'' | |||
|
1 | 1 | ============= |
|
2 | 2 | 0.12 Series |
|
3 | 3 | ============= |
|
4 | 4 | |
|
5 | 5 | Release 0.12.1 |
|
6 | 6 | ============== |
|
7 | 7 | |
|
8 | 8 | IPython 0.12.1 is a bugfix release of 0.12, pulling only bugfixes and minor |
|
9 | 9 | cleanup from 0.13, timed for the Ubuntu 12.04 LTS release. |
|
10 | 10 | |
|
11 | 11 | See the :ref:`list of fixed issues <issues_list_012>` for specific backported issues. |
|
12 | 12 | |
|
13 | 13 | |
|
14 | 14 | Release 0.12 |
|
15 | 15 | ============ |
|
16 | 16 | |
|
17 | 17 | IPython 0.12 contains several major new features, as well as a large amount of |
|
18 | 18 | bug and regression fixes. The 0.11 release brought with it a lot of new |
|
19 | 19 | functionality and major refactorings of the codebase; by and large this has |
|
20 | 20 | proven to be a success as the number of contributions to the project has |
|
21 | 21 | increased dramatically, proving that the code is now much more approachable. |
|
22 | 22 | But in the refactoring inevitably some bugs were introduced, and we have also |
|
23 | 23 | squashed many of those as well as recovered some functionality that had been |
|
24 | 24 | temporarily disabled due to the API changes. |
|
25 | 25 | |
|
26 | 26 | The following major new features appear in this version. |
|
27 | 27 | |
|
28 | 28 | |
|
29 | 29 | An interactive browser-based Notebook with rich media support |
|
30 | 30 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
31 | 31 | |
|
32 | 32 | A powerful new interface puts IPython in your browser. You can start it with |
|
33 | 33 | the command ``ipython notebook``: |
|
34 | 34 | |
|
35 | 35 | .. figure:: ../_static/notebook_specgram.png |
|
36 | 36 | :width: 400px |
|
37 | 37 | :alt: The IPython notebook with embedded text, code, math and figures. |
|
38 | 38 | :align: center |
|
39 | 39 | :target: ../_static/notebook_specgram.png |
|
40 | 40 | |
|
41 | 41 | The new IPython notebook showing text, mathematical expressions in LaTeX, |
|
42 | 42 | code, results and embedded figures created with Matplotlib. |
|
43 | 43 | |
|
44 | 44 | This new interface maintains all the features of IPython you are used to, as it |
|
45 | 45 | is a new client that communicates with the same IPython kernels used by the |
|
46 | 46 | terminal and Qt console. But the web notebook provides for a different |
|
47 | 47 | workflow where you can integrate, along with code execution, also text, |
|
48 | 48 | mathematical expressions, graphics, video, and virtually any content that a |
|
49 | 49 | modern browser is capable of displaying. |
|
50 | 50 | |
|
51 | 51 | You can save your work sessions as documents that retain all these elements and |
|
52 | 52 | which can be version controlled, emailed to colleagues or saved as HTML or PDF |
|
53 | 53 | files for printing or publishing statically on the web. The internal storage |
|
54 | 54 | format is a JSON file that can be easily manipulated for manual exporting to |
|
55 | 55 | other formats. |
|
56 | 56 | |
|
57 | 57 | This Notebook is a major milestone for IPython, as for years we have tried to |
|
58 | 58 | build this kind of system. We were inspired originally by the excellent |
|
59 | 59 | implementation in Mathematica, we made a number of attempts using older |
|
60 | 60 | technologies in earlier Summer of Code projects in 2005 (both students and |
|
61 | 61 | Robert Kern developed early prototypes), and in recent years we have seen the |
|
62 | 62 | excellent implementation offered by the `Sage <http://sagemath.org>` system. |
|
63 | 63 | But we continued to work on something that would be consistent with the rest of |
|
64 | 64 | IPython's design, and it is clear now that the effort was worth it: based on |
|
65 | 65 | the ZeroMQ communications architecture introduced in version 0.11, the notebook |
|
66 | 66 | can now retain 100% of the features of the real IPython. But it can also |
|
67 | 67 | provide the rich media support and high quality Javascript libraries that were |
|
68 | 68 | not available in browsers even one or two years ago (such as high-quality |
|
69 | 69 | mathematical rendering or built-in video). |
|
70 | 70 | |
|
71 | 71 | The notebook has too many useful and important features to describe in these |
|
72 | 72 | release notes; our documentation now contains a directory called |
|
73 | 73 | ``examples/notebooks`` with several notebooks that illustrate various aspects |
|
74 | 74 | of the system. You should start by reading those named |
|
75 | 75 | ``00_notebook_tour.ipynb`` and ``01_notebook_introduction.ipynb`` first, and |
|
76 | 76 | then can proceed to read the others in any order you want. |
|
77 | 77 | |
|
78 | 78 | To start the notebook server, go to a directory containing the notebooks you |
|
79 | 79 | want to open (or where you want to create new ones) and type:: |
|
80 | 80 | |
|
81 | 81 | ipython notebook |
|
82 | 82 | |
|
83 | 83 | You can see all the relevant options with:: |
|
84 | 84 | |
|
85 | 85 | ipython notebook --help |
|
86 | 86 | ipython notebook --help-all # even more |
|
87 | 87 | |
|
88 | 88 | and just like the Qt console, you can start the notebook server with pylab |
|
89 | 89 | support by using:: |
|
90 | 90 | |
|
91 | 91 | ipython notebook --pylab |
|
92 | 92 | |
|
93 | 93 | for floating matplotlib windows or:: |
|
94 | 94 | |
|
95 | 95 | ipython notebook --pylab inline |
|
96 | 96 | |
|
97 | 97 | for plotting support with automatically inlined figures. Note that it is now |
|
98 | 98 | possible also to activate pylab support at runtime via ``%pylab``, so you do |
|
99 | 99 | not need to make this decision when starting the server. |
|
100 | 100 | |
|
101 | 101 | See :ref:`the Notebook docs <htmlnotebook>` for technical details. |
|
102 | 102 | |
|
103 | .. _two_process_console: | |
|
103 | 104 | |
|
104 | 105 | Two-process terminal console |
|
105 | 106 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
106 | 107 | |
|
107 | 108 | Based on the same architecture as the notebook and the Qt console, we also have |
|
108 | 109 | now a terminal-based console that can connect to an external IPython kernel |
|
109 | 110 | (the same kernels used by the Qt console or the notebook, in fact). While this |
|
110 | 111 | client behaves almost identically to the usual IPython terminal application, |
|
111 | 112 | this capability can be very useful to attach an interactive console to an |
|
112 | 113 | existing kernel that was started externally. It lets you use the interactive |
|
113 | 114 | ``%debug`` facilities in a notebook, for example (the web browser can't |
|
114 | 115 | interact directly with the debugger) or debug a third-party code where you may |
|
115 | 116 | have embedded an IPython kernel. |
|
116 | 117 | |
|
117 | 118 | This is also something that we have wanted for a long time, and which is a |
|
118 | 119 | culmination (as a team effort) of the work started last year during the 2010 |
|
119 | 120 | Google Summer of Code project. |
|
120 | 121 | |
|
121 | 122 | Tabbed QtConsole |
|
122 | 123 | ~~~~~~~~~~~~~~~~ |
|
123 | 124 | |
|
124 | 125 | The QtConsole now supports starting multiple kernels in tabs, and has a |
|
125 | 126 | menubar, so it looks and behaves more like a real application. Keyboard |
|
126 | 127 | enthusiasts can disable the menubar with ctrl-shift-M (:ghpull:`887`). |
|
127 | 128 | |
|
128 | 129 | .. figure:: ../_static/qtconsole_tabbed.png |
|
129 | 130 | :width: 400px |
|
130 | 131 | :alt: Tabbed IPython Qt console with embedded plots and menus. |
|
131 | 132 | :align: center |
|
132 | 133 | :target: ../_static/qtconsole_tabbed.png |
|
133 | 134 | |
|
134 | 135 | The improved Qt console for IPython, now with tabs to control multiple |
|
135 | 136 | kernels and full menu support. |
|
136 | 137 | |
|
137 | 138 | |
|
138 | 139 | Full Python 3 compatibility |
|
139 | 140 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
140 | 141 | |
|
141 | 142 | IPython can now be installed from a single codebase on Python 2 and |
|
142 | 143 | Python 3. The installation process for Python 3 automatically runs 2to3. The |
|
143 | 144 | same 'default' profile is now used for Python 2 and 3 (the previous version had |
|
144 | 145 | a separate 'python3' profile). |
|
145 | 146 | |
|
146 | 147 | Standalone Kernel |
|
147 | 148 | ~~~~~~~~~~~~~~~~~ |
|
148 | 149 | |
|
149 | 150 | The ``ipython kernel`` subcommand has been added, to allow starting a |
|
150 | 151 | standalone kernel, that can be used with various frontends. You can then later |
|
151 | 152 | connect a Qt console or a terminal console to this kernel by typing e.g.:: |
|
152 | 153 | |
|
153 | 154 | ipython qtconsole --existing |
|
154 | 155 | |
|
155 | 156 | if it's the only one running, or by passing explicitly the connection |
|
156 | 157 | parameters (printed by the kernel at startup). |
|
157 | 158 | |
|
158 | 159 | |
|
159 | 160 | PyPy support |
|
160 | 161 | ~~~~~~~~~~~~ |
|
161 | 162 | |
|
162 | 163 | The terminal interface to IPython now runs under `PyPy <http://pypy.org/>`_. |
|
163 | 164 | We will continue to monitor PyPy's progress, and hopefully before long at least |
|
164 | 165 | we'll be able to also run the notebook. The Qt console may take longer, as Qt |
|
165 | 166 | is a very complex set of bindings to a huge C++ library, and that is currently |
|
166 | 167 | the area where PyPy still lags most behind. But for everyday interactive use |
|
167 | 168 | at the terminal, with this release and PyPy 1.7, things seem to work quite well |
|
168 | 169 | from our admittedly limited testing. |
|
169 | 170 | |
|
170 | 171 | |
|
171 | 172 | Other important new features |
|
172 | 173 | ---------------------------- |
|
173 | 174 | |
|
174 | 175 | * **SSH Tunnels**: In 0.11, the :mod:`IPython.parallel` Client could tunnel its |
|
175 | 176 | connections to the Controller via ssh. Now, the QtConsole :ref:`supports |
|
176 | 177 | <ssh_tunnels>` ssh tunneling, as do parallel engines. |
|
177 | 178 | |
|
178 | 179 | * **relaxed command-line parsing**: 0.11 was released with overly-strict |
|
179 | 180 | command-line parsing, preventing the ability to specify arguments with spaces, |
|
180 | 181 | e.g. ``ipython --pylab qt`` or ``ipython -c "print 'hi'"``. This has |
|
181 | 182 | been fixed, by using argparse. The new parsing is a strict superset of 0.11, so |
|
182 | 183 | any commands in 0.11 should still work in 0.12. |
|
183 | 184 | |
|
184 | 185 | * **HistoryAccessor**: The :class:`~IPython.core.history.HistoryManager` class |
|
185 | 186 | for interacting with your IPython SQLite history database has been split, |
|
186 | 187 | adding a parent :class:`~IPython.core.history.HistoryAccessor` class, so that |
|
187 | 188 | users can write code to access and search their IPython history without being |
|
188 | 189 | in an IPython session (:ghpull:`824`). |
|
189 | 190 | |
|
190 | 191 | * **kernel %gui and %pylab**: The ``%gui`` and ``%pylab`` magics have been |
|
191 | 192 | restored to the IPython kernel (e.g. in the qtconsole or notebook). This |
|
192 | 193 | allows activation of pylab-mode, or eventloop integration after starting the |
|
193 | 194 | kernel, which was unavailable in 0.11. Unlike in the terminal, this can be |
|
194 | 195 | set only once, and cannot be changed. |
|
195 | 196 | |
|
196 | 197 | * **%config**: A new ``%config`` magic has been added, giving easy access to the |
|
197 | 198 | IPython configuration system at runtime (:ghpull:`923`). |
|
198 | 199 | |
|
199 | 200 | * **Multiline History**: Multiline readline history has been restored to the |
|
200 | 201 | Terminal frontend by default (:ghpull:`838`). |
|
201 | 202 | |
|
202 | 203 | * **%store**: The ``%store`` magic from earlier versions has been updated and |
|
203 | 204 | re-enabled (:ref:`extensions_storemagic`; :ghpull:`1029`). To autorestore |
|
204 | 205 | stored variables on startup, specify ``c.StoreMagic.autorestore = True`` in |
|
205 | 206 | :file:`ipython_config.py`. |
|
206 | 207 | |
|
207 | 208 | |
|
208 | 209 | Major Bugs fixed |
|
209 | 210 | ---------------- |
|
210 | 211 | |
|
211 | 212 | In this cycle, we have :ref:`closed over 500 issues <issues_list_012>`, but a |
|
212 | 213 | few major ones merit special mention: |
|
213 | 214 | |
|
214 | 215 | * Simple configuration errors should no longer crash IPython. In 0.11, errors |
|
215 | 216 | in config files, as well as invalid trait values, could crash IPython. Now, |
|
216 | 217 | such errors are reported, and help is displayed. |
|
217 | 218 | |
|
218 | 219 | * Certain SyntaxErrors no longer crash IPython (e.g. just typing keywords, such |
|
219 | 220 | as ``return``, ``break``, etc.). See :ghissue:`704`. |
|
220 | 221 | |
|
221 | 222 | * IPython path utils, such as :func:`~IPython.utils.path.get_ipython_dir` now |
|
222 | 223 | check for write permissions, so IPython should function on systems where the |
|
223 | 224 | default path resolution might point to a read-only location, such as |
|
224 | 225 | ``HOMESHARE`` on Windows (:ghissue:`669`). |
|
225 | 226 | |
|
226 | 227 | * :func:`raw_input` now works in the kernel when multiple frontends are in |
|
227 | 228 | use. The request will be sent to the frontend that made the request, and an |
|
228 | 229 | exception is raised if that frontend does not support stdin requests |
|
229 | 230 | (e.g. the notebook) (:ghissue:`673`). |
|
230 | 231 | |
|
231 | 232 | * :mod:`zmq` version detection no longer uses simple lexicographical comparison |
|
232 | 233 | to check minimum version, which prevents 0.11 from working with pyzmq-2.1.10 |
|
233 | 234 | (:ghpull:`758`). |
|
234 | 235 | |
|
235 | 236 | * A bug in PySide < 1.0.7 caused crashes on OSX when tooltips were shown |
|
236 | 237 | (:ghissue:`711`). these tooltips are now disabled on old PySide |
|
237 | 238 | (:ghpull:`963`). |
|
238 | 239 | |
|
239 | 240 | * IPython no longer crashes when started on recent versions of Python 3 in |
|
240 | 241 | Windows (:ghissue:`737`). |
|
241 | 242 | |
|
242 | 243 | * Instances of classes defined interactively can now be pickled (:ghissue:`29`; |
|
243 | 244 | :ghpull:`648`). Note that pickling saves a reference to the class definition, |
|
244 | 245 | so unpickling the instances will only work where the class has been defined. |
|
245 | 246 | |
|
246 | 247 | |
|
247 | 248 | Backwards incompatible changes |
|
248 | 249 | ------------------------------ |
|
249 | 250 | |
|
250 | 251 | * IPython connection information is no longer specified via ip/port directly, |
|
251 | 252 | rather via json connection files. These files are stored in the security |
|
252 | 253 | directory, and enable us to turn on HMAC message authentication by default, |
|
253 | 254 | significantly improving the security of kernels. Various utility functions |
|
254 | 255 | have been added to :mod:`IPython.lib.kernel`, for easier connecting to existing |
|
255 | 256 | kernels. |
|
256 | 257 | |
|
257 | 258 | * :class:`~IPython.zmq.kernelmanager.KernelManager` now has one ip, and several |
|
258 | 259 | port traits, rather than several ip/port pair ``_addr`` traits. This better |
|
259 | 260 | matches the rest of the code, where the ip cannot not be set separately for |
|
260 | 261 | each channel. |
|
261 | 262 | |
|
262 | 263 | * Custom prompts are now configured using a new class, |
|
263 | 264 | :class:`~IPython.core.prompts.PromptManager`, which has traits for |
|
264 | 265 | :attr:`in_template`, :attr:`in2_template` (the ``...:`` continuation prompt), |
|
265 | 266 | :attr:`out_template` and :attr:`rewrite_template`. This uses Python's string |
|
266 | 267 | formatting system, so you can use ``{time}`` and ``{cwd}``, although we have |
|
267 | 268 | preserved the abbreviations from previous versions, e.g. ``\#`` (prompt number) |
|
268 | 269 | and ``\w`` (working directory). For the list of available fields, refer to the |
|
269 | 270 | source of :file:`IPython/core/prompts.py`. |
|
270 | 271 | |
|
271 | 272 | * The class inheritance of the Launchers in |
|
272 | 273 | :mod:`IPython.parallel.apps.launcher` used by ipcluster has changed, so that |
|
273 | 274 | trait names are more consistent across batch systems. This may require a few |
|
274 | 275 | renames in your config files, if you customized the command-line args for |
|
275 | 276 | launching controllers and engines. The configurable names have also been |
|
276 | 277 | changed to be clearer that they point to class names, and can now be |
|
277 | 278 | specified by name only, rather than requiring the full import path of each |
|
278 | 279 | class, e.g.:: |
|
279 | 280 | |
|
280 | 281 | IPClusterEngines.engine_launcher = 'IPython.parallel.apps.launcher.MPIExecEngineSetLauncher' |
|
281 | 282 | IPClusterStart.controller_launcher = 'IPython.parallel.apps.launcher.SSHControllerLauncher' |
|
282 | 283 | |
|
283 | 284 | would now be specified as:: |
|
284 | 285 | |
|
285 | 286 | IPClusterEngines.engine_launcher_class = 'MPI' |
|
286 | 287 | IPClusterStart.controller_launcher_class = 'SSH' |
|
287 | 288 | |
|
288 | 289 | The full path will still work, and is necessary for using custom launchers |
|
289 | 290 | not in IPython's launcher module. |
|
290 | 291 | |
|
291 | 292 | Further, MPIExec launcher names are now prefixed with just MPI, to better match |
|
292 | 293 | other batch launchers, and be generally more intuitive. The MPIExec names are |
|
293 | 294 | deprecated, but continue to work. |
|
294 | 295 | |
|
295 | 296 | * For embedding a shell, note that the parameters ``user_global_ns`` and |
|
296 | 297 | ``global_ns`` have been deprectated in favour of ``user_module`` and |
|
297 | 298 | ``module`` respsectively. The new parameters expect a module-like object, |
|
298 | 299 | rather than a namespace dict. The old parameters remain for backwards |
|
299 | 300 | compatibility, although ``user_global_ns`` is now ignored. The ``user_ns`` |
|
300 | 301 | parameter works the same way as before, and calling |
|
301 | 302 | :func:`~IPython.frontend.terminal.embed.embed` with no arguments still works |
|
302 | 303 | as before. |
|
303 | 304 | |
|
304 | 305 | |
|
305 | 306 | Development summary and credits |
|
306 | 307 | ------------------------------- |
|
307 | 308 | |
|
308 | 309 | The previous version (IPython 0.11) was released on July 31 2011, so this |
|
309 | 310 | release cycle was roughly 4 1/2 months long, we closed a total of 515 issues, |
|
310 | 311 | 257 pull requests and 258 regular issues (a :ref:`detailed list |
|
311 | 312 | <issues_list_012>`_ is available). |
|
312 | 313 | |
|
313 | 314 | Many users and developers contributed code, features, bug reports and ideas to |
|
314 | 315 | this release. Please do not hesitate in contacting us if we've failed to |
|
315 | 316 | acknowledge your contribution here. In particular, for this release we have |
|
316 | 317 | had commits from the following 45 contributors, a mix of new and regular names |
|
317 | 318 | (in alphabetical order by first name): |
|
318 | 319 | |
|
319 | 320 | * Alcides <alcides-at-do-not-span-me.com> |
|
320 | 321 | * Ben Edwards <bedwards-at-cs.unm.edu> |
|
321 | 322 | * Benjamin Ragan-Kelley <benjaminrk-at-gmail.com> |
|
322 | 323 | * Benjamin Thyreau <benjamin.thyreau-at-gmail.com> |
|
323 | 324 | * Bernardo B. Marques <bernardo.fire-at-gmail.com> |
|
324 | 325 | * Bernard Paulus <bprecyclebin-at-gmail.com> |
|
325 | 326 | * Bradley M. Froehle <brad.froehle-at-gmail.com> |
|
326 | 327 | * Brian E. Granger <ellisonbg-at-gmail.com> |
|
327 | 328 | * Christian Boos <cboos-at-bct-technology.com> |
|
328 | 329 | * Daniel Velkov <danielv-at-mylife.com> |
|
329 | 330 | * Erik Tollerud <erik.tollerud-at-gmail.com> |
|
330 | 331 | * Evan Patterson <epatters-at-enthought.com> |
|
331 | 332 | * Felix Werner <Felix.Werner-at-kit.edu> |
|
332 | 333 | * Fernando Perez <Fernando.Perez-at-berkeley.edu> |
|
333 | 334 | * Gabriel <g2p.code-at-gmail.com> |
|
334 | 335 | * Grahame Bowland <grahame-at-angrygoats.net> |
|
335 | 336 | * Hannes Schulz <schulz-at-ais.uni-bonn.de> |
|
336 | 337 | * Jens Hedegaard Nielsen <jenshnielsen-at-gmail.com> |
|
337 | 338 | * Jonathan March <jmarch-at-enthought.com> |
|
338 | 339 | * Jörgen Stenarson <jorgen.stenarson-at-bostream.nu> |
|
339 | 340 | * Julian Taylor <jtaylor.debian-at-googlemail.com> |
|
340 | 341 | * Kefu Chai <tchaikov-at-gmail.com> |
|
341 | 342 | * macgyver <neil.rabinowitz-at-merton.ox.ac.uk> |
|
342 | 343 | * Matt Cottingham <matt.cottingham-at-gmail.com> |
|
343 | 344 | * Matthew Brett <matthew.brett-at-gmail.com> |
|
344 | 345 | * Matthias BUSSONNIER <bussonniermatthias-at-gmail.com> |
|
345 | 346 | * Michael Droettboom <mdboom-at-gmail.com> |
|
346 | 347 | * Nicolas Rougier <Nicolas.Rougier-at-inria.fr> |
|
347 | 348 | * Olivier Verdier <olivier.verdier-at-gmail.com> |
|
348 | 349 | * Omar Andres Zapata Mesa <andresete.chaos-at-gmail.com> |
|
349 | 350 | * Pablo Winant <pablo.winant-at-gmail.com> |
|
350 | 351 | * Paul Ivanov <pivanov314-at-gmail.com> |
|
351 | 352 | * Pauli Virtanen <pav-at-iki.fi> |
|
352 | 353 | * Pete Aykroyd <aykroyd-at-gmail.com> |
|
353 | 354 | * Prabhu Ramachandran <prabhu-at-enthought.com> |
|
354 | 355 | * Puneeth Chaganti <punchagan-at-gmail.com> |
|
355 | 356 | * Robert Kern <robert.kern-at-gmail.com> |
|
356 | 357 | * Satrajit Ghosh <satra-at-mit.edu> |
|
357 | 358 | * Stefan van der Walt <stefan-at-sun.ac.za> |
|
358 | 359 | * Szabolcs Horvát <szhorvat-at-gmail.com> |
|
359 | 360 | * Thomas Kluyver <takowl-at-gmail.com> |
|
360 | 361 | * Thomas Spura <thomas.spura-at-gmail.com> |
|
361 | 362 | * Timo Paulssen <timonator-at-perpetuum-immobile.de> |
|
362 | 363 | * Valentin Haenel <valentin.haenel-at-gmx.de> |
|
363 | 364 | * Yaroslav Halchenko <debian-at-onerussian.com> |
|
364 | 365 | |
|
365 | 366 | .. note:: |
|
366 | 367 | |
|
367 | 368 | This list was generated with the output of |
|
368 | 369 | ``git log rel-0.11..HEAD --format='* %aN <%aE>' | sed 's/@/\-at\-/' | sed 's/<>//' | sort -u`` |
|
369 | 370 | after some cleanup. If you should be on this list, please add yourself. |
General Comments 0
You need to be logged in to leave comments.
Login now