-----BEGIN PGP SIGNED MESSAGE-----
The Bazaar team is happy to announce availability of a new releases of
the bzr adaptive version control system. Bazaar is part of the GNU
The third release of Bazaar 2.0 (2.0.3) has a small handful of bugfixes.
As expected, this has no internal or external compatibility changes
versus 2.0.2 (or 2.0.0).
The fourth beta release in the 2.1 series brings with it a significant
number of bugfixes (~20). The test suite is once again (finally) "green"
on Windows, and should remain that way for future releases. There are a
few performance related updates (faster upgrade and log), and several UI
tweaks. There has also been a significant number of tweaks to the
runtime documentation. 2.1.0b4 include everything from the 2.0.3 release.
It is expected that the next release in the 2.1 series will be 2.1.0rc1,
which means it will then enter into its stable bugfix-only phase (and
2.2.0b1 will be opened for development.)
Thanks to everyone who contributed patches, suggestions, and feedback.
Both the source and platform specific binaries can be downloaded from
As always, all releases are available from
The full changelog for 2.1.0b4 and 2.0.3 follows:
:Codename: san francisco airport
The fourth beta release in the 2.1 series brings with it a significant
number of bugfixes (~20). The test suite is once again (finally)
"green" on Windows, and should remain that way for future releases.
There are a few performance related updates (faster upgrade and log),
and several UI tweaks. There has also been a significant number of
tweaks to the runtime documentation. 2.1.0b4 include everything from
the 2.0.3 release.
* The BZR_SSH environmental variable may now be set to the path of a
secure shell client. If currently set to the value ``ssh`` it will
now guess the vendor of the program with that name, to restore the
old behaviour that indicated the SSH Corporation client use
``sshcorp`` instead as the magic string.
(Martin <gzlist(a)googlemail.com>, #176292)
* ``bzr commit`` now has a ``--commit-time`` option.
(Alexander Sack, #459276)
* ``-Dhpss`` now increases logging done when run on the bzr server,
similarly to how it works on the client. (John Arbash Meinel)
* New option ``bzr unshelve --keep`` applies the changes and leaves
them on the shelf. (Martin Pool, Oscar Fuentes, #492091)
* The ``BZR_COLUMNS`` envrionment variable can be set to force bzr to
respect a given terminal width. This can be useful when output is
redirected or in obscure cases where the default value is not
appropriate. Pagers can use it to get a better control of the line
lengths. (Vincent Ladeuil)
* After renaming a file, the dirstate could accidentally reference
``source\\path`` rather than ``source/path`` on Windows. This might
be a source of some dirstate-related failures. (John Arbash Meinel)
* ``bzr commit`` now detects commit messages that looks like file
names and issues a warning. (Gioele Barabucci, #73073)
* ``bzr ignore /`` no longer causes an IndexError.
(Gorder Tyler, #456036)
* ``bzr log -n0 -rN`` should not return revisions beyond its merged
revisions. (#325618, #484109, Marius Kruger)
* ``bzr merge --weave`` and ``--lca`` will now create ``.BASE`` files
for files with conflicts (similar to ``--merge3``). The contents of the
file is a synthesis of all bases used for the merge.
(John Arbash Meinel, #40412)
* ``bzr mv --quiet`` really is quiet now. (Gordon Tyler, #271790)
* ``bzr serve`` is more clear about the risk of supplying
--allow-writes. (Robert Collins, #84659)
* ``bzr serve --quiet`` really is quiet now. (Gordon Tyler, #252834)
* Fix bug with redirected URLs over authenticated HTTP.
(Glen Mailer, Neil Martinsen-Burrell, Vincent Ladeuil, #395714)
* Interactive merge doesn't leave branch locks behind.
* Lots of bugfixes for the test suite on Windows. We should once again
have a test suite with no failures on Windows. (John Arbash Meinel)
* ``osutils.terminal_width()`` obeys the BZR_COLUMNS environment
variable but returns None if the terminal is not a tty (when output
is redirected for example). Also fixes its usage under OSes that
doesn't provide termios.TIOCGWINSZ. Make sure the corresponding
tests runs on windows too.
(Joke de Buhr, Vincent Ladeuil, #353370, #62539)
(John Arbash Meinel, Vincent Ladeuil, #492561)
* Terminate ssh subprocesses when no references to them remain, fixing
subprocess and file descriptor leaks. (Andrew Bennetts, #426662)
* The ``--hardlink`` option of ``bzr branch`` and ``bzr checkout`` now
works for 2a format trees. Only files unaffected by content filters
will be hardlinked. (Andrew Bennetts, #408193)
* The new glob expansion on Windows would replace all ``\`` characters
with ``/`` even if it there wasn't a glob to expand, the arg was
quoted, etc. Now only change slashes if there is something being
glob expanded. (John Arbash Meinel, #485771)
* Use our faster ``KnownGraph.heads()`` functionality when computing
the new rich-root heads. This can cut a conversion time in half
(mysql from 13.5h => 6.2h) (John Arbash Meinel, #487632)
* When launching a external diff tool via bzr diff --using, temporary
files are no longer created, rather, the path to the file in the
working tree is passed to the external diff tool. This allows the
file to be edited if the diff tool provides for this.
(Gary van der Merwe, #490738)
* The launchpad-open command can now be used from a subdirectory of a
branch, not just from the root of the branch. (Neil
* ``bzr log`` is now faster. (Ian Clatworthy)
* ``bzr update`` provides feedback on which branch it is up to date
with. (Neil Martinsen-Burrell)
* ``bzr upgrade`` from pre-2a to 2a can be significantly faster (4x).
For details see the xml8 patch and heads() improvements.
(John Arbash Meinel)
* ``bzrlib.urlutils.local_path_from_url`` now accepts
'file://localhost/' as well as 'file:///' URLs on POSIX. (Michael
* The progress bar now shows only a spinner and per-operation counts,
not an overall progress bar. The previous bar was often not
correlated with real overall operation progress, either because the
operations take nonlinear time, or because at the start of the
operation Bazaar couldn't estimate how much work there was to do.
* Lots of documentation tweaks for inline help topics and command help
* ``bzrlib.textui`` (vestigial module) removed. (Martin Pool)
* New test Feature: ``ModuleAvailableFeature``. It is designed to make
it easier to handle what tests you want to run based on what modules
can be imported. (Rather than lots of custom-implemented features
that were basically copy-and-pasted.) (John Arbash Meinel)
* ``osutils.timer_func()`` can be used to get either ``time.time()``
or ``time.clock()`` when you want to do performance timing.
``time.time()`` is limited to 15ms resolution on Windows, but
``time.clock()`` gives CPU and not wall-clock time on other
platforms. (John Arbash Meinel)
* Several code paths that were calling ``Transport.get().read()`` have
been changed to the equalivent ``Transport.get_bytes()``. The main
difference is that the latter will explicitly call ``file.close()``,
rather than expecting the garbage collector to handle it. This helps
with some race conditions on Windows during the test suite and sftp
tests. (John Arbash Meinel)
* TestCaseWithMemoryTransport no longer sets $HOME and $BZR_HOME to
unicode strings. (Michael Hudson, #464174)
:Codename: little italy
The third stable release of Bazaar has a small handful of bugfixes. As
expected, this has no internal or external compatibility changes
versus 2.0.2 (or 2.0.0).
* ``bzr push --use-existing-dir`` no longer crashes if the directory
exists but contains an invalid ``.bzr`` directory. (Andrew
* Content filters are now applied correctly after pull, merge and
switch. (Ian Clatworthy, #385879)
* Fix a potential segfault in the groupcompress hash map handling
code. When inserting new entries, if the final hash bucket was
empty, we could end up trying to access if ``(last_entry+1)->ptr ==
NULL``. (John Arbash Meinel, #490228)
* Improve "Binary files differ" hunk handling.
(Aaron Bentley, #436325)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----
Don't miss your chance to attend our upcoming Florida
Python training class next month. This 3-day public
class is being held January 19-21, in Sarasota, Florida.
It is open to both individual and group enrollments.
For more details on the class, as well as registration
instructions, please visit the class web page:
If you are unable to attend in January, our next
Sarasota class is already scheduled for April 6-8.
Thanks, and we hope to see you at a Python class in
sunny and warm Florida soon.
--Mark Lutz at Python Training Services
Python Concurrency Workshop, 2nd Edition
with David Beazley, author "Python Essential Reference"
January 14-15, 2010
Last June, you might have caught my "mindblowing" talk on the Python
GIL (http://www.dabeaz.com/python/GIL.pdf). However, did you see the
other eight hours of material on threads, multiprocessing, distributed
computing, coroutines, and more? Probably not unless you were at my
"Concurrency Workshop" the month before.
I'm pleased to announce that that the Concurrency Workshop is back for
another round and is better than ever. If you have been programming
Python for awhile and want to take your skills up a notch, I think
this may be of interest. Basically, we're going to take a in-depth
look at concurrent programming idioms and library modules. Topics
will include such things as threads, message passing, the
multiprocessing library, distributed computing idioms, coroutines,
asynchronous I/O, and other matters with an eye towards writing
programs that can run on multiple CPU cores or clusters. A major
theme of the workshop is to explore and understand different
programming techniques, their associated performance properties, and
other tradeoffs. You'll definitely walk away with new insight and a
better understanding of how different parts of Python work under the
covers. Likewise, I'm hoping to gain new knowledge from your
The workshop is strictly limited to six attendees. More details are
available at the above URL.
Please feel free to contact me with further questions.
I'm glad to inform you about release of OpenOpt 0.27 (numerical
optimization framework), FuncDesigner 0.17 (CAS with automatic
differentiation, convenient modelling of linear/nonlinear functions,
can use convenient modelling for some OpenOpt optimization problems
and systems of linear/nonlinear equations, possibly sparse or
overdetermined), DerApproximator 0.17 (finite-differences derivatives
approximation, get or check user-supplied).
These packages are written in Python language + NumPy; license BSD
allows to use it in both free and closed-code soft
See changelog for details: http://openopt.org/Changelog
CodeInvestigator 0.20.0 was released on December 16.
Changes: UI changes.
You need Python 2.6 and Firefox for CodeInvestigator.
CodeInvestigator is a tracing tool for Python programs.
Running a program through CodeInvestigator creates a recording.
Program flow, function calls, variable values and conditions are all
stored for every line the program executes.
The recording is then viewed with an interface consisting of the
code. The code can be clicked: A clicked variable displays its
a clicked loop displays its iterations.
You read code, and have at your disposal all the run time details of
that code. A computerized desk check tool and another way to learn
about your program.
python-graph is a library for working with graphs in Python.
This software provides a suitable data structure for representing
graphs and a whole set of important algorithms.
The code is appropriately documented and API reference is generated
automatically by epydoc.
Provided features and algorithms:
* Support for directed, undirected, weighted and non-weighted graphs
* Support for hypergraphs
* Canonical operations
* XML import and export
* DOT-Language output (for usage with Graphviz)
* Random graph generation
* Accessibility (transitive closure)
* Breadth-first search
* Critical path algorithm
* Cut-vertex and cut-edge identification
* Depth-first search
* Heuristic search (A* algorithm)
* Identification of connected components
* Minimum spanning tree (Prim's algorithm)
* Mutual-accessibility (strongly connected components)
* Shortest path search (Dijkstra's algorithm)
* Topological sorting
* Transitive edge identification
The 1.6.x series is our refactoring series. Along the next releases,
we'll change the API so we can better prepare the codebase to new
features. If you want a softer, directed transition, upgrade your code
to every release in the 1.6.x series. On the other hand, if you'd
rather fix everything at once, you can wait for 1.7.0.
This release adds Python 3.x compatibility.
(tar.bz2, zip and sdist packages are available.)
If you have easy_install on your system, you can simply run:
# easy_install python-graph-core
And, optionally, for Dot-Language support:
# easy_install python-graph-dot
A new release of the Python web framework Karrigell has been
published. The main changes are :
- improvements to the module HTMLTags (HTML generator) : minor bug
fixes ; new syntax to build the DOM tree top-down, using the <=
operator ; methods for SELECT tags, checkboxes and radio buttons
- extension mechanism for templating systems and a new "Karrigell
Templates" (KT) template system (written by Jim Eggleston)
- script to build Windows executables for an application
- better resistance to bad HTTP requests and to unknown host names for
the server (reports by Nicolas Pinault and "renofr")
- better redirection policies to avoid exposure of index file names
(suggested by "ek_wals")
- change location of script caches (written by Nicolas Pinault)
- minor bug fixes : problem with url unquoting, management of forms
fields with the same name, valid path for session cookie
- the default folder for the Windows installer is c:\(folder name)
instead of Program Files (Jim reported performance issues on Windows
Karrigell home page : http://karrigell.sourceforge.net
Discussion group : http://groups.google.com/group/karrigell
On behalf of the Distribute team, I am happy to release Distribute 0.6.9.
== What is Distribute ? ==
Distribute is a fork of the Setuptools project.
Distribute is intended to replace Setuptools as the standard method
for working with Python module distributions.
For those who may wonder why they should switch to Distribute over
Setuptools, it’s quite simple:
* Distribute is a drop-in replacement for Setuptools
* The code is actively maintained, and has over 10 commiters
* Distribute offers Python 3 support !
See : http://packages.python.org/distribute/
== Important changes ==
* Distribute now works fine under some versions of MacPort Python that
have a bug with the platform.mac_ver() API
* Fixed easy_install (the command) behavior w.r.t. a local setup.cfg
* Now Sandbox can allow writing in some specific files (by default :
== Detailed Changes ==
* Issue 90: unknown setuptools version can be added in the working set
* Issue 87: setupt.py doesn't try to convert distribute_setup.py anymore
Initial Patch by arfrever.
* Issue 89: added a side bar with a download link to the doc.
* Issue 86: fixed missing sentence in pkg_resources doc.
* Added a nicer error message when a DistributionNotFound is raised.
* Issue 80: test_develop now works with Python 3.1
* Issue 93: upload_docs now works if there is an empty sub-directory.
* Issue 70: exec bit on non-exec files
* Issue 99: now the standalone easy_install command doesn't uses a
"setup.cfg" if any exists in the working directory. It will use it
only if triggered by ``install_requires`` from a setup.py call
(install, develop, etc).
* Issue 101: Allowing ``os.devnull`` in Sandbox
* Issue 92: Fixed the "no eggs" found error with MacPort
* Issue 103: test_get_script_header_jython_workaround not run
anymore under py3 with C or POSIX local. Contributed by Arfrever.
* Issue 104: remvoved the assertion when the installation fails,
with a nicer message for the end user.
* Issue 100: making sure there's no SandboxViolation when
the setup script patches setuptools.
Tarek Ziadé | http://ziade.org