= Release Notes for Trac [milestone:0.10] = == 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 dependency on the Subversion bindings and libraries is no longer mandatory. This will make life far easier for those wanting to use Trac without Subversion. Other version system backends are supported by the way of external plugins. == Improved notification system == ''Placeholder -- manu, can you take care of this one?'' == 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 that are corresponding to a given path. One can easily start navigating such a sequence by following the new ''Last Change'' navigation link present for the currently browsed path. It's even possible to compare two arbitrary paths (at any given revision). This can be useful to check the differences between a tagged version and the ''trunk'', or to review the set of differences between two branches... == InterWiki and InterTrac support == An InterWiki link can be used for referring to a Wiki page located in another Wiki system, and by extension, to any object located in any other Web application, provided a simple URL mapping can be done. An InterTrac link can be seen as a scoped TracLinks. It is used for referring to a Trac resource (Wiki page, changeset, ticket, ...) located in another Trac environment. This makes it easier to work in a TracMultipleProjects setup, and seemlessly refer to resources from one Trac to another. == Use WSGI as web-frontend protocol == ''Placeholder -- cmlenz, your take ;)'' == Better protection against Spam == Trac now has in place the internal hooks necessary to filter out spam content. In order to take benefit from this, the SpamFilter plugin must be installed and enabled. ''We should probably package that plugin separately, but put it right besides the Trac packages, on the TracDownload page.'' == Wiki syntax improvements == Numerous improvements have been made on 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) * More robust parsing and formatting of Wiki lists and robust coupling of lists and quotes * Improve 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 refering 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. == Developer visible changes == === `unicode` everywhere === Trac used to handle text content by using `str` objects, in which bytes where encoding Unicode characters using the UTF-8 encoding. This lead to various problems with most non-western languages, and the decision was made to use the dedicated `unicode` datatype to be able to handle consistently text written in any language. This removed all the problems we had when cutting UTF-8 encoded strings in the middle of a byte sequence for encoding one character. === Better way to programatically generate of HTML fragments === ''Placeholder: introduce briefly the Markup and Element classes''