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