Edgewall Software

1.3 | 1.6

Release Notes for Trac 1.4 Jinja Release

Trac 1.4 is the current stable version of Trac.
These notes reflect the final status.


  • Jinja2 is the template engine, providing performance improvements over Genshi. Genshi is still supported until Trac 1.5.1 for rendering plugin templates.
  • Custom navigation items can be added to the main and meta navigation (#11317).
  • TracAdmin convert_db command for converting to a new database backend while preserving all environment data (#12299).
  • Restyled wiki that allows toggling between narrow and full width (#12640).

Maintenance Releases



0 / 4


21 / 21


13 / 13


17 / 17


8 / 8


5 / 5

Tickets with release notes

Milestone: 1.4.4 (17 matches)

Ticket Release Notes

Workaround for ref-count leak due to svn.delta.make_editor().


Allow to use length units in width, height, margin and border arguments of Image macro.


Fix javascript error when viewing non-existing wiki page.


Fix wrong redirect when tracd serves https protocol.


Respect date relative/absolute format for created and modified columns in report view.


Fix lack of "Add" dropdowns in filter form of query page.


Make compatible with utf8mb3 charset since MySQL 8.


Use hmac.compare_digest to compare password hashes.


Fix basic authention when colon characters are used in password.


Adapted PRAGMA table_info() since SQLite 3.37.

  • Fixed IndexError raising when project index template file has no extension.
  • Always enable autoescape for project index template.

Fixed maximum recursion depth error raising when database connection string to MySQL has an invalid parameter.


Fixed notification failure when permission group is used in other than Cc field.


Set executable bit of CGI script files created by deploy command.


Fixed handling of util.html functions and navigation items for LazyProxy objects.


Fixed the exception not logged after starting a response.


Removed unnecessary exception handling from deploy_trac.fcgi template.

Milestone: 1.4.3 (8 matches)

Ticket Release Notes

Removed print to console of upgraded wiki page names on TracAdmin wiki upgrade.


Fixed TICKET_CHG_MILESTONE not restricting ability to change the ticket milestone when TICKET_CHG_MILESTONE defined in [extra-permissions].


PyGIT.cat_file() handles short reads from a pipe.


Fixed authz parsing error shown only on first request after webserver startup or authz file change.


Removed unneeded form token from Roadmap preferences panel.


Fix incorrect redirection via intertrac dispatcher with & characters.


Fixed malformed html generated from unbalanced inline markups within table cell.


Fixed regression leading to Unknown Trac environment type 'Trac Environment Version 1 for CRLF line-ending.

Milestone: 1.4.2 (8 matches)

Ticket Release Notes

Fixed [notification] ticket_subject_template and batch_subject_template cannot begin with # character.


Fixed incorrect ordering of admin panels.


Added autopreview to comment field on batch modify page. Improved styling of batch modify form.


Fixed TracAdmin resync and sync command not clearing line before printing number of revisions cached.


Templates with extension txt (e.g. ticket_notify_email.txt) are shown on the About page in the Interface Customization section.


TracAdmin config remove now removes a section when no option is specified: config remove <section> [<option>].

  • Removed time component from query results for custom field of format date.
  • Only the date/datetime is shown in query results, rather than the decorated text on/at %(datetime).

Ticket comment containing only whitespace, which includes zero-width spaces (ZWSP), will not be saved.

Milestone: 1.4.1 (5 matches)

Ticket Release Notes

Fixed TypeError cloning a ticket that has a time custom field. Fixed Clone button not present when Reply button not present.


Fixed malformed content of RSS feed when Genshi stream filters exist.


Fixed UnicodeDecodeError when searching a ticket link to query view with non-quickjump.


Fixed compatibility issues with Jinja2 version 2.11.


Reject inf and nan for auto preview timeout user preference.

Trac 1.4: Detailed User Visible Changes

Component: admin/console (5 matches)

Ticket Release Notes

Added TracAdmin ticket delete_comment command.


Traceback is not shown when existing resource is added using TracAdmin (e.g. trac-admin $env milestone add <milestone>.


The TracAdmin permission add command is atomic when operating on a list of permissions. If the user already possesses one of the permissions, a warning will be printed and the other permissions in the list will be granted. If one of the permissions raises a TracError (e.g. not a valid action), none of the permissions in the list are granted.

  • Removed repostype and repospath arguments from TracAdmin initenv command.
  • All cached repositories are synchronized on environment creation.
  • The installed wiki pages are not printed to the console when creating an environment with trac-admin initenv. The information is logged at INFO level to $ENV/log/trac.log.
  • The new default is INFO level file logging to $ENV/log/trac.log.

Component: admin/web (2 matches)

Ticket Release Notes

Milestone admin page can be accessed by a user possessing MILESTONE_ADMIN. TICKET_ADMIN is required to set the default ticket milestone and default retarget milestone.


Added help links to documentation on various pages.

Component: attachment (1 match)

Ticket Release Notes

Added TracAdmin attachment move command.

Component: database backend (3 matches)

Ticket Release Notes

Added TracAdmin convert_db command, which migrates a database to the same or new environment while changing the database backend.

  • PostgreSQL version is shown in System Information table of the About Trac and error reporting pages.
  • The minimum PostgreSQL version is now 9.1.0.

PyMySQL is the supported MySQL library, with support dropped for MySQL-python.

Component: general (10 matches)

Ticket Release Notes

Relative font sizes are used in Trac CSS stylesheets.


Added configurable features to the navigation:

  • Entries can be added to the navigation
  • Entries provided by Trac and plugins can be moved the between meta and main navigation
  • New permission attribute for controlling visibility of the entry

Fixed case-insensitive usernames in AuthzPolicy, a regression introduced in Trac 1.2.

  • Added a new permission policy for the ticket system (DefaultTicketPolicy):
    • Authenticated user with TICKET_APPEND or TICKET_CHGPROP can modify description of ticket they reported.
  • Renamed ReadonlyWikiPolicy to DefaultWikiPolicy.
  • Modified LegacyAttachmentPolicy to allow authenticated users to delete their own attachments.
  • Improved wording of ticket edit conflict message.
  • Fixed conflict not highlighted when comment is edited.

The auto preview timeout value can be configured for a session through the User Interface preferences page.


Fixed PostgreSQL server version reported incorrectly for version ≥ 10.


Improved styling of wiki and ticket pages.


Changed Genshi requirement to 0.7 or later.


Fixed "Environment needs to be upgraded" message when an exception is raised from plugin.

Component: i18n (1 match)

Ticket Release Notes

Fixed now button in jQuery timepicker not using session timezone preference.

Component: notification (2 matches)

Ticket Release Notes

Ticket changes can be used to format the email subject template. changes is the dictionary returned from Ticket.get_change.


Permission groups in the CC list are resolved to the users that are members of the group.

Component: query system (2 matches)

Ticket Release Notes



Report sort order is preserved when changing Max items per page.

Component: rendering (1 match)

Ticket Release Notes

The template engine used by Trac is now Jinja2. Genshi templates rendering in plugins will be supported until Trac 1.5.1.

Component: report system (3 matches)

Ticket Release Notes

Default values for TracReports dynamic variables can be specified in the SQL query itself, inside SQL comments.


Report dynamic variables are autocompleted in the preferences form.


Fixed TypeError when report is saved with an empty Query.

Component: roadmap (2 matches)

Ticket Release Notes

Added autopreviews to all textareas that accept wiki markup.


The path /milestone redirects to /roadmap even when a user doesn't have MILESTONE_VIEW.

Component: ticket system (15 matches)

Ticket Release Notes

The TICKET_CHG_MILESTONE action is used internally to grant/deny changing the ticket milestone. DefaultPermissionPolicy grants the action when the user has MILESTONE_VIEW for the milestone. See the cookbook for details on implementing fine-grained access control for changing the ticket milestone.


The tracopt.ticket.clone optional component makes it possible to clone a ticket starting from one of its comment, which can be useful to create "sub-tickets".


Added description field to ticket enums: Priorities, Resolutions, Severities, Ticket Types. The description can be edited on the admin page.


Workflow macro can render files from the repository.


Added max_size attribute to text and textarea custom fields.

  • Ticket preview is disabled when there are no workflow actions.
  • The default reset action is not added if there is no new state in the workflow.

Redirect to the query module after deleting a ticket. If the deleted ticket is in the list of results from the last query, the last query is displayed, otherwise the default query is displayed.

  • Ticket comment edits are validated. ITicketManipulators are called and [ticket] max_comment_size is enforced.
  • Added ticket warnings above the preview.

Empty Comment field is not displayed when viewing diff of a comment.


The version release date is shown in the title of the Version link of the ticket box.


The authenticated user is used as the reporter when cloning a ticket.


The cloned ticket description is quoted when cloning a ticket.


Replaced term deleted in ticket property changes with removed, in order to unify terminology.


TICKET_EDIT_CC is required for editing the CC list as a text field for the new ticket form.


Ticket change entry for default value of custom field is not added to existing tickets when a new custom field is added.

Component: timeline (1 match)

Ticket Release Notes

Timeline Ticket updates filter is enabled by default and the filter value defaults to enabled.

Component: version control (3 matches)

Ticket Release Notes

Repository cannot be added from the admin page if a repository of the same name is already defined in the [repositories] section of trac.ini.


Improve interoperability on Windows with the Windows subsystem for Linux (WSL). Repository paths stored as Windows paths will be converted at runtime to the equivalent POSIX paths if needed.


trac-svn-hook can be configured using the hook script environment configuration, available in Subversion 1.8 and later.

Component: version control/log view (1 match)

Ticket Release Notes
  • Improved robustness of error reporting, fixing some cases in which the error reporting screen would fail to be rendered.
  • [trac] use_chunked_encoding is enabled by default for improved page rendering performance.

Component: web frontend/tracd (1 match)

Ticket Release Notes

Added HTTPS protocol support to tracd.

Component: wiki system (9 matches)

Ticket Release Notes

Respect spacing within inline code style in the wiki


Absolute path to wiki page can be passed in the template argument by prefixing path with / (e.g. /TheTemplate). This is useful for plugins and links that wish to use a template that shouldn't be visible in the templates dropdown of the wiki new page form. Relative paths are still prefixed with PageTemplates/.


Restyled the wiki and allow toggling the page between narrow and full width.


Added comment edit link to wiki diff view.


No Changes is shown in side-by-side wiki diff mode when there are no differences.


Fixed duplicate HTML id attributes on page when more than one wiki toolbar.


TracGuide wiki pages are set readonly when creating an environment.


Added link to wiki diff view on delete confirmation page.


The BR macro takes an optional "clear" parameters, which adds the corresponding CSS styling (i.e. [[br(clear:left)]] generates the HTML <br style="clear: left"/>, same thing for "right" or "clear"). Note that [[br(clear)]] stands for [[br(clear:both)]].

Developer-visible changes

A detailed view of the API changes since 1.2.x can be found in TracDev/ApiChanges/1.4.

Code Name

The 0.11 release was dubbed "Genshi" and 0.12 "Babel", after the names of the Python packages that became closely associated to these Trac versions. Therefore, it seems appropriate to name 1.4 "Jinja".

Last modified 6 weeks ago Last modified on Aug 11, 2023, 6:16:12 AM
Note: See TracWiki for help on using the wiki.