Show More
@@ -1,318 +1,319 b'' | |||
|
1 | 1 | ============= |
|
2 | 2 | 0.10 series |
|
3 | 3 | ============= |
|
4 | 4 | |
|
5 | 5 | Release 0.10.1 |
|
6 | 6 | ============== |
|
7 | 7 | |
|
8 | 8 | IPython 0.10.1 was released October 11, 2010, over a year after version 0.10. |
|
9 | 9 | This is mostly a bugfix release, since after version 0.10 was released, the |
|
10 | 10 | development team's energy has been focused on the 0.11 series. We have |
|
11 | 11 | nonetheless tried to backport what fixes we could into 0.10.1, as it remains |
|
12 | 12 | the stable series that many users have in production systems they rely on. |
|
13 | 13 | |
|
14 | 14 | Since the 0.11 series changes many APIs in backwards-incompatible ways, we are |
|
15 | 15 | willing to continue maintaining the 0.10.x series. We don't really have time |
|
16 | 16 | to actively write new code for 0.10.x, but we are happy to accept patches and |
|
17 | 17 | pull requests on the IPython `github site`_. If sufficient contributions are |
|
18 | 18 | made that improve 0.10.1, we will roll them into future releases. For this |
|
19 | 19 | purpose, we will have a branch called 0.10.2 on github, on which you can base |
|
20 | 20 | your contributions. |
|
21 | 21 | |
|
22 | 22 | .. _github site: http://github.com/ipython |
|
23 | 23 | |
|
24 | 24 | For this release, we applied approximately 60 commits totaling a diff of over |
|
25 | 25 | 7000 lines:: |
|
26 | 26 | |
|
27 | 27 | (0.10.1)amirbar[dist]> git diff --oneline rel-0.10.. | wc -l |
|
28 | 28 | 7296 |
|
29 | 29 | |
|
30 | 30 | Highlights of this release: |
|
31 | 31 | |
|
32 | 32 | - The only significant new feature is that IPython's parallel computing |
|
33 | 33 | machinery now supports natively the Sun Grid Engine and LSF schedulers. This |
|
34 | 34 | work was a joint contribution from Justin Riley, Satra Ghosh and Matthieu |
|
35 | 35 | Brucher, who put a lot of work into it. We also improved traceback handling |
|
36 | 36 | in remote tasks, as well as providing better control for remote task IDs. |
|
37 | 37 | |
|
38 |
- New IPython Sphinx directive. You can use this |
|
|
39 |
reSructuredText documents as containig IPython |
|
|
40 | the will be executed during the build:: | |
|
38 | - New IPython Sphinx directive contributed by John Hunter. You can use this | |
|
39 | directive to mark blocks in reSructuredText documents as containig IPython | |
|
40 | syntax (including figures) and the will be executed during the build:: | |
|
41 | 41 | |
|
42 | 42 | .. ipython:: |
|
43 | 43 | |
|
44 | 44 | In [2]: plt.figure() # ensure a fresh figure |
|
45 | 45 | |
|
46 | 46 | @savefig psimple.png width=4in |
|
47 | 47 | In [3]: plt.plot([1,2,3]) |
|
48 | 48 | Out[3]: [<matplotlib.lines.Line2D object at 0x9b74d8c>] |
|
49 | 49 | |
|
50 | 50 | - Various fixes to the standalone ipython-wx application. |
|
51 | 51 | |
|
52 | 52 | - We now ship internally the excellent argparse library, graciously licensed |
|
53 | 53 | under BSD terms by Steven Bethard. Now (2010) that argparse has become part |
|
54 | 54 | of Python 2.7 this will be less of an issue, but Steven's relicensing allowed |
|
55 | 55 | us to start updating IPython to using argparse well before Python 2.7. Many |
|
56 | 56 | thanks! |
|
57 | 57 | |
|
58 | 58 | - Robustness improvements so that IPython doesn't crash if the readline library |
|
59 | 59 | is absent (though obviously a lot of functionality that requires readline |
|
60 | 60 | will not be available). |
|
61 | 61 | |
|
62 | 62 | - Improvements to tab completion in Emacs with Python 2.6. |
|
63 | 63 | |
|
64 | 64 | - Logging now supports timestamps (see ``%logstart?`` for full details). |
|
65 | 65 | |
|
66 | 66 | - A long-standing and quite annoying bug where parentheses would be added to |
|
67 | 67 | ``print`` statements, under Python 2.5 and 2.6, was finally fixed. |
|
68 | 68 | |
|
69 | 69 | - Improved handling of libreadline on Apple OSX. |
|
70 | 70 | |
|
71 | 71 | - Fix ``reload`` method of IPython demos, which was broken. |
|
72 | 72 | |
|
73 | 73 | - Fixes for the ipipe/ibrowse system on OSX. |
|
74 | 74 | |
|
75 | 75 | - Fixes for Zope profile. |
|
76 | 76 | |
|
77 | 77 | - Fix %timeit reporting when the time is longer than 1000s. |
|
78 | 78 | |
|
79 | 79 | - Avoid lockups with ? or ?? in SunOS, due to a bug in termios. |
|
80 | 80 | |
|
81 | 81 | - The usual assortment of miscellaneous bug fixes and small improvements. |
|
82 | 82 | |
|
83 | 83 | The following people contributed to this release (please let us know if we |
|
84 | 84 | omitted your name and we'll gladly fix this in the notes for the future): |
|
85 | 85 | |
|
86 | 86 | * Beni Cherniavsky |
|
87 | 87 | * Boyd Waters. |
|
88 | 88 | * David Warde-Farley |
|
89 | 89 | * Fernando Perez |
|
90 | 90 | * GΓΆkhan Sever |
|
91 | * John Hunter | |
|
91 | 92 | * Justin Riley |
|
92 | 93 | * Kiorky |
|
93 | 94 | * Laurent Dufrechou |
|
94 | 95 | * Mark E. Smith |
|
95 | 96 | * Matthieu Brucher |
|
96 | 97 | * Satrajit Ghosh |
|
97 | 98 | * Sebastian Busch |
|
98 | 99 | * VΓ‘clav Ε milauer |
|
99 | 100 | |
|
100 | 101 | Release 0.10 |
|
101 | 102 | ============ |
|
102 | 103 | |
|
103 | 104 | This release brings months of slow but steady development, and will be the last |
|
104 | 105 | before a major restructuring and cleanup of IPython's internals that is already |
|
105 | 106 | under way. For this reason, we hope that 0.10 will be a stable and robust |
|
106 | 107 | release so that while users adapt to some of the API changes that will come |
|
107 | 108 | with the refactoring that will become IPython 0.11, they can safely use 0.10 in |
|
108 | 109 | all existing projects with minimal changes (if any). |
|
109 | 110 | |
|
110 | 111 | IPython 0.10 is now a medium-sized project, with roughly (as reported by David |
|
111 | 112 | Wheeler's :command:`sloccount` utility) 40750 lines of Python code, and a diff |
|
112 | 113 | between 0.9.1 and this release that contains almost 28000 lines of code and |
|
113 | 114 | documentation. Our documentation, in PDF format, is a 495-page long PDF |
|
114 | 115 | document (also available in HTML format, both generated from the same sources). |
|
115 | 116 | |
|
116 | 117 | Many users and developers contributed code, features, bug reports and ideas to |
|
117 | 118 | this release. Please do not hesitate in contacting us if we've failed to |
|
118 | 119 | acknowledge your contribution here. In particular, for this release we have |
|
119 | 120 | contribution from the following people, a mix of new and regular names (in |
|
120 | 121 | alphabetical order by first name): |
|
121 | 122 | |
|
122 | 123 | * Alexander Clausen: fix #341726. |
|
123 | 124 | * Brian Granger: lots of work everywhere (features, bug fixes, etc). |
|
124 | 125 | * Daniel Ashbrook: bug report on MemoryError during compilation, now fixed. |
|
125 | 126 | * Darren Dale: improvements to documentation build system, feedback, design |
|
126 | 127 | ideas. |
|
127 | 128 | * Fernando Perez: various places. |
|
128 | 129 | * GaΓ«l Varoquaux: core code, ipythonx GUI, design discussions, etc. Lots... |
|
129 | 130 | * John Hunter: suggestions, bug fixes, feedback. |
|
130 | 131 | * Jorgen Stenarson: work on many fronts, tests, fixes, win32 support, etc. |
|
131 | 132 | * Laurent DufrΓ©chou: many improvements to ipython-wx standalone app. |
|
132 | 133 | * Lukasz Pankowski: prefilter, `%edit`, demo improvements. |
|
133 | 134 | * Matt Foster: TextMate support in `%edit`. |
|
134 | 135 | * Nathaniel Smith: fix #237073. |
|
135 | 136 | * Pauli Virtanen: fixes and improvements to extensions, documentation. |
|
136 | 137 | * Prabhu Ramachandran: improvements to `%timeit`. |
|
137 | 138 | * Robert Kern: several extensions. |
|
138 | 139 | * Sameer D'Costa: help on critical bug #269966. |
|
139 | 140 | * Stephan Peijnik: feedback on Debian compliance and many man pages. |
|
140 | 141 | * Steven Bethard: we are now shipping his :mod:`argparse` module. |
|
141 | 142 | * Tom Fetherston: many improvements to :mod:`IPython.demo` module. |
|
142 | 143 | * Ville Vainio: lots of work everywhere (features, bug fixes, etc). |
|
143 | 144 | * Vishal Vasta: ssh support in ipcluster. |
|
144 | 145 | * Walter Doerwald: work on the :mod:`IPython.ipipe` system. |
|
145 | 146 | |
|
146 | 147 | Below we give an overview of new features, bug fixes and backwards-incompatible |
|
147 | 148 | changes. For a detailed account of every change made, feel free to view the |
|
148 | 149 | project log with :command:`bzr log`. |
|
149 | 150 | |
|
150 | 151 | New features |
|
151 | 152 | ------------ |
|
152 | 153 | |
|
153 | 154 | * New `%paste` magic automatically extracts current contents of clipboard and |
|
154 | 155 | pastes it directly, while correctly handling code that is indented or |
|
155 | 156 | prepended with `>>>` or `...` python prompt markers. A very useful new |
|
156 | 157 | feature contributed by Robert Kern. |
|
157 | 158 | |
|
158 | 159 | * IPython 'demos', created with the :mod:`IPython.demo` module, can now be |
|
159 | 160 | created from files on disk or strings in memory. Other fixes and |
|
160 | 161 | improvements to the demo system, by Tom Fetherston. |
|
161 | 162 | |
|
162 | 163 | * Added :func:`find_cmd` function to :mod:`IPython.platutils` module, to find |
|
163 | 164 | commands in a cross-platform manner. |
|
164 | 165 | |
|
165 | 166 | * Many improvements and fixes to GaΓ«l Varoquaux's :command:`ipythonx`, a |
|
166 | 167 | WX-based lightweight IPython instance that can be easily embedded in other WX |
|
167 | 168 | applications. These improvements have made it possible to now have an |
|
168 | 169 | embedded IPython in Mayavi and other tools. |
|
169 | 170 | |
|
170 | 171 | * :class:`MultiengineClient` objects now have a :meth:`benchmark` method. |
|
171 | 172 | |
|
172 | 173 | * The manual now includes a full set of auto-generated API documents from the |
|
173 | 174 | code sources, using Sphinx and some of our own support code. We are now |
|
174 | 175 | using the `Numpy Documentation Standard`_ for all docstrings, and we have |
|
175 | 176 | tried to update as many existing ones as possible to this format. |
|
176 | 177 | |
|
177 | 178 | * The new :mod:`IPython.Extensions.ipy_pretty` extension by Robert Kern |
|
178 | 179 | provides configurable pretty-printing. |
|
179 | 180 | |
|
180 | 181 | * Many improvements to the :command:`ipython-wx` standalone WX-based IPython |
|
181 | 182 | application by Laurent DufrΓ©chou. It can optionally run in a thread, and |
|
182 | 183 | this can be toggled at runtime (allowing the loading of Matplotlib in a |
|
183 | 184 | running session without ill effects). |
|
184 | 185 | |
|
185 | 186 | * IPython includes a copy of Steven Bethard's argparse_ in the |
|
186 | 187 | :mod:`IPython.external` package, so we can use it internally and it is also |
|
187 | 188 | available to any IPython user. By installing it in this manner, we ensure |
|
188 | 189 | zero conflicts with any system-wide installation you may already have while |
|
189 | 190 | minimizing external dependencies for new users. In IPython 0.10, We ship |
|
190 | 191 | argparse version 1.0. |
|
191 | 192 | |
|
192 | 193 | * An improved and much more robust test suite, that runs groups of tests in |
|
193 | 194 | separate subprocesses using either Nose or Twisted's :command:`trial` runner |
|
194 | 195 | to ensure proper management of Twisted-using code. The test suite degrades |
|
195 | 196 | gracefully if optional dependencies are not available, so that the |
|
196 | 197 | :command:`iptest` command can be run with only Nose installed and nothing |
|
197 | 198 | else. We also have more and cleaner test decorators to better select tests |
|
198 | 199 | depending on runtime conditions, do setup/teardown, etc. |
|
199 | 200 | |
|
200 | 201 | * The new ipcluster now has a fully working ssh mode that should work on |
|
201 | 202 | Linux, Unix and OS X. Thanks to Vishal Vatsa for implementing this! |
|
202 | 203 | |
|
203 | 204 | * The wonderful TextMate editor can now be used with %edit on OS X. Thanks |
|
204 | 205 | to Matt Foster for this patch. |
|
205 | 206 | |
|
206 | 207 | * The documentation regarding parallel uses of IPython, including MPI and PBS, |
|
207 | 208 | has been significantly updated and improved. |
|
208 | 209 | |
|
209 | 210 | * The developer guidelines in the documentation have been updated to explain |
|
210 | 211 | our workflow using :command:`bzr` and Launchpad. |
|
211 | 212 | |
|
212 | 213 | * Fully refactored :command:`ipcluster` command line program for starting |
|
213 | 214 | IPython clusters. This new version is a complete rewrite and 1) is fully |
|
214 | 215 | cross platform (we now use Twisted's process management), 2) has much |
|
215 | 216 | improved performance, 3) uses subcommands for different types of clusters, 4) |
|
216 | 217 | uses argparse for parsing command line options, 5) has better support for |
|
217 | 218 | starting clusters using :command:`mpirun`, 6) has experimental support for |
|
218 | 219 | starting engines using PBS. It can also reuse FURL files, by appropriately |
|
219 | 220 | passing options to its subcommands. However, this new version of ipcluster |
|
220 | 221 | should be considered a technology preview. We plan on changing the API in |
|
221 | 222 | significant ways before it is final. |
|
222 | 223 | |
|
223 | 224 | * Full description of the security model added to the docs. |
|
224 | 225 | |
|
225 | 226 | * cd completer: show bookmarks if no other completions are available. |
|
226 | 227 | |
|
227 | 228 | * sh profile: easy way to give 'title' to prompt: assign to variable |
|
228 | 229 | '_prompt_title'. It looks like this:: |
|
229 | 230 | |
|
230 | 231 | [~]|1> _prompt_title = 'sudo!' |
|
231 | 232 | sudo![~]|2> |
|
232 | 233 | |
|
233 | 234 | * %edit: If you do '%edit pasted_block', pasted_block variable gets updated |
|
234 | 235 | with new data (so repeated editing makes sense) |
|
235 | 236 | |
|
236 | 237 | .. _Numpy Documentation Standard: http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines#docstring-standard |
|
237 | 238 | |
|
238 | 239 | .. _argparse: http://code.google.com/p/argparse/ |
|
239 | 240 | |
|
240 | 241 | Bug fixes |
|
241 | 242 | --------- |
|
242 | 243 | |
|
243 | 244 | * Fix #368719, removed top-level debian/ directory to make the job of Debian |
|
244 | 245 | packagers easier. |
|
245 | 246 | |
|
246 | 247 | * Fix #291143 by including man pages contributed by Stephan Peijnik from the |
|
247 | 248 | Debian project. |
|
248 | 249 | |
|
249 | 250 | * Fix #358202, effectively a race condition, by properly synchronizing file |
|
250 | 251 | creation at cluster startup time. |
|
251 | 252 | |
|
252 | 253 | * `%timeit` now handles correctly functions that take a long time to execute |
|
253 | 254 | even the first time, by not repeating them. |
|
254 | 255 | |
|
255 | 256 | * Fix #239054, releasing of references after exiting. |
|
256 | 257 | |
|
257 | 258 | * Fix #341726, thanks to Alexander Clausen. |
|
258 | 259 | |
|
259 | 260 | * Fix #269966. This long-standing and very difficult bug (which is actually a |
|
260 | 261 | problem in Python itself) meant long-running sessions would inevitably grow |
|
261 | 262 | in memory size, often with catastrophic consequences if users had large |
|
262 | 263 | objects in their scripts. Now, using `%run` repeatedly should not cause any |
|
263 | 264 | memory leaks. Special thanks to John Hunter and Sameer D'Costa for their |
|
264 | 265 | help with this bug. |
|
265 | 266 | |
|
266 | 267 | * Fix #295371, bug in `%history`. |
|
267 | 268 | |
|
268 | 269 | * Improved support for py2exe. |
|
269 | 270 | |
|
270 | 271 | * Fix #270856: IPython hangs with PyGTK |
|
271 | 272 | |
|
272 | 273 | * Fix #270998: A magic with no docstring breaks the '%magic magic' |
|
273 | 274 | |
|
274 | 275 | * fix #271684: -c startup commands screw up raw vs. native history |
|
275 | 276 | |
|
276 | 277 | * Numerous bugs on Windows with the new ipcluster have been fixed. |
|
277 | 278 | |
|
278 | 279 | * The ipengine and ipcontroller scripts now handle missing furl files |
|
279 | 280 | more gracefully by giving better error messages. |
|
280 | 281 | |
|
281 | 282 | * %rehashx: Aliases no longer contain dots. python3.0 binary |
|
282 | 283 | will create alias python30. Fixes: |
|
283 | 284 | #259716 "commands with dots in them don't work" |
|
284 | 285 | |
|
285 | 286 | * %cpaste: %cpaste -r repeats the last pasted block. |
|
286 | 287 | The block is assigned to pasted_block even if code |
|
287 | 288 | raises exception. |
|
288 | 289 | |
|
289 | 290 | * Bug #274067 'The code in get_home_dir is broken for py2exe' was |
|
290 | 291 | fixed. |
|
291 | 292 | |
|
292 | 293 | * Many other small bug fixes not listed here by number (see the bzr log for |
|
293 | 294 | more info). |
|
294 | 295 | |
|
295 | 296 | Backwards incompatible changes |
|
296 | 297 | ------------------------------ |
|
297 | 298 | |
|
298 | 299 | * `ipykit` and related files were unmaintained and have been removed. |
|
299 | 300 | |
|
300 | 301 | * The :func:`IPython.genutils.doctest_reload` does not actually call |
|
301 | 302 | `reload(doctest)` anymore, as this was causing many problems with the test |
|
302 | 303 | suite. It still resets `doctest.master` to None. |
|
303 | 304 | |
|
304 | 305 | * While we have not deliberately broken Python 2.4 compatibility, only minor |
|
305 | 306 | testing was done with Python 2.4, while 2.5 and 2.6 were fully tested. But |
|
306 | 307 | if you encounter problems with 2.4, please do report them as bugs. |
|
307 | 308 | |
|
308 | 309 | * The :command:`ipcluster` now requires a mode argument; for example to start a |
|
309 | 310 | cluster on the local machine with 4 engines, you must now type:: |
|
310 | 311 | |
|
311 | 312 | $ ipcluster local -n 4 |
|
312 | 313 | |
|
313 | 314 | * The controller now has a ``-r`` flag that needs to be used if you want to |
|
314 | 315 | reuse existing furl files. Otherwise they are deleted (the default). |
|
315 | 316 | |
|
316 | 317 | * Remove ipy_leo.py. You can use :command:`easy_install ipython-extension` to |
|
317 | 318 | get it. (done to decouple it from ipython release cycle) |
|
318 | 319 |
General Comments 0
You need to be logged in to leave comments.
Login now