= Release Notes for Trac [milestone:0.11] ''Genshi'' Release = [[PageOutline(2-3)]] This page documents the main features for 0.11. [[br]] See ChangeLog for the extra features added in later minor releases (0.11.x series). == Highlights == * New template engine for generating content ([http://genshi.edgewall.org Genshi]) * New configurable [TracWorkflow workflow] in the ticket subsystem * Finer-grained control of [TracDev/SecurityBranch permissions] * Support for [http://pygments.pocoo.org Pygments] as the default syntax highlighter * Improved repository browser ("blame" support, dynamic in-place expansion of folders) * Improved user preferences subsystem, among which the possibility for any user to select their time zone and disable access keys * The WebAdmin plugin is now an integral part of Trac == Detailed User Visible Changes == === User Preferences === A new user preference module has been added. It presents by default several panels and plugins can easily add their own user settings there: * General (name and e-mail information) * Date & Time (timezone) * [TracKeys Keyboard Shortcuts] (enable/disable) * Pygments Theme * Advanced (restore session) Most significantly, support for setting the time zone has been added to the ''Date & Time'' panel. Each user can select which time zone they want timestamps to be presented in. If [http://pytz.sf.net pytz] is installed a complete list of time zones will be available, otherwise Trac will fall back on a shorter list from an internal time zone implementation. === Wiki === * Usability improvements: - possibility to review changes before saving a new version of a page - basic handling of conflicts in case of concurrent edits - Restored direct link to History and revert to an Index link, from where it's easy to switch between the ''Index by Title'' and ''Index by Date'' - The `[[PageOutline]]` macro now works as expected in preview mode * Wiki syntax improvements: - most TracLinks now accept trailing arguments (?...) and targets (#...) - more intuitive relative links (`[.. parent page]`, `[./OtherPage sibling page]`, `[/WikiStart toplevel page]`) - relative links like `[#anchor see this section]` always link to the proper originating page or ticket, irrelevant from where the wiki text appears (e.g. in the timeline) - new `#!div` wiki processor and new `[[span]]` macro added. The former can be used to encapsulate an arbitrary block of wiki markup in a
element. The second can be used to encapsulate an arbitrary fragment of wiki markup in a element. Both div and span can be provided with attributes like `class=...` or `style="..."`. - `[[Image]]` macro can now "link" to an arbitrary TracLinks instead of the image's attachment itself - InterTrac prefixes written alone can be used to target the default page in the remote Trac, e.g. `[TracHacks: the site for contributing Trac plugins]` - `trac:` InterTrac prefix is known by default and refers to the "Trac for Trac" === Ticket System === ==== Ticket Editing ==== * The ticket workflow is now configurable, see TracWorkflow * Improved preview, showing the comment preview at the top of the page, so one can see at the same time the preview of the comment and the preview of the fields and the description in the ticket box * It is now possible to examine the changes made to the ticket description and textual custom fields * The display of field changes has been improved and is now more compact * Major usability enhancement for the CC: field * Like for the concurrent wiki edits, a conflict due to simultaneous editing of a ticket by two or more users lead to warnings, minimizing the risk for the user to lose his changes * Syntax for linking to arbitrary ticket comments is now more intuitive: use `comment:3:ticket:123` for linking to the 3^rd^ comment of ticket !#123. Alternatively, you can write: `ticket:123#comment:3` (but ''not'' `#123#comment:3`!) ==== Roadmap and Milestone ==== * The Milestones can now have attachments * If needed, it is possible to configure additional ticket groups to be shown in the milestone progress bar (according to the status). For even more complex needs, a plugin can now take over the way the tickets and stats are collected. ==== Reports and Custom Queries ==== * Improved custom queries: - columns can now be selected - possibility to save custom queries as reports - possibility to configure the default custom query, both for anonymous and authenticated users * the `[[TicketQuery]]` now supports a `format=table` option, which will produce the usual tabular result of a custom query, see the [WikiMacros#TicketQuery-macro macro documentation]. * the custom query can list a fixed set of tickets, either using the `[[TicketQuery]]` macro or `query:` links === Repository Browser === * "Blame" support (annotation of every line with the changeset which last modified them) * Dynamically expandable folders for Javascript enabled browsers * "Quickjump" navigation menu for easily going to branches and tags * Alternative text view on diffs for Javascript enabled browsers * Significantly improved patch renderer (supports extended diff formats) * Support for `svn:externals` and other properties. Improved display of property changes. In addition, support for custom properties can be added through plugins. * Add the ability to highlight arbitrary ranges of lines in the source code, using the appropriate [TracLinks#source:links source TracLinks] * Add the ability to access to the raw content of files inside the repository using [TracLinks#export:links export TracLinks]. * Revision log display is more compact and allows selecting a diff for the whole range of specified revisions * Changeset display of list of files is more compact as well and shows the main location where the changes happened. That can also be done in the timeline by setting the `[timeline] changeset_show_files` configuration entry to `location` instead of a number. === General === ==== [SetupTools Setuptools] is now used for the packaging ==== This means you'll be able to just do {{{ easy_install Trac }}} once we've made the release. It also means that a number of things had to be changed to make this work correctly. In particular, Trac no longer implicitly assumes nor installs global data in the `$prefix/share/trac`. Instead, you'll have to modify the configuration of your project environments to explicitly “inherit” a global configuration in [TracIni trac.ini], for example: {{{ [inherit] file = /etc/trac/trac.ini }}} This will load the configuration from the `/etc/trac/trac.ini` file, while of course allowing to override any global settings in the environment's configuration. In that global configuration, you can specify shared directories for templates and plugins, e.g.: {{{ [inherit] plugins_dir = /etc/trac/plugins/ templates_dir = /etc/trac/templates/ }}} ==== Improved Syntax Highlighting ==== Trac can now use the ''[http://pygments.pocoo.org Pygments]'' syntax highlighter out-of-the-box. This is a much nicer syntax highlighter than the one previously supported (SilverCity, Enscript and PHP). ==== Lots of other minor improvements ==== - all configuration changes made to the TracIni files are now taken into account immediately, without the need for a server restart - e-mail obfuscation everywhere turned on by default (can be disabled project wide or on a per-user basis - possibility to configure the navigation bars (see TracNavigation) - Timeline improvements: - paging support - remember user settings - more configuration settings for tweaking the display of the events (see TracIni#timeline-section) - Search improvements: - [WikiPedia:OpenSearch] support === Caveats === - It is strongly advised to set the `[trac] base_url` setting for generating correct URLs outside the context of a user request. [[br]] However, contrary to what happened for a while in 0.10.5dev, this setting won't be used for the redirects, unless Trac is explicitly told to do so, with the `use_base_url_for_redirect` setting. - The `[trac] templates_dir` setting is no longer used by Trac, and we recommend that it is removed from any configs. There is now a new `[inherit] templates_dir` setting for similar functionality. - The support for MySQL as a database backend has '''not''' improved significantly in any ways... It is still considered to be experimental for 0.11. YMMV. - The usual trick of wrapping a piece of wiki text inside a
for advanced custom formatting can't be done anymore using the `#!html` WikiProcessor, as that one can only produce well-formed HTML fragments. Instead, one must use the new `#!div` Wiki processor for that. ==== Wiki Macros ==== The change in templating engines necessitated a change in wiki macros. The !HelloWorld and Timestamp macros which are distributed with trac will not work as released. For examples of new style macros, see some of the macros which have already been ported at MacroBazaar or ports of !HelloWorld and Timestamp attached to #5274. == Developer-visible changes == Many changes happened under the hood, among them: - Trac now uses the [http://genshi.edgewall.org Genshi] template engine instead of ClearSilver. Plugins using the latter will still be supported in Trac 0.11, but probably not longer. - Trac used to handle time informations as `int` timestamps. Now we're using `datetime` objects. A detailed view of the API changes since 0.10.x can be found in ["TracDev/ApiChanges/0.11"]. == 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 making 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/