##// END OF EJS Templates
Updated docs and release tools
Fernando Perez -
r1540:85dbe749 merge
parent child Browse files
Show More
@@ -1,99 +1,99 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project.
2 """Release data for the IPython project.
3
3
4 $Id: Release.py 3002 2008-02-01 07:17:00Z fperez $"""
4 $Id: Release.py 3002 2008-02-01 07:17:00Z fperez $"""
5
5
6 #*****************************************************************************
6 #*****************************************************************************
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
8 #
8 #
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
10 # <n8gray@caltech.edu>
10 # <n8gray@caltech.edu>
11 #
11 #
12 # Distributed under the terms of the BSD License. The full license is in
12 # Distributed under the terms of the BSD License. The full license is in
13 # the file COPYING, distributed as part of this software.
13 # the file COPYING, distributed as part of this software.
14 #*****************************************************************************
14 #*****************************************************************************
15
15
16 # Name of the package for release purposes. This is the name which labels
16 # Name of the package for release purposes. This is the name which labels
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
18 name = 'ipython'
18 name = 'ipython'
19
19
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
21 # the new substring. We have to avoid using either dashes or underscores,
21 # the new substring. We have to avoid using either dashes or underscores,
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
23 # bdist_deb does not accept underscores (a Debian convention).
23 # bdist_deb does not accept underscores (a Debian convention).
24
24
25 development = False # change this to False to do a release
25 development = False # change this to False to do a release
26 version_base = '0.9.beta'
26 version_base = '0.9.beta2'
27 branch = 'ipython'
27 branch = 'ipython'
28 revision = '1099'
28 revision = '1103'
29
29
30 if development:
30 if development:
31 if branch == 'ipython':
31 if branch == 'ipython':
32 version = '%s.bzr.r%s' % (version_base, revision)
32 version = '%s.bzr.r%s' % (version_base, revision)
33 else:
33 else:
34 version = '%s.bzr.r%s.%s' % (version_base, revision, branch)
34 version = '%s.bzr.r%s.%s' % (version_base, revision, branch)
35 else:
35 else:
36 version = version_base
36 version = version_base
37
37
38
38
39 description = "Tools for interactive development in Python."
39 description = "Tools for interactive development in Python."
40
40
41 long_description = \
41 long_description = \
42 """
42 """
43 IPython provides a replacement for the interactive Python interpreter with
43 IPython provides a replacement for the interactive Python interpreter with
44 extra functionality.
44 extra functionality.
45
45
46 Main features:
46 Main features:
47
47
48 * Comprehensive object introspection.
48 * Comprehensive object introspection.
49
49
50 * Input history, persistent across sessions.
50 * Input history, persistent across sessions.
51
51
52 * Caching of output results during a session with automatically generated
52 * Caching of output results during a session with automatically generated
53 references.
53 references.
54
54
55 * Readline based name completion.
55 * Readline based name completion.
56
56
57 * Extensible system of 'magic' commands for controlling the environment and
57 * Extensible system of 'magic' commands for controlling the environment and
58 performing many tasks related either to IPython or the operating system.
58 performing many tasks related either to IPython or the operating system.
59
59
60 * Configuration system with easy switching between different setups (simpler
60 * Configuration system with easy switching between different setups (simpler
61 than changing $PYTHONSTARTUP environment variables every time).
61 than changing $PYTHONSTARTUP environment variables every time).
62
62
63 * Session logging and reloading.
63 * Session logging and reloading.
64
64
65 * Extensible syntax processing for special purpose situations.
65 * Extensible syntax processing for special purpose situations.
66
66
67 * Access to the system shell with user-extensible alias system.
67 * Access to the system shell with user-extensible alias system.
68
68
69 * Easily embeddable in other Python programs.
69 * Easily embeddable in other Python programs.
70
70
71 * Integrated access to the pdb debugger and the Python profiler.
71 * Integrated access to the pdb debugger and the Python profiler.
72
72
73 The latest development version is always available at the IPython subversion
73 The latest development version is always available at the IPython subversion
74 repository_.
74 repository_.
75
75
76 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
76 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
77 """
77 """
78
78
79 license = 'BSD'
79 license = 'BSD'
80
80
81 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
81 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
82 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
82 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
83 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
83 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
84 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
84 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
85 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
85 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
86 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com')
86 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com')
87 }
87 }
88
88
89 author = 'The IPython Development Team'
89 author = 'The IPython Development Team'
90
90
91 author_email = 'ipython-dev@scipy.org'
91 author_email = 'ipython-dev@scipy.org'
92
92
93 url = 'http://ipython.scipy.org'
93 url = 'http://ipython.scipy.org'
94
94
95 download_url = 'http://ipython.scipy.org/dist'
95 download_url = 'http://ipython.scipy.org/dist'
96
96
97 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
97 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
98
98
99 keywords = ['Interactive','Interpreter','Shell','Parallel','Distributed']
99 keywords = ['Interactive','Interpreter','Shell','Parallel','Distributed']
@@ -1,200 +1,247 b''
1 .. _changes:
1 .. _changes:
2
2
3 ==========
3 ==========
4 What's new
4 What's new
5 ==========
5 ==========
6
6
7 .. contents::
7 .. contents::
8 ..
9 1 Release 0.9
10 1.1 New features
11 1.2 Bug fixes
12 1.3 Backwards incompatible changes
13 1.4 Changes merged in from IPython1
14 1.4.1 New features
15 1.4.2 Bug fixes
16 1.4.3 Backwards incompatible changes
17 2 Release 0.8.4
18 3 Release 0.8.2
19 4 Release 0.8.3
20 5 Older releases
21 ..
22
8
23
9 Release 0.9
24 Release 0.9
10 ===========
25 ===========
11
26
12 New features
27 New features
13 ------------
28 ------------
14
29
30 * The Editor synchronization work by Vivian De Smedt has been merged in. This
31 code adds a number of new editor hooks to synchronize with editors under
32 Windows.
33
34 * A new, still experimental but highly functional, WX shell by Gael Varoquaux.
35 This work was sponsored by Enthought, and while it's still very new, it is
36 based on a more cleanly organized arhictecture of the various IPython
37 components. We will continue to develop this over the next few releases as a
38 model for GUI components that use IPython.
39
40 * Another GUI frontend, Cocoa based (Cocoa is the OSX native GUI framework),
41 authored by Barry Wark. Currently the WX and the Cocoa ones have slightly
42 different internal organizations, but the whole team is working on finding
43 what the right abstraction points are for a unified codebase.
44
45 * As part of the frontend work, Barry Wark also implemented an experimental
46 event notification system that various ipython components can use. In the
47 next release the implications and use patterns of this system regarding the
48 various GUI options will be worked out.
49
50 * IPython finally has a full test system, that can test docstrings with
51 IPython-specific functionality. There are still a few pieces missing for it
52 to be widely accessible to all users (so they can run the test suite at any
53 time and report problems), but it now works for the developers. We are
54 working hard on continuing to improve it, as this was probably IPython's
55 major Achilles heel (the lack of proper test coverage made it effectively
56 impossible to do large-scale refactoring).
57
15 * The notion of a task has been completely reworked. An `ITask` interface has
58 * The notion of a task has been completely reworked. An `ITask` interface has
16 been created. This interface defines the methods that tasks need to implement.
59 been created. This interface defines the methods that tasks need to implement.
17 These methods are now responsible for things like submitting tasks and processing
60 These methods are now responsible for things like submitting tasks and processing
18 results. There are two basic task types: :class:`IPython.kernel.task.StringTask`
61 results. There are two basic task types: :class:`IPython.kernel.task.StringTask`
19 (this is the old `Task` object, but renamed) and the new
62 (this is the old `Task` object, but renamed) and the new
20 :class:`IPython.kernel.task.MapTask`, which is based on a function.
63 :class:`IPython.kernel.task.MapTask`, which is based on a function.
21 * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to
64 * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to
22 standardize the idea of a `map` method. This interface has a single
65 standardize the idea of a `map` method. This interface has a single
23 `map` method that has the same syntax as the built-in `map`. We have also defined
66 `map` method that has the same syntax as the built-in `map`. We have also defined
24 a `mapper` factory interface that creates objects that implement
67 a `mapper` factory interface that creates objects that implement
25 :class:`IPython.kernel.mapper.IMapper` for different controllers. Both
68 :class:`IPython.kernel.mapper.IMapper` for different controllers. Both
26 the multiengine and task controller now have mapping capabilties.
69 the multiengine and task controller now have mapping capabilties.
27 * The parallel function capabilities have been reworks. The major changes are that
70 * The parallel function capabilities have been reworks. The major changes are that
28 i) there is now an `@parallel` magic that creates parallel functions, ii)
71 i) there is now an `@parallel` magic that creates parallel functions, ii)
29 the syntax for mulitple variable follows that of `map`, iii) both the
72 the syntax for mulitple variable follows that of `map`, iii) both the
30 multiengine and task controller now have a parallel function implementation.
73 multiengine and task controller now have a parallel function implementation.
31 * All of the parallel computing capabilities from `ipython1-dev` have been merged into
74 * All of the parallel computing capabilities from `ipython1-dev` have been merged into
32 IPython proper. This resulted in the following new subpackages:
75 IPython proper. This resulted in the following new subpackages:
33 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`,
76 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`,
34 :mod:`IPython.tools` and :mod:`IPython.testing`.
77 :mod:`IPython.tools` and :mod:`IPython.testing`.
35 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and friends
78 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and friends
36 have been completely refactored. Now we are checking for dependencies using
79 have been completely refactored. Now we are checking for dependencies using
37 the approach that matplotlib uses.
80 the approach that matplotlib uses.
38 * The documentation has been completely reorganized to accept the documentation
81 * The documentation has been completely reorganized to accept the documentation
39 from `ipython1-dev`.
82 from `ipython1-dev`.
40 * We have switched to using Foolscap for all of our network protocols in
83 * We have switched to using Foolscap for all of our network protocols in
41 :mod:`IPython.kernel`. This gives us secure connections that are both encrypted
84 :mod:`IPython.kernel`. This gives us secure connections that are both encrypted
42 and authenticated.
85 and authenticated.
43 * We have a brand new `COPYING.txt` files that describes the IPython license
86 * We have a brand new `COPYING.txt` files that describes the IPython license
44 and copyright. The biggest change is that we are putting "The IPython
87 and copyright. The biggest change is that we are putting "The IPython
45 Development Team" as the copyright holder. We give more details about exactly
88 Development Team" as the copyright holder. We give more details about exactly
46 what this means in this file. All developer should read this and use the new
89 what this means in this file. All developer should read this and use the new
47 banner in all IPython source code files.
90 banner in all IPython source code files.
48 * sh profile: ./foo runs foo as system command, no need to do !./foo anymore
91 * sh profile: ./foo runs foo as system command, no need to do !./foo anymore
49 * String lists now support 'sort(field, nums = True)' method (to easily
92 * String lists now support 'sort(field, nums = True)' method (to easily
50 sort system command output). Try it with 'a = !ls -l ; a.sort(1, nums=1)'
93 sort system command output). Try it with 'a = !ls -l ; a.sort(1, nums=1)'
51 * '%cpaste foo' now assigns the pasted block as string list, instead of string
94 * '%cpaste foo' now assigns the pasted block as string list, instead of string
52 * The ipcluster script now run by default with no security. This is done because
95 * The ipcluster script now run by default with no security. This is done because
53 the main usage of the script is for starting things on localhost. Eventually
96 the main usage of the script is for starting things on localhost. Eventually
54 when ipcluster is able to start things on other hosts, we will put security
97 when ipcluster is able to start things on other hosts, we will put security
55 back.
98 back.
56 * 'cd --foo' searches directory history for string foo, and jumps to that dir.
99 * 'cd --foo' searches directory history for string foo, and jumps to that dir.
57 Last part of dir name is checked first. If no matches for that are found,
100 Last part of dir name is checked first. If no matches for that are found,
58 look at the whole path.
101 look at the whole path.
59
102
60 Bug fixes
103 Bug fixes
61 ---------
104 ---------
62
105
63 * The colors escapes in the multiengine client are now turned off on win32 as they
106 * The colors escapes in the multiengine client are now turned off on win32 as they
64 don't print correctly.
107 don't print correctly.
65 * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing mpi_import_statement
108 * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing mpi_import_statement
66 incorrectly, which was leading the engine to crash when mpi was enabled.
109 incorrectly, which was leading the engine to crash when mpi was enabled.
67 * A few subpackages has missing `__init__.py` files.
110 * A few subpackages has missing `__init__.py` files.
68 * The documentation is only created is Sphinx is found. Previously, the `setup.py`
111 * The documentation is only created is Sphinx is found. Previously, the `setup.py`
69 script would fail if it was missing.
112 script would fail if it was missing.
70 * Greedy 'cd' completion has been disabled again (it was enabled in 0.8.4)
113 * Greedy 'cd' completion has been disabled again (it was enabled in 0.8.4)
71
114
72
115
73 Backwards incompatible changes
116 Backwards incompatible changes
74 ------------------------------
117 ------------------------------
75
118
119 * In ipapi, the :func:`make_user_ns` function has been replaced with
120 :func:`make_user_namespaces`, to support dict subclasses in namespace
121 creation.
122
76 * :class:`IPython.kernel.client.Task` has been renamed
123 * :class:`IPython.kernel.client.Task` has been renamed
77 :class:`IPython.kernel.client.StringTask` to make way for new task types.
124 :class:`IPython.kernel.client.StringTask` to make way for new task types.
78 * The keyword argument `style` has been renamed `dist` in `scatter`, `gather`
125 * The keyword argument `style` has been renamed `dist` in `scatter`, `gather`
79 and `map`.
126 and `map`.
80 * Renamed the values that the rename `dist` keyword argument can have from
127 * Renamed the values that the rename `dist` keyword argument can have from
81 `'basic'` to `'b'`.
128 `'basic'` to `'b'`.
82 * IPython has a larger set of dependencies if you want all of its capabilities.
129 * IPython has a larger set of dependencies if you want all of its capabilities.
83 See the `setup.py` script for details.
130 See the `setup.py` script for details.
84 * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and
131 * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and
85 :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple.
132 :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple.
86 Instead they take the filename of a file that contains the FURL for that
133 Instead they take the filename of a file that contains the FURL for that
87 client. If the FURL file is in your IPYTHONDIR, it will be found automatically
134 client. If the FURL file is in your IPYTHONDIR, it will be found automatically
88 and the constructor can be left empty.
135 and the constructor can be left empty.
89 * The asynchronous clients in :mod:`IPython.kernel.asyncclient` are now created
136 * The asynchronous clients in :mod:`IPython.kernel.asyncclient` are now created
90 using the factory functions :func:`get_multiengine_client` and
137 using the factory functions :func:`get_multiengine_client` and
91 :func:`get_task_client`. These return a `Deferred` to the actual client.
138 :func:`get_task_client`. These return a `Deferred` to the actual client.
92 * The command line options to `ipcontroller` and `ipengine` have changed to
139 * The command line options to `ipcontroller` and `ipengine` have changed to
93 reflect the new Foolscap network protocol and the FURL files. Please see the
140 reflect the new Foolscap network protocol and the FURL files. Please see the
94 help for these scripts for details.
141 help for these scripts for details.
95 * The configuration files for the kernel have changed because of the Foolscap stuff.
142 * The configuration files for the kernel have changed because of the Foolscap stuff.
96 If you were using custom config files before, you should delete them and regenerate
143 If you were using custom config files before, you should delete them and regenerate
97 new ones.
144 new ones.
98
145
99 Changes merged in from IPython1
146 Changes merged in from IPython1
100 -------------------------------
147 -------------------------------
101
148
102 New features
149 New features
103 ............
150 ............
104
151
105 * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted
152 * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted
106 and zope.interface are now easy installable, we can declare them as dependencies
153 and zope.interface are now easy installable, we can declare them as dependencies
107 in our setupegg.py script.
154 in our setupegg.py script.
108 * IPython is now compatible with Twisted 2.5.0 and 8.x.
155 * IPython is now compatible with Twisted 2.5.0 and 8.x.
109 * Added a new example of how to use :mod:`ipython1.kernel.asynclient`.
156 * Added a new example of how to use :mod:`ipython1.kernel.asynclient`.
110 * Initial draft of a process daemon in :mod:`ipython1.daemon`. This has not
157 * Initial draft of a process daemon in :mod:`ipython1.daemon`. This has not
111 been merged into IPython and is still in `ipython1-dev`.
158 been merged into IPython and is still in `ipython1-dev`.
112 * The ``TaskController`` now has methods for getting the queue status.
159 * The ``TaskController`` now has methods for getting the queue status.
113 * The ``TaskResult`` objects not have information about how long the task
160 * The ``TaskResult`` objects not have information about how long the task
114 took to run.
161 took to run.
115 * We are attaching additional attributes to exceptions ``(_ipython_*)`` that
162 * We are attaching additional attributes to exceptions ``(_ipython_*)`` that
116 we use to carry additional info around.
163 we use to carry additional info around.
117 * New top-level module :mod:`asyncclient` that has asynchronous versions (that
164 * New top-level module :mod:`asyncclient` that has asynchronous versions (that
118 return deferreds) of the client classes. This is designed to users who want
165 return deferreds) of the client classes. This is designed to users who want
119 to run their own Twisted reactor
166 to run their own Twisted reactor
120 * All the clients in :mod:`client` are now based on Twisted. This is done by
167 * All the clients in :mod:`client` are now based on Twisted. This is done by
121 running the Twisted reactor in a separate thread and using the
168 running the Twisted reactor in a separate thread and using the
122 :func:`blockingCallFromThread` function that is in recent versions of Twisted.
169 :func:`blockingCallFromThread` function that is in recent versions of Twisted.
123 * Functions can now be pushed/pulled to/from engines using
170 * Functions can now be pushed/pulled to/from engines using
124 :meth:`MultiEngineClient.push_function` and :meth:`MultiEngineClient.pull_function`.
171 :meth:`MultiEngineClient.push_function` and :meth:`MultiEngineClient.pull_function`.
125 * Gather/scatter are now implemented in the client to reduce the work load
172 * Gather/scatter are now implemented in the client to reduce the work load
126 of the controller and improve performance.
173 of the controller and improve performance.
127 * Complete rewrite of the IPython docuementation. All of the documentation
174 * Complete rewrite of the IPython docuementation. All of the documentation
128 from the IPython website has been moved into docs/source as restructured
175 from the IPython website has been moved into docs/source as restructured
129 text documents. PDF and HTML documentation are being generated using
176 text documents. PDF and HTML documentation are being generated using
130 Sphinx.
177 Sphinx.
131 * New developer oriented documentation: development guidelines and roadmap.
178 * New developer oriented documentation: development guidelines and roadmap.
132 * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt`` file
179 * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt`` file
133 that is organized by release and is meant to provide something more relevant
180 that is organized by release and is meant to provide something more relevant
134 for users.
181 for users.
135
182
136 Bug fixes
183 Bug fixes
137 .........
184 .........
138
185
139 * Created a proper ``MANIFEST.in`` file to create source distributions.
186 * Created a proper ``MANIFEST.in`` file to create source distributions.
140 * Fixed a bug in the ``MultiEngine`` interface. Previously, multi-engine
187 * Fixed a bug in the ``MultiEngine`` interface. Previously, multi-engine
141 actions were being collected with a :class:`DeferredList` with
188 actions were being collected with a :class:`DeferredList` with
142 ``fireononeerrback=1``. This meant that methods were returning
189 ``fireononeerrback=1``. This meant that methods were returning
143 before all engines had given their results. This was causing extremely odd
190 before all engines had given their results. This was causing extremely odd
144 bugs in certain cases. To fix this problem, we have 1) set
191 bugs in certain cases. To fix this problem, we have 1) set
145 ``fireononeerrback=0`` to make sure all results (or exceptions) are in
192 ``fireononeerrback=0`` to make sure all results (or exceptions) are in
146 before returning and 2) introduced a :exc:`CompositeError` exception
193 before returning and 2) introduced a :exc:`CompositeError` exception
147 that wraps all of the engine exceptions. This is a huge change as it means
194 that wraps all of the engine exceptions. This is a huge change as it means
148 that users will have to catch :exc:`CompositeError` rather than the actual
195 that users will have to catch :exc:`CompositeError` rather than the actual
149 exception.
196 exception.
150
197
151 Backwards incompatible changes
198 Backwards incompatible changes
152 ..............................
199 ..............................
153
200
154 * All names have been renamed to conform to the lowercase_with_underscore
201 * All names have been renamed to conform to the lowercase_with_underscore
155 convention. This will require users to change references to all names like
202 convention. This will require users to change references to all names like
156 ``queueStatus`` to ``queue_status``.
203 ``queueStatus`` to ``queue_status``.
157 * Previously, methods like :meth:`MultiEngineClient.push` and
204 * Previously, methods like :meth:`MultiEngineClient.push` and
158 :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
205 :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
159 becoming a problem as we weren't able to introduce new keyword arguments into
206 becoming a problem as we weren't able to introduce new keyword arguments into
160 the API. Now these methods simple take a dict or sequence. This has also allowed
207 the API. Now these methods simple take a dict or sequence. This has also allowed
161 us to get rid of the ``*All`` methods like :meth:`pushAll` and :meth:`pullAll`.
208 us to get rid of the ``*All`` methods like :meth:`pushAll` and :meth:`pullAll`.
162 These things are now handled with the ``targets`` keyword argument that defaults
209 These things are now handled with the ``targets`` keyword argument that defaults
163 to ``'all'``.
210 to ``'all'``.
164 * The :attr:`MultiEngineClient.magicTargets` has been renamed to
211 * The :attr:`MultiEngineClient.magicTargets` has been renamed to
165 :attr:`MultiEngineClient.targets`.
212 :attr:`MultiEngineClient.targets`.
166 * All methods in the MultiEngine interface now accept the optional keyword argument
213 * All methods in the MultiEngine interface now accept the optional keyword argument
167 ``block``.
214 ``block``.
168 * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
215 * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
169 :class:`TaskController` to :class:`TaskClient`.
216 :class:`TaskController` to :class:`TaskClient`.
170 * Renamed the top-level module from :mod:`api` to :mod:`client`.
217 * Renamed the top-level module from :mod:`api` to :mod:`client`.
171 * Most methods in the multiengine interface now raise a :exc:`CompositeError` exception
218 * Most methods in the multiengine interface now raise a :exc:`CompositeError` exception
172 that wraps the user's exceptions, rather than just raising the raw user's exception.
219 that wraps the user's exceptions, rather than just raising the raw user's exception.
173 * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
220 * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
174 and ``pull``.
221 and ``pull``.
175
222
176 Release 0.8.4
223 Release 0.8.4
177 =============
224 =============
178
225
179 Someone needs to describe what went into 0.8.4.
226 Someone needs to describe what went into 0.8.4.
180
227
181 Release 0.8.2
228 Release 0.8.2
182 =============
229 =============
183
230
184 * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
231 * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
185 and jumps to /foo. The current behaviour is closer to the documented
232 and jumps to /foo. The current behaviour is closer to the documented
186 behaviour, and should not trip anyone.
233 behaviour, and should not trip anyone.
187
234
188 Release 0.8.3
235 Release 0.8.3
189 =============
236 =============
190
237
191 * pydb is now disabled by default (due to %run -d problems). You can enable
238 * pydb is now disabled by default (due to %run -d problems). You can enable
192 it by passing -pydb command line argument to IPython. Note that setting
239 it by passing -pydb command line argument to IPython. Note that setting
193 it in config file won't work.
240 it in config file won't work.
194
241
195 Older releases
242 Older releases
196 ==============
243 ==============
197
244
198 Changes in earlier releases of IPython are described in the older file ``ChangeLog``.
245 Changes in earlier releases of IPython are described in the older file ``ChangeLog``.
199 Please refer to this document for details.
246 Please refer to this document for details.
200
247
@@ -1,166 +1,180 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 #
2 #
3 # IPython documentation build configuration file, created by
3 # IPython documentation build configuration file, created by
4 # sphinx-quickstart on Thu May 8 16:45:02 2008.
4 # sphinx-quickstart on Thu May 8 16:45:02 2008.
5
6 # NOTE: This file has been edited manually from the auto-generated one from
7 # sphinx. Do NOT delete and re-generate. If any changes from sphinx are
8 # needed, generate a scratch one and merge by hand any new fields needed.
9
5 #
10 #
6 # This file is execfile()d with the current directory set to its containing dir.
11 # This file is execfile()d with the current directory set to its containing dir.
7 #
12 #
8 # The contents of this file are pickled, so don't put values in the namespace
13 # The contents of this file are pickled, so don't put values in the namespace
9 # that aren't pickleable (module imports are okay, they're removed automatically).
14 # that aren't pickleable (module imports are okay, they're removed automatically).
10 #
15 #
11 # All configuration values have a default value; values that are commented out
16 # All configuration values have a default value; values that are commented out
12 # serve to show the default value.
17 # serve to show the default value.
13
18
14 import sys, os
19 import sys, os
15
20
16 # If your extensions are in another directory, add it here. If the directory
21 # If your extensions are in another directory, add it here. If the directory
17 # is relative to the documentation root, use os.path.abspath to make it
22 # is relative to the documentation root, use os.path.abspath to make it
18 # absolute, like shown here.
23 # absolute, like shown here.
19 #sys.path.append(os.path.abspath('some/directory'))
24 #sys.path.append(os.path.abspath('some/directory'))
20
25
26 # We load the ipython release info into a dict by explicit execution
27 iprelease = {}
28 execfile('../../IPython/Release.py',iprelease)
29
21 # General configuration
30 # General configuration
22 # ---------------------
31 # ---------------------
23
32
24 # Add any Sphinx extension module names here, as strings. They can be extensions
33 # Add any Sphinx extension module names here, as strings. They can be extensions
25 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
34 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
26 #extensions = []
35 #extensions = []
27
36
28 # Add any paths that contain templates here, relative to this directory.
37 # Add any paths that contain templates here, relative to this directory.
29 templates_path = ['_templates']
38 templates_path = ['_templates']
30
39
31 # The suffix of source filenames.
40 # The suffix of source filenames.
32 source_suffix = '.txt'
41 source_suffix = '.txt'
33
42
34 # The master toctree document.
43 # The master toctree document.
35 master_doc = 'index'
44 master_doc = 'index'
36
45
37 # General substitutions.
46 # General substitutions.
38 project = 'IPython'
47 project = 'IPython'
39 copyright = '2008, The IPython Development Team'
48 copyright = '2008, The IPython Development Team'
40
49
41 # The default replacements for |version| and |release|, also used in various
50 # The default replacements for |version| and |release|, also used in various
42 # other places throughout the built documents.
51 # other places throughout the built documents.
43 #
52 #
44 # The short X.Y version.
45 version = '0.9'
46 # The full version, including alpha/beta/rc tags.
53 # The full version, including alpha/beta/rc tags.
47 release = '0.9.beta1'
54 release = iprelease['version']
55 # The short X.Y version.
56 version = '.'.join(release.split('.',2)[:2])
57
48
58
49 # There are two options for replacing |today|: either, you set today to some
59 # There are two options for replacing |today|: either, you set today to some
50 # non-false value, then it is used:
60 # non-false value, then it is used:
51 #today = ''
61 #today = ''
52 # Else, today_fmt is used as the format for a strftime call.
62 # Else, today_fmt is used as the format for a strftime call.
53 today_fmt = '%B %d, %Y'
63 today_fmt = '%B %d, %Y'
54
64
55 # List of documents that shouldn't be included in the build.
65 # List of documents that shouldn't be included in the build.
56 #unused_docs = []
66 #unused_docs = []
57
67
58 # List of directories, relative to source directories, that shouldn't be searched
68 # List of directories, relative to source directories, that shouldn't be searched
59 # for source files.
69 # for source files.
60 #exclude_dirs = []
70 #exclude_dirs = []
61
71
62 # If true, '()' will be appended to :func: etc. cross-reference text.
72 # If true, '()' will be appended to :func: etc. cross-reference text.
63 #add_function_parentheses = True
73 #add_function_parentheses = True
64
74
65 # If true, the current module name will be prepended to all description
75 # If true, the current module name will be prepended to all description
66 # unit titles (such as .. function::).
76 # unit titles (such as .. function::).
67 #add_module_names = True
77 #add_module_names = True
68
78
69 # If true, sectionauthor and moduleauthor directives will be shown in the
79 # If true, sectionauthor and moduleauthor directives will be shown in the
70 # output. They are ignored by default.
80 # output. They are ignored by default.
71 #show_authors = False
81 #show_authors = False
72
82
73 # The name of the Pygments (syntax highlighting) style to use.
83 # The name of the Pygments (syntax highlighting) style to use.
74 pygments_style = 'sphinx'
84 pygments_style = 'sphinx'
75
85
76
86
77 # Options for HTML output
87 # Options for HTML output
78 # -----------------------
88 # -----------------------
79
89
80 # The style sheet to use for HTML and HTML Help pages. A file of that name
90 # The style sheet to use for HTML and HTML Help pages. A file of that name
81 # must exist either in Sphinx' static/ path, or in one of the custom paths
91 # must exist either in Sphinx' static/ path, or in one of the custom paths
82 # given in html_static_path.
92 # given in html_static_path.
83 html_style = 'default.css'
93 html_style = 'default.css'
84
94
85 # The name for this set of Sphinx documents. If None, it defaults to
95 # The name for this set of Sphinx documents. If None, it defaults to
86 # "<project> v<release> documentation".
96 # "<project> v<release> documentation".
87 #html_title = None
97 #html_title = None
88
98
89 # The name of an image file (within the static path) to place at the top of
99 # The name of an image file (within the static path) to place at the top of
90 # the sidebar.
100 # the sidebar.
91 #html_logo = None
101 #html_logo = None
92
102
93 # Add any paths that contain custom static files (such as style sheets) here,
103 # Add any paths that contain custom static files (such as style sheets) here,
94 # relative to this directory. They are copied after the builtin static files,
104 # relative to this directory. They are copied after the builtin static files,
95 # so a file named "default.css" will overwrite the builtin "default.css".
105 # so a file named "default.css" will overwrite the builtin "default.css".
96 html_static_path = ['_static']
106 html_static_path = ['_static']
97
107
98 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
108 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
99 # using the given strftime format.
109 # using the given strftime format.
100 html_last_updated_fmt = '%b %d, %Y'
110 html_last_updated_fmt = '%b %d, %Y'
101
111
102 # If true, SmartyPants will be used to convert quotes and dashes to
112 # If true, SmartyPants will be used to convert quotes and dashes to
103 # typographically correct entities.
113 # typographically correct entities.
104 #html_use_smartypants = True
114 #html_use_smartypants = True
105
115
106 # Custom sidebar templates, maps document names to template names.
116 # Custom sidebar templates, maps document names to template names.
107 #html_sidebars = {}
117 #html_sidebars = {}
108
118
109 # Additional templates that should be rendered to pages, maps page names to
119 # Additional templates that should be rendered to pages, maps page names to
110 # template names.
120 # template names.
111 #html_additional_pages = {}
121 #html_additional_pages = {}
112
122
113 # If false, no module index is generated.
123 # If false, no module index is generated.
114 #html_use_modindex = True
124 #html_use_modindex = True
115
125
116 # If true, the reST sources are included in the HTML build as _sources/<name>.
126 # If true, the reST sources are included in the HTML build as _sources/<name>.
117 #html_copy_source = True
127 #html_copy_source = True
118
128
119 # If true, an OpenSearch description file will be output, and all pages will
129 # If true, an OpenSearch description file will be output, and all pages will
120 # contain a <link> tag referring to it. The value of this option must be the
130 # contain a <link> tag referring to it. The value of this option must be the
121 # base URL from which the finished HTML is served.
131 # base URL from which the finished HTML is served.
122 #html_use_opensearch = ''
132 #html_use_opensearch = ''
123
133
124 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
134 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
125 #html_file_suffix = ''
135 #html_file_suffix = ''
126
136
127 # Output file base name for HTML help builder.
137 # Output file base name for HTML help builder.
128 htmlhelp_basename = 'IPythondoc'
138 htmlhelp_basename = 'IPythondoc'
129
139
130
140
131 # Options for LaTeX output
141 # Options for LaTeX output
132 # ------------------------
142 # ------------------------
133
143
134 # The paper size ('letter' or 'a4').
144 # The paper size ('letter' or 'a4').
135 latex_paper_size = 'letter'
145 latex_paper_size = 'letter'
136
146
137 # The font size ('10pt', '11pt' or '12pt').
147 # The font size ('10pt', '11pt' or '12pt').
138 latex_font_size = '11pt'
148 latex_font_size = '11pt'
139
149
140 # Grouping the document tree into LaTeX files. List of tuples
150 # Grouping the document tree into LaTeX files. List of tuples
141 # (source start file, target name, title, author, document class [howto/manual]).
151 # (source start file, target name, title, author, document class [howto/manual]).
142
152
143 latex_documents = [ ('index', 'IPython.tex', 'IPython Documentation',
153 latex_documents = [ ('index', 'IPython.tex', 'IPython Documentation',
144 ur"""Brian Granger, Fernando Pérez and Ville Vainio\\
154 ur"""Brian Granger, Fernando Pérez and Ville Vainio\\
145 \ \\
155 \ \\
146 With contributions from:\\
156 With contributions from:\\
147 Benjamin Ragan-Kelley.""",
157 Benjamin Ragan-Kelley.""",
148 'manual'),
158 'manual'),
149 ]
159 ]
150
160
151 # The name of an image file (relative to this directory) to place at the top of
161 # The name of an image file (relative to this directory) to place at the top of
152 # the title page.
162 # the title page.
153 #latex_logo = None
163 #latex_logo = None
154
164
155 # For "manual" documents, if this is true, then toplevel headings are parts,
165 # For "manual" documents, if this is true, then toplevel headings are parts,
156 # not chapters.
166 # not chapters.
157 #latex_use_parts = False
167 #latex_use_parts = False
158
168
159 # Additional stuff for the LaTeX preamble.
169 # Additional stuff for the LaTeX preamble.
160 #latex_preamble = ''
170 #latex_preamble = ''
161
171
162 # Documents to append as an appendix to all manuals.
172 # Documents to append as an appendix to all manuals.
163 #latex_appendices = []
173 #latex_appendices = []
164
174
165 # If false, no module index is generated.
175 # If false, no module index is generated.
166 #latex_use_modindex = True
176 #latex_use_modindex = True
177
178
179 # Cleanup: delete release info to avoid pickling errors from sphinx
180 del iprelease
General Comments 0
You need to be logged in to leave comments. Login now