Edgewall Software

1.3 | 1.5

Release Notes for Trac 1.4 Jinja Release

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

Highlights

  • Switch to Jinja2 template engine for faster and more memory lenient server-side content generation (#12639)
  • Modernized the code to support Python 2.7 idioms (earlier versions are no longer supported) (#12046, #12148, #12558, #12569)
  • Removed lots of backward compatibility APIs from pre-1.0 days; in particular, the database API is now exclusively based on the context managers (#9612, #11901)

Maintenance Releases

Overview

1.4.1

1 / 3

1.4

5 / 5

Tickets with release notes

Milestone: 1.4.1 (1 match)

Ticket Release Notes
#13196

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

Trac 1.4: Detailed User Visible Changes

Component: admin/console (6 matches)

Ticket Release Notes
#10656

Added ticket delete_comment command to TracAdmin.

#11419
  • Traceback is not shown when existing resource is added using TracAdmin (e.g. trac-admin $env milestone add <milestone>.
  • Cached fields returned by TicketSystem.get_ticket_fields were not updated when milestone due or completed dates were changed.
#11502

Added test coverage for TracAdmin help commands.

#12242

The trac-admin 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.

#12891
  • Removed repostype and repospath arguments from trac-admin initenv command.
  • All cached repositories are synchronized on environment creation.
#12966
  • 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 log_type defaults to file rather than none.
  • The log_level defaults to INFO rather than DEBUG.

Component: admin/web (2 matches)

Ticket Release Notes
#11341

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.

#12814

Added help links to documentation on various pages.

Component: attachment (1 match)

Ticket Release Notes
#12870

Added attachment move command to TracAdmin.

Component: database backend (4 matches)

Ticket Release Notes
#12299

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

#12496
  • PostgreSQL version is shown in System Information table.
  • The minimum PostgreSQL version is now 9.1.0.
#12559

Dropped support for PostgreSQL < 9.1.

#12821

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

Component: general (24 matches)

Ticket Release Notes
#633

Use relative font sizes in Trac CSS stylesheets

#10635

5 times speed-up when rendering query results, thanks to the migration from Genshi to Jinja2.

#11317

Made the navigation more configurable.

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

EnvironmentStub logs to a MemoryHandler and a list of (debug_level, message) tuples can be retrieved through the log_messages property.

#11901

Removed deprecated functions, classes, attributes and methods.

#12046

Replaced StringIO.StringIO and cStringIO.StringIO with io.StringIO and io.BytesIO.

#12148

Replaced uses of optparse with argparse throughout codebase.

#12539

Fixed regression in r14888.

#12558

Refactored code to use Popen context manager.

#12569

Refactored code to use open and contextlib.closing context managers.

#12649

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

#12684

Fixed exceptions due to req.args.get unexpectedly returning a list.

#12719
  • 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.
#12824
  • The workflow is upgraded in db21.py rather than ConfigurableTicketWorkflow.upgrade_environment.
  • The wiki-macros directory is removed in db26.py rather than EnvironmentAdmin._do_upgrade.
#12879

Values in owner, reporter and CC property changes are decorated with trac-author-* classes (by Chrome.authorinfo).

#12914
  • Improved wording of ticket edit conflict message.
  • Fixed conflict not highlighted when comment is edited.
#12937

Improved coding style of sample-plugins/workflow.

#12970

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

#13025

Replaced uses of __import__ with importlib.import_module.

#13032

Fixed PostgreSQL server version reported incorrectly for version ≥ 10.

#13039

Fixed TypeError rendering error page with [trac] use_chunked_encoding = enabled.

#13116

Improved styling of wiki and ticket pages.

#13122

Changed Genshi requirement to 0.7 or later.

#13165

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

Component: i18n (5 matches)

Ticket Release Notes
#11825

Leading whitespace (indentation) is removed from extracted messages.

#12348

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

#12862

Fix distutils.log has no attribute warning.

#12869

Improve check_catalog command to check whether same markups are used between msgid and msgstr in translations.

#12874

Fix switch to plain-text/interactive mode in error.html when preferred language is not English.

Component: notification (2 matches)

Ticket Release Notes
#12205

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

#12808

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

Component: query system (3 matches)

Ticket Release Notes
#11723
  • Ticket manipulators are called in batch modify request.
  • TICKET_BATCH_MODIFY grants TICKET_MODIFY.
#12223

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

#12752

Fix a visual glitch in the way the first group in a TracQuery tabular results is presented.

Component: rendering (2 matches)

Ticket Release Notes
#12639

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

#12680

Improved exception trapping and logging when executing ExtensionPoints: IEnvironmentSetupParticipant, INavigationContributor and ITimelineEventProvider.

Component: report system (6 matches)

Ticket Release Notes
#11837

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

#12230

Report dynamic variables are autocompleted in the preferences form.

#12704

Fixed TypeError when report is saved with an empty Query.

#12919

Fix malformed html being rendered when a report has only one column.

#13046

Fix malformed html when the column ended with _ is used in report.

#13134

Fix 'int' is undefined error in report_view.html.

Component: roadmap (2 matches)

Ticket Release Notes
#3776

Added autopreviews to all textareas that accept wiki markup.

#12666

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

Component: ticket system (22 matches)

Ticket Release Notes
#8778

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 CookBook/PermissionPolicies#RestrictChangingTicketMilestone for details on implementing fine-grained access control for changing the ticket milestone.

#10735

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".

#11649

Added description field to ticket enums.

#11865

Workflow macro can render files from the repository.

#12590

Added max_size attribute to text and textarea custom fields.

#12642
  • 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.
#12663

Use setUpModule and tearDownModule in trac.ticket.tests.notification to avoid test failures when running individual test cases rather than all tests in the module.

#12706

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.

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

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

#12794

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

#12807

The allowed ticket owners can be programmatically controlled by subclassing ConfigurableTicketWorkflow and overriding the get_allowed_owner method.

#12822

Use url-regexp for tc.follow() rather than text-regexp to avoid modifying incorrect textarea value by twill.

#12842

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

#12843

The cloned ticket description is quoted when cloning a ticket.

#12876

Remove unnecessary __FORM_TOKEN from ticketdeleter forms.

#12947

The behavior user can edit CC field for new ticket without possessing TICKET_EDIT_CC is implemented in DefaultTicketPolicy. This allows the behavior to be modified by replacing DefaultTicketPolicy.

#13040

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

#13057

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

#13093

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

#13133

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

#13179

Fixed regression in ticket list changes that led to display of empty property change.

Component: timeline (4 matches)

Ticket Release Notes
#12689

Fixed timeline date headings not localized (regression in Jinja2 porting).

#12721

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

#12798
  • Fix typo, __slot__, in trac.util.html.
  • Fix UnicodeEncodeError raised from Element.__str__.
  • Fix TemplateRuntimeError raised in error.html when faulty plugins are more than one.
#13016

Fix broken timeline rss when entry's title has xml special characters.

Component: version control (3 matches)

Ticket Release Notes
#12090

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.

#12653

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.

#12771

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

Component: version control/browser (1 match)

Ticket Release Notes
#12968

Fix unbalanced </p> in preview_file.html.

Component: version control/log view (1 match)

Ticket Release Notes
#13038
  • Improved error reporting.
  • Error is not sent when the response has already started.
  • [trac] use_chunked_encoding is enabled by default and the error page is never sent as iterable content.

Component: web frontend (2 matches)

Ticket Release Notes
#12564

Added test coverage for Request.__repr__.

#13103

Use sha1 rather than md5 for generating ETag header.

Component: web frontend/tracd (1 match)

Ticket Release Notes
#12611

Added support for HTTPS protocol to tracd (TracStandalone).

Component: wiki system (15 matches)

Ticket Release Notes
#9487

Extracted variables in WikiModule for the start page and title index page, so they can be overridden by a plugin.

#10454

Respect spacing within inline code style in the wiki

#12265

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/.

#12640

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

#12716

Added comment edit link to wiki diff view.

#12738

Fixed TypeError when deleting wiki page with more than one version.

#12773

Avoid extra spaces in each title of diff block.

#12784

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

#12847

Fix TracHTMLSanitizer raising exceptions and decoding refs twice in title attributes.

#12850

Fix wrong msgid_plural in wiki_delete.html.

#12873

Fixed duplicate ids on page when more than one wiki toolbar.

#12899

TracGuide wiki pages are set readonly when creating an environment.

#13056

Macros can be hidden from the MacroList index.

#13069

Added link to wiki diff view on delete confirmation page.

#13117

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 7 weeks ago Last modified on Aug 29, 2019, 3:51:51 AM
Note: See TracWiki for help on using the wiki.