Edgewall Software

Version 7 (modified by Ryan J Ollos, 7 years ago) ( diff )

It will be useful to document versions of Apache and the entrypoint modules that are discussed in the documentation. Even if in cases that we don't directly support a version, knowing the versions from the most recent platforms helpful when preparing the documentation. We should consider documenting other web servers, such as Nginx.

1.2 | 1.3.2

Documenting API changes since 1.2.x

The next stable version of Trac will be named 1.4 and will contain the cumulative changes made in the successive 1.2.x releases.

These notes reflect the current status for 1.3.1, in trunk.

Proposed changes are prefixed with an OPEN mark and the paragraph is written in italics.


  1. Prerequisites
    1. Modified Dependencies
      1. jQuery and jQuery UI (bundled)
      2. Babel (optional)
      3. Genshi (mandatory)
      4. Databases
      5. Other
      6. Compatible Distros
    2. Deprecated Modules Removed
    3. New Dependencies
  2. Detailed List of Developer Visible Changes
  3. Other Modifications made to the 1.2 API
    1. Uncategorized Changes
  4. New in the 1.3.1 API


Only Python version 2.7 is supported.

The following language features introduced in Python 2.7 can now be used and the related clean-ups can be done:

  • OrderedDict
  • Set literals
  • Set and dictionary comprehensions

TODO List supported browsers. Consider using jQuery's list.

Modified Dependencies

See gmessage:trac-dev:nkMUY_8ILF0/rg1rsArDIewJ for a discussion about what dependencies we'll support in Trac 1.4.

jQuery and jQuery UI (bundled)

Babel (optional)

Genshi (mandatory)


SQLite ≥ 3.0
PostgreSQL ≥ 8.0
MySQL / MariaDB ≥ 5.0
Database Bindings
pysqlite ≥ 2.4.1 (version provided by Python 2.6), avoid 2.5.2 - 2.5.4
psycopg2 ≥ 2.0
MySQLdb ≥ 1.2.2


Package Req or Opt? Version supported
SetupTools Required ≥ 0.6, 5.4 - 5.6 are not recommended.
Git Optional ≥ 1.5.6
Subversion Optional ≥ 1.6
ConfigObj Optional Unspecified. Let's consider enforcing a minimum version, such as ≥ 5.0. ConfigObj 5.0 released on 2014-02-15
DocUtils Optional ≥ 0.3.9
Textile Optional ≥ 2.0
Pygments Optional ≥ 0.6. Let's consider bumping the requirement to at least 1.0, released in 2008

Compatible Distros

The supported dependencies were determined by aiming to be compatible with the versions provided by the package managers on the following distros.

Package Ubuntu 14.04 Debian 7.8 CentOS 7.0.1406 CentOS 6.6
Python 2.7.5 2.7.3 2.7.5 2.6.6
Babel 1.3 0.9.6 0.9.6 0.9.4
Genshi 0.7 0.6 n/a n/a
SQLite 3.8.2 3.7.13 3.7.17 3.6.20
PostgreSQL 9.3.6 9.1.15 9.2.7 8.4.20
MySQL 5.5.41, 5.6.19 5.5.41 n/a 5.1.73
MariaDB 5.5.41 n/a 5.5.41 n/a
psycopg2 2.4.5 2.4.5 2.5.1 2.0.14
MySQLdb 1.2.3 1.2.3 1.2.3 1.2.3
SetupTools 3.3.1 0.6.24 0.9.8 0.6.10
Git 1.9.1 1.7.10 1.7.1
Subversion 1.8.8 1.6.17 1.7.14 1.6.11
ConfigObj 4.7.2 4.7.2 4.7.2 4.6.0
DocUtils 0.11 0.8.1 0.11 0.6
Textile 2.1.5 2.1.5 n/a n/a
Pygments 1.6 1.5 1.4 1.1.1

Deprecated Modules Removed

New Dependencies

Detailed List of Developer Visible Changes

Component: admin/console (1 match)

Ticket Summary
#12242 TracAdmin "permission add" command should be atomic
API Changes

PermissionSystem.grant_permission raises PermissionExistsError rather than IntegrityError when the user already has the action or is a member of the group.

Component: database backend (1 match)

Ticket Summary
#12496 Include PostgreSQL version in environment_info table
API Changes
  • Added get_system_info to IDatabaseConnector interface.
  • DatabaseManager implements ISystemInfoProvider to return the database version. MySQLConnector, PostgreSQLConnector and SQLiteConnector no longer implement ISystemInfoProvider.
  • Moved IEnvironmentSetupParticipant and ISystemInfoProvider from trac.env to trac.api.

Component: general (2 matches)

Ticket Summary
#11874 Allowing logger to be extended with different handlers
API Changes
  • EnvironmentStub logs to a MemoryHandler and a list of (debug_level, message) tuples can be retrieved through the log_messages property.
  • logger_handler_factory no longer returns the handler as the second return parameter. The handler can be accessed through Environment.log.handlers[0].
  • Added function trac.log.shutdown for cleaning up logger handlers.
  • Added dictionary LOG_LEVEL_MAP in trac.log module, for mapping string log levels to integer log levels.
#12558 Add contextmanager for Popen
API Changes

Added context manager for Popen to trac.util.compat. The code is copied from the Python 3.2 implementation.

Component: search system (1 match)

Ticket Summary
#11748 Disabling SearchModule does not remove search box
API Changes

PermissionSystem.get_user_permissions returns only defined permissions, unless the undefined parameter is True. The default value of undefined is False.

Component: wiki system (1 match)

Ticket Summary
#9612 `WikiPage` doesn't need the `ipnr` attribute
API Changes

Added upgrade_tables method to DatabaseManager class. Added method to Table class for removing columns: remove_columns.

Other Modifications made to the 1.2 API

Uncategorized Changes

New in the 1.3.1 API

Be sure to have a look at the new ApiDocs (for latest trunk).

This is a work in progress - coverage is still not yet complete.

Note: See TracWiki for help on using the wiki.