Trac / RELEASE

Release Notes for Trac 0.10 'Zengia'
====================================
September 28, 2006

We're happy to announce the Trac 0.10rc1 release, available from:

  http://trac.edgewall.org/wiki/TracDownload

For questions, comments and user discussions, please use the Trac mailing
list. List information, subscription and archive available at:

  http://trac.edgewall.org/wiki/MailingList

User visible changes
====================

Advanced diff support
---------------------
The TracRevisionLog view can now be used to select two arbitrary
revisions of a given path in the repository and see the differences
between them, in the familiar TracChangeset view.

A related change is the possibility to navigate through a sequence of
restricted changesets. A restricted changeset is the subset of changes
within a changeset inside a given directory. One can easily start
navigating such a sequence by following the new Last Change navigation
link present for the currently browsed path.

It's now also possible to compare two arbitrary paths at any revision.
This can be used to check the differences between a tagged version and
trunk, or to review the set of differences between two branches.

Other enhancements have been made to the version control subsystem, in
particular the support of scoped repositories has been improved. You
should therefore perform a trac-admin resync operation.

InterWiki and InterTrac support
-------------------------------
An InterWiki link can be used to refer to a Wiki page located on another
Wiki system, and by extension, to any object located on any other Web
site, as long as simple URL mapping is possible.

An InterTrac link can be used for referring to a Trac resource (Wiki
page, changeset, ticket, ...) on an other Trac environment. This makes it
easier to work with multiple separate projects, and seamlessly refer to
resources from one Trac to another.

Improved modularity
-------------------
Trac now supports database and version control backends as third-party
plugins.

It is now easier to add support for new database backends. In addition to
the already existing support for SQLite and PostgreSQL, Trac now features
experimental support for the MySQL database.

As for the version control systems, Trac still features best of breed
Subversion support, but the Subversion bindings and libraries are no
longer mandatory for using Trac itself. Other version control systems can
be supported by external plugins.

Improved notification system
----------------------------
The encoding for emails sent out by Trac can now be configured. This may
decrease email size and can avoid useless encoding for western languages
that make some touchy SMTP servers bounce the notifications.

Support for local network installations using local email addresses
(addresses without a domain name) and a configurable default domain name
has been added, as well as support for both visible and blind carbon
copies.

Support for spam protection
---------------------------
Trac now provides extension point that allow plugins to intercept content
submissions, which can be used to filter out spam. One plugin that does
this is the SpamFilter plugin, which is available as a separate package:

  http://trac.edgewall.org/wiki/SpamFilter

This plugin implements a number of different strategies for testing
content, such as regular expression matching, IP blacklisting, and
Akismet queries.

WSGI used as web server protocol
--------------------------------
Trac now uses WSGI (the "Python Web Server Gateway Interface")
internally. While Trac continues to provide builtin support for CGI,
FastCGI and mod_python, as well as the standalone server "tracd", you can
now take advantage of the WSGI support to use Trac in other setups, such
as Twisted, Paste, SCGI, or ISAPI.

Lots of minor improvements
--------------------------
To the Wiki syntax

Numerous improvements have been made in the WikiFormatting syntax:

 * Headings can optionally be given explicit id.
 * MoinMoin ["internal free link"] syntax is now supported.
 * Introduced citation syntax for the Wiki (e-mail style).
 * Added more robust parsing and formatting of Wiki lists and robust
   coupling of lists and quotes.
 * Improved the way external links are displayed.
 * Lots of new ways to refer to specific repository views (diff:from//
   to, log:, [x:y], rx:y)
 * htdocs:, useful for referring to local resources in TracStandalone
 * MoinMoin-style syntax for description lists
 * Removed support for direct embedding of images using links: use the
   [[Image]] macro instead.

To the Wiki subsystem

 * Quicker access to last change on a page and better navigation in the
   page history
 * Preview the change comment before saving a change and display the
   change comment when viewing a specific version of a page. This
   hopefully will encourage authors to document their changes!

To the Ticket subsystem

 * Possibility to Reply to ticket description and changes
 * Export individual ticket data in CSV or RSS format

Developer-visible changes
=========================

unicode everywhere
------------------
Trac used to handle text content by using str objects, in which Unicode
characters were represented using UTF-8 encoding. This lead to various
problems with most non-western languages. We now use the dedicated
unicode datatype to consistently handle text written in any language. See
also TracDev/UnicodeGuidelines.

Better way to programmatically generate HTML fragments
------------------------------------------------------
Trac now provides utility code to programmatically generate HTML
snippets. This can be used in the various places where Trac expects
plugins to return small fragments of HTML bypassing the template system.
These utilities can be found in the trac.util.html module.

Unit test framework for email notifications
-------------------------------------------
Email notifications can now be validated; unit tests include a private
SMTP server and helper methods to extract and decode email data.

Internal API changes
--------------------
A detailed view of the API changes since 0.9.x can be found in TracDev/
ApiChanges/0.10.

Acknowledgements
================

Many thanks to the growing number of people who have, and continue to,
support the project. Also our thanks to all people providing feedback and
bug reports that helps us make Trac better, easier to use and more
effective.

Without your invaluable help, Trac would not evolve. Thank you all.

Finally, we offer hope that Trac will prove itself useful to like-minded
programmers around the world, and that this release will prove an
improvement over the last version.

Please let us know. :-)

/The Trac Team http://trac.edgewall.org/
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.