Edgewall Software

1.4 | 1.8

Release Notes for Trac 1.6 Py3 Release

Trac 1.6 is the latest stable version of Trac.
These notes reflect the final status.


  • Dropped support for Python 2.7. Python 3.5+ is supported (#12130).

Maintenance Releases



9 / 34

Tickets with release notes

Milestone: 1.6.1 (9 matches)

Ticket Release Notes

Allow to use Babel 2.10+ and unpin Babel<2.10 of requirements.


Fixed JavaScript error raised from ticket view when no workflow actions defined.


Fixed an error while rendering diff of a changeset if [trac] use_chunked_encoding disabled.


Removed workaround for Internet Explorer when post and redirect with hash.

  • Removed checking python -V because of checking trac-admin -v.
  • Use python3 rather than python in shebang.

Use sorted() instead of ORDER BY session.sid in order to avoid filesort caused by indexing only a prefix of column values on MySQL.


Fixed a TypeError raised while sending sql format of a report.


Fixed incorrectly showing batch modify feature even for users without TICKET_BATCH_MODIFY.


Fixed IndexError raised from GitRepository.normalize_rev('FFFF') if the repository has 5,000+ revisions.

Development Releases



11 / 11


22 / 22


11 / 11


5 / 5


11 / 11

Tickets with release notes

Milestone: 1.6 (5 matches)

Ticket Release Notes

Write data as binary to stdout in CGI frontend.

  • Use multipart module instead of deprecated cgi since Python 3.11 if the multipart available

Use datetime.fromtimestamp(..., utc) instead of deprecated datetime.utcfromtimestamp to avoid deprecation messages since Python 3.12.


Adapt to onexc of shutil.rmtree since Python 3.12 to avoid deprecation warnings.


Adapted functional tests to Selenium 4 and later.

Milestone: 1.5.4 (18 matches)

Ticket Release Notes

Fix use of reload() which has been removed in Python 3.0, when mod_python is used.


Fix internal server error when uploading files using fcgi.


Fixed SEGV raised from SQLite cursor with Python 3.11.


Make fcgi frontend compatible with Python 3.


Make compatible with Jinja2 3 and MarkupSafe 2.1.0, and add workaround for AssertionError when Jinja2 3.0.0 is used.


Fixed incorrect rendering of Git version in System Information table.


Fix incorrect repository_dir metadata for Subversion repository.


Fixed wrong content_type for a file in Subversion repository when svn:mime-type is not set.

  • Allow bcrypt, sha-256 and sha-512 password hashes in htpasswd file.
  • Added -t method option to contrib/htpasswd.py.

Fixed TypeError is raised from progress_bar.html when all intervals are 0%.


Fixed incompatible with Jinja2 3.1.


Fixed message extraction with Python3, Babel and Jinja2 3+.


Perfer text/* type in order to prevent rendering as an image for *.c filename with Pygments 2.11+.


Fixed wrong pagination links in search page.


Upgraded the bundled jQuery to version 3.6.3.


Fixed TypeError raised from changeset view when non-default property renderer is used and the quality is 1.


Use importlib rather than deprecated imp to load *.py plugin files.


Fixed generating apidoc with Sphinx 5 and adapt to Python 3.

Milestone: 1.5.3 (9 matches)

Ticket Release Notes

Add workaround for SmtpEmailSender with unicode credentials.


ConfigurationError will be raised when there are duplicate sections and options in trac.ini.


Fixed TypeError when CommitTicketReference macro or wiki processor is used on the New Ticket form.


Fixed -d/--daemonize failure for tracd.


Fix global shutdown crashes while creating new database connection.


Fix double-destroying memory pool error from tracd server on functional-test


The minimum required setuptools version is 30.3.


Workaround for test failures due to changing locale on call of tidylib.tidy_document.


Avoid crashing when apr memory pools (parent and child) are destroyed by cyclic garbage collector.

Milestone: 1.5.2 (3 matches)

Ticket Release Notes

Changed Python compatibility to 3.5+.


Fixed slow repository sync command for cached repository with many commits.


Bump setuptools requirement from >= 0.6> 5.6.

Milestone: 1.5.1 (5 matches)

Ticket Release Notes

Open tickets can be retargeted from the Ticket Admin > Milestones page.


Added View Milestone contextual navigation to the Admin milestone edit page.


The default value is shown on the preferences page in the label of the default selection of various Select inputs.


Added option --no-default-data to trac-admin initenv, for creating an empty environment without any reports, permission groups or sample data (components, milestones, enums).


The [query] ticketlink_query value can be uniquely specified for each custom field using the ticketlink_query option in the [ticket-custom] section. This applies to all custom field types for which [query] ticketlink_query would be applied, which excludes text (format: plain and wiki), textarea and time fields.

Developer-visible changes

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

Code Name

The 0.11 release was dubbed "Genshi", 0.12 "Babel" and 1.4 "Jinja2" after the names of the Python packages that became closely associated to these Trac versions. The most significant change in 1.6 is Python 3 support, so it seems appropriate to name 1.6 "Py3".

Last modified 7 months ago Last modified on Sep 23, 2023, 11:42:36 PM
Note: See TracWiki for help on using the wiki.