##// END OF EJS Templates
Checkpoint for feedback from Thomas.
Fernando Perez -
Show More
@@ -1,561 +1,606 b''
1 1 =============
2 2 0.11 Series
3 3 =============
4 4
5 5 Release 0.11
6 6 ============
7 7
8 8 IPython 0.11 is a *major* overhaul of IPython, two years in the making. Most
9 9 of the code base has been rewritten or at least reorganized, breaking backward
10 10 compatibility with several APIs in previous versions. It is the first major
11 11 release in two years, and probably the most significant change to IPython since
12 12 its inception. We plan to have a relatively quick succession of releases, as
13 13 people discover new bugs and regressions. Once we iron out any significant
14 14 bugs in this process and settle down the new APIs, this series will become
15 15 IPython 1.0. We encourage feedback now on the core APIs, which we hope to
16 16 maintain stable during the 1.0 series.
17 17
18 Chris Fonnesbeck recently wrote an `excellent post`_ that highlights some of
19 the core new features, with examples and screenshots. We encourage you
20 to read it as it provides a great high-level overview that complements the
18 Since the internal APIs have changed so much, projects using IPython as a
19 library (as opposed to end-users of the application) are the most likely to
20 encounter regressions or changes that break their existing use patterns. We
21 will make every effort to provide updated versions of the APIs to facilitate
22 the transition, and we encourage you to contact us on the `development mailing
23 list`__ with questions and feedback.
24
25 .. __: http://mail.scipy.org/mailman/listinfo/ipython-dev
26
27 Chris Fonnesbeck recently wrote an `excellent post`__ that highlights some of
28 our major new features, with examples and screenshots. We encourage you to
29 read it as it provides an illustrated, high-level overview complementing the
21 30 detailed feature breakdown in this document.
22 31
23 .. _excellent post: http://stronginference.com/weblog/2011/7/15/innovations-in-ipython.html
32 .. __: http://stronginference.com/weblog/2011/7/15/innovations-in-ipython.html
24 33
25 34 A quick summary of the major changes (see below for details):
26 35
27 36 * **Standalone Qt console**: a new rich console has been added to IPython,
28 37 started with `ipython qtconsole`. In this application we have tried to
29 38 retain the feel of a terminal for fast and efficient workflows, while adding
30 39 many features that a plain text terminal simply can not support, such as
31 40 inline figures, full multiline editing with syntax highlighting, tooltips for
32 function calls and much more.
41 function calls and much more. This development was sponsored by `Enthought
42 Inc.`__. See :ref:`below <qtconsole_011>` for details.
43
44 .. __: http://enthought.com
33 45
34 46 * **High-level parallel computing with ZeroMQ**. Using the same architecture
35 47 that our Qt console is based on, we have completely rewritten our high-level
36 48 parallel computing machinery that in prior versions used the Twisted
37 49 networking framework. While this change will require users to update their
38 50 codes, the improvements in performance, memory control and internal
39 51 consistency across our codebase convinced us it was a price worth paying. We
40 52 have tried to explain how to best proceed with this update, and will be happy
41 to answer questions that may arise.
53 to answer questions that may arise. A full tutorial describing these
54 features `was presented at SciPy'11`__.
55
56 .. __: http://minrk.github.com/scipy-tutorial-2011
42 57
43 58 * **New model for GUI/plotting support in the terminal**. Now instead of the
44 59 various `-Xthread` flags we had before, GUI support is provided without the
45 60 use of any threads, by directly integrating GUI event loops with Python's
46 61 `PyOS_InputHook` API. A new command-line flag `--gui` controls GUI support,
47 62 and it can also be enabled after IPython startup via the new `%gui` magic.
63 This requires some changes if you want to execute GUI-using scripts inside
64 IPython, see :ref:`below <gui_support>` for more details.
65
66 * **Integration into Microsoft Visual Studio**. Thanks to the work of the
67 Microsoft `Python Tools for Visual Studio`__ team, this version of IPython
68 has been integrated into Microsoft Visual Studio's Python tools open source
69 plug-in. They currently have a relesae candidate out using IPython 0.11,
70 and we will continue to collaborate with them to ensure that as they
71 approach full release time, the integration with IPython is as smooth as
72 possible.
73
74 .. __: http://pytools.codeplex.com/
48 75
49 76 * **A two-process architecture.** The Qt console is the first example of using
50 77 a new model that splits IPython between a kernel process where code is
51 78 executed and a client that handles user interaction. We plan on also
52 79 providing terminal and web-browser based clients using this infrastructure in
53 80 future releases. This model allows multiple clients to interact with an
54 81 IPython process through a well-documented protocol using the ZeroMQ
55 82 networking library.
56 83
57 84 * **Refactoring.** the entire codebase has been refactored, in order to make it
58 85 more modular and easier to contribute to. IPython has traditionally been a
59 86 hard project to participate because the old codebase was very monolithic. We
60 87 hope this (ongoing) restructuring will make it easier for new developers to
61 88 join us.
62 89
63 90 * **Improved unicode support**. We closed many bugs related to unicode input.
64 91
65 * **Python 3**. IPython now runs on Python 3.x.
92 * **Python 3**. IPython now runs on Python 3.x. See :ref:`python3_011` for
93 details.
66 94
67 95 * **New profile model**. Profiles are now directories that contain all relevant
68 96 infromation for that session, and thus better isolate IPython use-cases.
69 97
70 98 * **SQLite storage for history**. All history is now stored in a SQLite
71 99 database, providing support for multiple simultaneous sessions that won't
72 100 clobber each other as well as the ability to perform queries on all stored
73 101 data.
74 102
75 103 * **New configuration system**. All parts of IPython are now configured via a
76 104 mechanism inspired by the Enthought Traits library. Any configurable
77 105 element can have its attributes set either via files that now use real
78 106 Python syntax or from the command-line.
79 107
80
81 108 Over 60 separate authors have contributed to this release, see :ref:`below
82 109 <credits>` for a full list.
83 110
84 111
85 112 Don't forget
86 113 ------------
87 114
88 115 - thank enthought, MS, NIH, NSF, Google. Missing anyone?
89 116 - ms visual studio integration
90 117
118 .. _gui_support:
91 119
92 Plotting and GUI support in the terminal
120 GUI and plotting support in the terminal
93 121 ----------------------------------------
94 122
95 123 Todo...
96 124
97 125
126 .. _qtconsole_011:
127
98 128 Qt Console
99 129 ----------
100 130
101 131 Todo...
102 132
133 .. figure:: ../_static/qtconsole.png
134 :width: 400px
135 :alt: IPython Qt console with embedded plots
136 :align: center
137 :target: ../_static/qtconsole.png
138
139 The Qt console for IPython, using inline matplotlib plots.
140
141
103 142
104 143 High-level parallel computing with ZeroMQ
105 144 -----------------------------------------
106 145
107 146 Todo...
108 147
109 - min's scipy tutorials online?
148 http://minrk.github.com/scipy-tutorial-2011
110 149
111 150
112 151 Refactoring
113 152 -----------
114 153
115 154 As of the 0.11 version of IPython, a signifiant portion of the core has been
116 155 refactored. This refactoring is founded on a number of new abstractions.
117 156 The main new classes that implement these abstractions are:
118 157
119 158 * :class:`IPython.utils.traitlets.HasTraits`.
120 159 * :class:`IPython.config.configurable.Configurable`.
121 160 * :class:`IPython.config.application.Application`.
122 161 * :class:`IPython.config.loader.ConfigLoader`.
123 162 * :class:`IPython.config.loader.Config`
124 163
125 164 We are still in the process of writing developer focused documentation about
126 165 these classes, but for now our :ref:`configuration documentation
127 166 <config_overview>` contains a high level overview of the concepts that these
128 167 classes express.
129 168
130 169 The biggest user-visible change is likely the move to using the config system to
131 170 determine the command-line arguments for IPython applications. The benefit of
132 171 this is that *all* configurable values in IPython are exposed on the
133 172 command-line, but the syntax for specifying values has changed. The gist is that
134 173 assigning values is pure Python assignment, so there is always an '=', and never
135 174 a leading '-', nor a space separating key from value. Flags exist, to set
136 175 multiple values or boolean flags, and these are always prefixed with '--', and
137 176 never take arguments.
138 177
139 178 ZMQ architecture
140 179 ----------------
141 180
142 181 There is a new GUI framework for IPython, based on a client-server model in
143 182 which multiple clients can communicate with one IPython kernel, using the
144 183 ZeroMQ messaging framework. There is already a Qt console client, which can
145 184 be started by calling ``ipython qtconsole``. The protocol is :ref:`documented
146 185 <messaging>`.
147 186
148 187 The parallel computing framework has also been rewritten using ZMQ. The
149 188 protocol is described :ref:`here <parallel_messages>`, and the code is in the
150 189 new :mod:`IPython.parallel` module.
151 190
191 .. _python3_011:
192
152 193 Python 3 support
153 194 ----------------
154 195
155 196 A Python 3 version of IPython has been prepared. For the time being, this is
156 197 maintained separately and updated from the main codebase. Its code can be found
157 198 `here <https://github.com/ipython/ipython-py3k>`_. The parallel computing
158 199 components are not perfect on Python3, but most functionality appears to be
159 working.
200 working. As this work is evolving quickly, the best place to find updated
201 information about it is our `Python 3 wiki page`__.
202
203 .. __: http://wiki.ipython.org/index.php?title=Python_3
204
160 205
161 206 Unicode
162 207 -------
163 208
164 209 Entering non-ascii characters in unicode literals (``u"€ø"``) now works
165 210 properly on all platforms. However, entering these in byte/string literals
166 211 (``"€ø"``) will not work as expected on Windows (or any platform where the
167 212 terminal encoding is not UTF-8, as it typically is for Linux & Mac OS X). You
168 213 can use escape sequences (``"\xe9\x82"``) to get bytes above 128, or use
169 214 unicode literals and encode them. This is a limitation of Python 2 which we
170 215 cannot easily work around.
171 216
172 217 Additional new features
173 218 -----------------------
174 219
175 220 * Added ``Bytes`` traitlet, removing ``Str``. All 'string' traitlets should
176 221 either be ``Unicode`` if a real string, or ``Bytes`` if a C-string. This
177 222 removes ambiguity and helps the Python 3 transition.
178 223
179 224 * New magic ``%loadpy`` loads a python file from disk or web URL into
180 225 the current input buffer.
181 226
182 227 * New magic ``%pastebin`` for sharing code via the 'Lodge it' pastebin.
183 228
184 229 * New magic ``%precision`` for controlling float and numpy pretty printing.
185 230
186 231 * IPython applications initiate logging, so any object can gain access to
187 232 a the logger of the currently running Application with:
188 233
189 234 .. sourcecode:: python
190 235
191 236 from IPython.config.application import Application
192 237 logger = Application.instance().log
193 238
194 239 * You can now get help on an object halfway through typing a command. For
195 240 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
196 241 leaves the command at the next prompt so you can carry on with it.
197 242
198 243 * The input history is now written to an SQLite database. The API for
199 244 retrieving items from the history has also been redesigned.
200 245
201 246 * The :mod:`IPython.extensions.pretty` extension has been moved out of
202 247 quarantine and fully updated to the new extension API.
203 248
204 249 * New magics for loading/unloading/reloading extensions have been added:
205 250 ``%load_ext``, ``%unload_ext`` and ``%reload_ext``.
206 251
207 252 * The configuration system and configuration files are brand new. See the
208 253 configuration system :ref:`documentation <config_index>` for more details.
209 254
210 255 * The :class:`~IPython.core.interactiveshell.InteractiveShell` class is now a
211 256 :class:`~IPython.config.configurable.Configurable` subclass and has traitlets
212 257 that determine the defaults and runtime environment. The ``__init__`` method
213 258 has also been refactored so this class can be instantiated and run without
214 259 the old :mod:`ipmaker` module.
215 260
216 261 * The methods of :class:`~IPython.core.interactiveshell.InteractiveShell` have
217 262 been organized into sections to make it easier to turn more sections
218 263 of functionality into components.
219 264
220 265 * The embedded shell has been refactored into a truly standalone subclass of
221 266 :class:`InteractiveShell` called :class:`InteractiveShellEmbed`. All
222 267 embedding logic has been taken out of the base class and put into the
223 268 embedded subclass.
224 269
225 270 * Added methods of :class:`~IPython.core.interactiveshell.InteractiveShell` to
226 271 help it cleanup after itself. The :meth:`cleanup` method controls this. We
227 272 couldn't do this in :meth:`__del__` because we have cycles in our object
228 273 graph that prevent it from being called.
229 274
230 275 * Created a new module :mod:`IPython.utils.importstring` for resolving
231 276 strings like ``foo.bar.Bar`` to the actual class.
232 277
233 278 * Completely refactored the :mod:`IPython.core.prefilter` module into
234 279 :class:`~IPython.config.configurable.Configurable` subclasses. Added a new
235 280 layer into the prefilter system, called "transformations" that all new
236 281 prefilter logic should use (rather than the older "checker/handler"
237 282 approach).
238 283
239 284 * Aliases are now components (:mod:`IPython.core.alias`).
240 285
241 286 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can
242 287 be called to embed IPython at any place in user's code. On the first call it
243 288 will create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`
244 289 instance and call it. In later calls, it just calls the previously created
245 290 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
246 291
247 292 * Created a configuration system (:mod:`IPython.config.configurable`) that is
248 293 based on :mod:`IPython.utils.traitlets`. Configurables are arranged into a
249 294 runtime containment tree (not inheritance) that i) automatically propagates
250 295 configuration information and ii) allows singletons to discover each other in
251 296 a loosely coupled manner. In the future all parts of IPython will be
252 297 subclasses of :class:`~IPython.config.configurable.Configurable`. All IPython
253 298 developers should become familiar with the config system.
254 299
255 300 * Created a new :class:`~IPython.config.loader.Config` for holding
256 301 configuration information. This is a dict like class with a few extras: i)
257 302 it supports attribute style access, ii) it has a merge function that merges
258 303 two :class:`~IPython.config.loader.Config` instances recursively and iii) it
259 304 will automatically create sub-:class:`~IPython.config.loader.Config`
260 305 instances for attributes that start with an uppercase character.
261 306
262 307 * Created new configuration loaders in :mod:`IPython.config.loader`. These
263 308 loaders provide a unified loading interface for all configuration
264 309 information including command line arguments and configuration files. We
265 310 have two default implementations based on :mod:`argparse` and plain python
266 311 files. These are used to implement the new configuration system.
267 312
268 313 * Created a top-level :class:`Application` class in
269 314 :mod:`IPython.core.application` that is designed to encapsulate the starting
270 315 of any basic Python program. An application loads and merges all the
271 316 configuration objects, constructs the main application, configures and
272 317 initiates logging, and creates and configures any :class:`Configurable`
273 318 instances and then starts the application running. An extended
274 319 :class:`BaseIPythonApplication` class adds logic for handling the
275 320 IPython directory as well as profiles, and all IPython entry points
276 321 extend it.
277 322
278 323 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
279 324 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
280 325 But, this was implemented in a careful way so that string to class
281 326 resolution is done at a single point, when the parent
282 327 :class:`~IPython.utils.traitlets.HasTraitlets` is instantiated.
283 328
284 329 * :mod:`IPython.utils.ipstruct` has been refactored to be a subclass of
285 330 dict. It also now has full docstrings and doctests.
286 331
287 332 * Created a Traits like implementation in :mod:`IPython.utils.traitlets`. This
288 333 is a pure Python, lightweight version of a library that is similar to
289 334 Enthought's Traits project, but has no dependencies on Enthought's code. We
290 335 are using this for validation, defaults and notification in our new component
291 336 system. Although it is not 100% API compatible with Enthought's Traits, we
292 337 plan on moving in this direction so that eventually our implementation could
293 338 be replaced by a (yet to exist) pure Python version of Enthought Traits.
294 339
295 340 * Added a new module :mod:`IPython.lib.inputhook` to manage the integration
296 341 with GUI event loops using `PyOS_InputHook`. See the docstrings in this
297 342 module or the main IPython docs for details.
298 343
299 344 * For users, GUI event loop integration is now handled through the new
300 345 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
301 346 documentation.
302 347
303 348 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
304 349 for managing the event loops in their interactive GUI applications.
305 350 Examples can be found in our :file:`docs/examples/lib` directory.
306 351
307 352 Backwards incompatible changes
308 353 ------------------------------
309 354
310 355 * The Twisted-based :mod:`IPython.kernel` has been removed, and completely
311 356 rewritten as :mod:`IPython.parallel`, using ZeroMQ.
312 357
313 358 * Profiles are now directories. Instead of a profile being a single config file,
314 359 profiles are now self-contained directories. By default, profiles get their
315 360 own IPython history, log files, and everything. To create a new profile, do
316 361 ``ipython profile create <name>``.
317 362
318 363 * All IPython applications have been rewritten to use
319 364 :class:`~IPython.config.loader.KeyValueConfigLoader`. This means that
320 365 command-line options have changed. Now, all configurable values are accessible
321 366 from the command-line with the same syntax as in a configuration file.
322 367
323 368 * The command line options ``-wthread``, ``-qthread`` and
324 369 ``-gthread`` have been removed. Use ``--gui=wx``, ``--gui=qt``, ``--gui=gtk``
325 370 instead.
326 371
327 372 * The extension loading functions have been renamed to
328 373 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
329 374
330 375 * :class:`~IPython.core.interactiveshell.InteractiveShell` no longer takes an
331 376 ``embedded`` argument. Instead just use the
332 377 :class:`~IPython.core.interactiveshell.InteractiveShellEmbed` class.
333 378
334 379 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
335 380
336 381 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
337 382 must be a :class:`dict` or :class:`Struct`.
338 383
339 384 * :meth:`~IPython.core.interactiveshell.InteractiveShell.ipmagic` has been
340 385 renamed :meth:`~IPython.core.interactiveshell.InteractiveShell.magic.`
341 386
342 387 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
343 388 :mod:`__builtins__`.
344 389
345 390 * The references to the global
346 391 :class:`~IPython.core.interactivehell.InteractiveShell` instance (``_ip``, and
347 392 ``__IP``) have been removed from the user's namespace. They are replaced by a
348 393 new function called :func:`get_ipython` that returns the current
349 394 :class:`~IPython.core.interactiveshell.InteractiveShell` instance. This
350 395 function is injected into the user's namespace and is now the main way of
351 396 accessing the running IPython.
352 397
353 398 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
354 399 are no longer supported. Users should migrate there configuration files to
355 400 the new format described :ref:`here <config_overview>` and :ref:`here
356 401 <configuring_ipython>`.
357 402
358 403 * The old IPython extension API that relied on :func:`ipapi` has been
359 404 completely removed. The new extension API is described :ref:`here
360 405 <configuring_ipython>`.
361 406
362 407 * Support for ``qt3`` has been dropped. Users who need this should use
363 408 previous versions of IPython.
364 409
365 410 * Removed :mod:`shellglobals` as it was obsolete.
366 411
367 412 * Removed all the threaded shells in :mod:`IPython.core.shell`. These are no
368 413 longer needed because of the new capabilities in
369 414 :mod:`IPython.lib.inputhook`.
370 415
371 416 * New top-level sub-packages have been created: :mod:`IPython.core`,
372 417 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
373 418 :mod:`IPython.quarantine`. All existing top-level modules have been
374 419 moved to appropriate sub-packages. All internal import statements
375 420 have been updated and tests have been added. The build system (setup.py
376 421 and friends) have been updated. See :ref:`this section <module_reorg>` of the
377 422 documentation for descriptions of these new sub-packages.
378 423
379 424 * :mod:`IPython.ipapi` has been moved to :mod:`IPython.core.ipapi`.
380 425 :mod:`IPython.Shell` and :mod:`IPython.iplib` have been split and removed as
381 426 part of the refactor.
382 427
383 428 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
384 429 extensions have been moved to either :mod:`IPython.quarantine` or
385 430 :mod:`IPython.deathrow`. :mod:`IPython.quarantine` contains modules that we
386 431 plan on keeping but that need to be updated. :mod:`IPython.deathrow` contains
387 432 modules that are either dead or that should be maintained as third party
388 433 libraries. More details about this can be found :ref:`here <module_reorg>`.
389 434
390 435 * Previous IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are
391 436 likely broken, and have been removed to :mod:`IPython.deathrow` because of the
392 437 refactoring in the core. With proper updates, these should still work.
393 438
394 439
395 440 Known Regressions
396 441 -----------------
397 442
398 443 We do our best to improve IPython, but there are some known regressions in 0.11
399 444 relative to 0.10.2. First of all, there are features that have yet to be
400 445 ported to the new APIs, and in order to ensure that all of the installed code
401 446 runs for our users, we have moved them to two separate directories in the
402 447 source distribution, `quarantine` and `deathrow`. Finally, we have some other
403 448 miscellaneous regressions that we hope to fix as soon as possible. We now
404 449 describe all of these in more detail.
405 450
406 451 Quarantine
407 452 ~~~~~~~~~~
408 453
409 454 These are tools and extensions that we consider relatively easy to update to
410 455 the new classes and APIs, but that we simply haven't had time for. Any user
411 456 who is interested in one of these is encouraged to help us by porting it and
412 457 submitting a pull request on our `development site`_.
413 458
414 459 .. _development site:: http://github.com/ipython/ipython
415 460
416 461 Currently, the quarantine directory contains::
417 462
418 463 clearcmd.py ipy_fsops.py ipy_signals.py
419 464 envpersist.py ipy_gnuglobal.py ipy_synchronize_with.py
420 465 ext_rescapture.py ipy_greedycompleter.py ipy_system_conf.py
421 466 InterpreterExec.py ipy_jot.py ipy_which.py
422 467 ipy_app_completers.py ipy_lookfor.py ipy_winpdb.py
423 468 ipy_autoreload.py ipy_profile_doctest.py ipy_workdir.py
424 469 ipy_completers.py ipy_pydb.py jobctrl.py
425 470 ipy_editors.py ipy_rehashdir.py ledit.py
426 471 ipy_exportdb.py ipy_render.py pspersistence.py
427 472 ipy_extutil.py ipy_server.py win32clip.py
428 473
429 474 Deathrow
430 475 ~~~~~~~~
431 476
432 477 These packages may be harder to update or make most sense as third-party
433 478 libraries. Some of them are completely obsolete and have been already replaced
434 479 by better functionality (we simply haven't had the time to carefully weed them
435 480 out so they are kept here for now). Others simply require fixes to code that
436 481 the current core team may not be familiar with. If a tool you were used to is
437 482 included here, we encourage you to contact the dev list and we can discuss
438 483 whether it makes sense to keep it in IPython (if it can be maintained).
439 484
440 485 Currently, the deathrow directory contains::
441 486
442 487 astyle.py ipy_defaults.py ipy_vimserver.py
443 488 dtutils.py ipy_kitcfg.py numeric_formats.py
444 489 Gnuplot2.py ipy_legacy.py numutils.py
445 490 GnuplotInteractive.py ipy_p4.py outputtrap.py
446 491 GnuplotRuntime.py ipy_profile_none.py PhysicalQInput.py
447 492 ibrowse.py ipy_profile_numpy.py PhysicalQInteractive.py
448 493 igrid.py ipy_profile_scipy.py quitter.py*
449 494 ipipe.py ipy_profile_sh.py scitedirector.py
450 495 iplib.py ipy_profile_zope.py Shell.py
451 496 ipy_constants.py ipy_traits_completer.py twshell.py
452 497
453 498
454 499 Other
455 500 ~~~~~
456 501
457 502 * The machinery that adds functionality to the 'sh' profile for using IPython
458 503 as your system shell has not been updated to use the new APIs. As a result,
459 504 only the aesthetic (prompt) changes are still implemented. We intend to fix
460 505 this by 0.12.
461 506
462 507 * The installation of scripts on Windows was broken without setuptools, so we
463 508 now depend on setuptools on Windows. We hope to fix setuptools-less
464 509 installation, and then remove the setuptools dependency.
465 510
466 511
467 512 Removed Features
468 513 ----------------
469 514
470 515 As part of the updating of IPython, we have removed a few features for the
471 516 purpsoes of cleaning up the codebase and interfaces. These removals are
472 517 permanent, but for any item listed below, equivalent functionality is
473 518 available.
474 519
475 520 * The magics Exit and Quit have been dropped as ways to exit IPython. Instead,
476 521 the lowercase forms of both work either as a bare name (``exit``) or a
477 522 function call (``exit()``). You can assign these to other names using
478 523 exec_lines in the config file.
479 524
480 525
481 526 .. credits_::
482 527
483 528 Credits
484 529 -------
485 530
486 531 Many users and developers contributed code, features, bug reports and ideas to
487 532 this release. Please do not hesitate in contacting us if we've failed to
488 533 acknowledge your contribution here. In particular, for this release we have
489 534 contribution from the following people, a mix of new and regular names (in
490 535 alphabetical order by first name):
491 536
492 537 * Aenugu Sai Kiran Reddy <saikrn08-at-gmail.com>
493 538 * andy wilson <wilson.andrew.j+github-at-gmail.com>
494 539 * Antonio Cuni <antocuni>
495 540 * Barry Wark <barrywark-at-gmail.com>
496 541 * Beetoju Anuradha <anu.beethoju-at-gmail.com>
497 542 * Benjamin Ragan-Kelley <minrk-at-Mercury.local>
498 543 * Brad Reisfeld
499 544 * Brian E. Granger <ellisonbg-at-gmail.com>
500 545 * Christoph Gohlke <cgohlke-at-uci.edu>
501 546 * Cody Precord
502 547 * dan.milstein
503 548 * Darren Dale <dsdale24-at-gmail.com>
504 549 * Dav Clark <davclark-at-berkeley.edu>
505 550 * David Warde-Farley <wardefar-at-iro.umontreal.ca>
506 551 * epatters <ejpatters-at-gmail.com>
507 552 * epatters <epatters-at-caltech.edu>
508 553 * epatters <epatters-at-enthought.com>
509 554 * Eric Firing <efiring-at-hawaii.edu>
510 555 * Erik Tollerud <erik.tollerud-at-gmail.com>
511 556 * Evan Patterson <epatters-at-enthought.com>
512 557 * Fernando Perez <Fernando.Perez-at-berkeley.edu>
513 558 * Gael Varoquaux <gael.varoquaux-at-normalesup.org>
514 559 * Gerardo <muzgash-at-Muzpelheim>
515 560 * Jason Grout <jason.grout-at-drake.edu>
516 561 * John Hunter <jdh2358-at-gmail.com>
517 562 * Jens Hedegaard Nielsen <jenshnielsen-at-gmail.com>
518 563 * Johann Cohen-Tanugi <johann.cohentanugi-at-gmail.com>
519 564 * Jörgen Stenarson <jorgen.stenarson-at-bostream.nu>
520 565 * Justin Riley <justin.t.riley-at-gmail.com>
521 566 * Kiorky
522 567 * Laurent Dufrechou <laurent.dufrechou-at-gmail.com>
523 568 * Luis Pedro Coelho <lpc-at-cmu.edu>
524 569 * Mani chandra <mchandra-at-iitk.ac.in>
525 570 * Mark E. Smith
526 571 * Mark Voorhies <mark.voorhies-at-ucsf.edu>
527 572 * Martin Spacek <git-at-mspacek.mm.st>
528 573 * Michael Droettboom <mdroe-at-stsci.edu>
529 574 * MinRK <benjaminrk-at-gmail.com>
530 575 * muzuiget <muzuiget-at-gmail.com>
531 576 * Nick Tarleton <nick-at-quixey.com>
532 577 * Nicolas Rougier <Nicolas.rougier-at-inria.fr>
533 578 * Omar Andres Zapata Mesa <andresete.chaos-at-gmail.com>
534 579 * Paul Ivanov <pivanov314-at-gmail.com>
535 580 * Pauli Virtanen <pauli.virtanen-at-iki.fi>
536 581 * Prabhu Ramachandran
537 582 * Ramana <sramana9-at-gmail.com>
538 583 * Robert Kern <robert.kern-at-gmail.com>
539 584 * Sathesh Chandra <satheshchandra88-at-gmail.com>
540 585 * Satrajit Ghosh <satra-at-mit.edu>
541 586 * Sebastian Busch
542 587 * Stefan van der Walt <bzr-at-mentat.za.net>
543 588 * Stephan Peijnik <debian-at-sp.or.at>
544 589 * Steven Bethard
545 590 * Thomas Kluyver <takowl-at-gmail.com>
546 591 * Thomas Spura <tomspur-at-fedoraproject.org>
547 592 * Tom Fetherston <tfetherston-at-aol.com>
548 593 * Tom MacWright
549 594 * tzanko
550 595 * vankayala sowjanya <hai.sowjanya-at-gmail.com>
551 596 * Vivian De Smedt <vds2212-at-VIVIAN>
552 597 * Ville M. Vainio <vivainio-at-gmail.com>
553 598 * Vishal Vatsa <vishal.vatsa-at-gmail.com>
554 599 * Vishnu S G <sgvishnu777-at-gmail.com>
555 600 * Walter Doerwald <walter-at-livinglogic.de>
556 601
557 602 .. note::
558 603
559 604 This list was generated with the output of
560 605 ``git log dev-0.11 HEAD --format='* %aN <%aE>' | sed 's/@/\-at\-/' | sed 's/<>//' | sort -u``
561 606 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