Edgewall Software

0.12 | 1.1

Release Notes for Trac 1.0 Cell Release

Trac 1.0 is a stable version of Trac.
These notes reflect the final status of 1.0, as well as the details for the minor releases.

Most likely 1.0.14 will be the last release of this series.


Maintenance Releases



10 / 10


8 / 8


15 / 15


39 / 39


3 / 3


38 / 38


11 / 11


21 / 21


31 / 31


32 / 32


20 / 20


1 / 1


15 / 15


21 / 21


20 / 20


4 / 4


42 / 42


182 / 182


25 / 25

Tickets with release notes

Milestone: 1.0.20 (3 matches)

Ticket Release Notes

Fix errors when report argument of query view is invalid.


Fix UnicodeEncodeError raised while rendering timeline rss when event's author is unknown and unicode.


Fixed TracAdmin wiki replace failing on MySQL.

Milestone: 1.0.19 (7 matches)

Ticket Release Notes

Added automated package deployments from Travis CI to the Edgewall server.


Fixed unit test failures with psycopg2 2.8.x due to raising UniqueViolation rather than IntegrityError.


Changed title of InterTrac links to t.e.o and fixed case-sensitivity.

  • Modified a link to RSS feed in query page to redirect through /login for authenticated users.
  • Made a link to RSS feed a first link in alternate links in ticket page.
  • Ticket workflow status hint Next status will be <status> is added only if the status is changed by the operation.
  • The as <status> text is appended to the control for the leave_status operation (rendered for leave action as leave as <status>) only if it is the only operation for the action.

Fixed log: TracLinks not enabled for AuthzSourcePolicy.


Replaced http with https throughout the codebase.

Milestone: 1.0.18 (11 matches)

Ticket Release Notes

Fix ambiguous column name, regression in Query module from #12967.


Compatibility fix with MySQL 8.0.


Use Genshi>=0.7 in Travis CI and AppVeyor.

  • Fixed regression in 1.0.17 (#13013) that prevented implicit ticket status changes for workflow plugins (those implementing ITicketActionController).
  • Fixed missing workflow status change hints when operations defined for the action.

Reduce memory usage while repository sync command with Subversion repository.


Fix get_table_names() and get_column_names() when no schema parameter for PostgreSQL.


Fixed Travis CI deployment and make compatible with Ubuntu Xenial.


Made compatible with Babel 2.7.


Avoid modification of a list in req.args in Query module.


Fix inconsistent behaivior of query view for checkbox fields.


Select custom field is not created if it has no options.

Milestone: 1.0.17 (37 matches)

Ticket Release Notes

Message is emitted when flup package is not installed and using scgi, ajp or fcgi protocol with TracStandalone.


Support submodule entries in Git repository.


Catch IntegrityError when adding new item and renaming item on ticket admin panels.


Fixed max ignored when only parameter in query and some parameters not overriding the default query.


Parameterize year of copyright in messages catalog.


Fix non-translated strings in milestone view.


Max total index size in MySQL is 3072 bytes, rather than 1000 bytes.


Fix TravisCI test failures on Ubuntu trusty.


Fix exception in BatchModify.post_process_request during error handling.


Improve validations for <action>.set_resolution attribute in ticket-workflow.


Improve sync command when git repository has no changes.


Improve validations of a git repository.


Fix "About" page failing when textile is 2.1.5 or early.


Fixed form resubmission warnings on admin pages.


Fixed ERR_BLOCKED_BY_XSS_AUDITOR during preview for certain content with Chrome browser.


Add [trac] anonymous_session_lifetime option which allows controlling the expiration of anonymous session.


Improve performance of session purge command when many anonymous sessions on PostgreSQL.


Fix query crashing when id as a custom field is defined.


Add debug-logging when NoSuchChangeset is raised.


Use latest setuptools, pip and wheel only when Python 2.7.


Reduce number of joins and subqueries in SQL generated by query module.


Added script to contrib for merging translation catalogs: merge_catalog.py​.


Invoke close method of instances from Node.get_content() and Node.get_processed_content() if the method is existent.


Remove unit tests which fails when pytz is 2018c and tzdata package is not 2018c.


"Clear last query" works only when POST method is used.


WikiAdmin.import_page preserves readonly of wiki pages.


OSError is handled when writing sample configuration file on Environment upgrade.


Log messages for cached repository include the repository name.


Fixed TravisCI test failures for Python 2.6.9 due to PyPI security changes. Removed Python 2.6.6 from AppVeyor test configuration.


Render description as wiki format in query results when "show under each row" is checked.


ConfigurableTicketWorkflow skips actions that use operations defined by other ITicketActionControllers.


Pin Babel version in Travis CI with Python 2.6.


Avoid exception in log due to invalid milestone request.


Fix exception in log due to invalid Query module request.


Wrap macro's content with </p>...<p> only when it is in a paragraph.


Use _added/_changed/_removed for markers in query results rather than added/changed/removed since they can be used as custom fields.


Add standard ticket field names to TicketSystem.reserved_field_names.

Milestone: 1.0.15 (2 matches)

Ticket Release Notes

Removed obsolete switches from pylint command in Makefile. pylint ≥ 1.6 should be used.


Fixed markup not rendered to HTML in attachment warning.

Milestone: 1.0.14 (37 matches)

Ticket Release Notes

Redirect to query_href parameter in the batch modify form rather than the URL saved in session.


Fix inconsistency between AuthzSourcePolicy and svnauthz file.


Improve performance of GitRepository.get_changes() when changes between two revisions have many files.


ImportError while loading plugins is logged at ERROR level without traceback.


Fixed batch-modify not working to list fields and naming conflicts in the form with existing custom fields.


Fix QueryModule raising a KeyError when no milestones are defined.


BatchModifyModule implements IRequestFilter to add template data for a request to path /query.


Batch modify requires POST method.


Case-insensitive search for milestones.


Raise ResourceNotFound when passing non-integer to Ticket().


Fixed broken builds with Xcode 7.3 image for OSX environment on Travis CI.


Improved performance of roadmap and milestone admin pages when many milestones and tickets exist.


Fix get_pkginfo() not working with a file metadata.


Add accesskey="e" to edit button in milestone page.


Raise a TracError when ticket's comment to edit is missing.


Fix a random failure with test_get_search_results_matches_all_terms.


TracError while post-processing is logged without traceback.


Reduce logging noise with client disconnects, for recent versions of mod_wsgi (e.g. 4.5.13)


Fixed substitution for author in svn:keywords.


Fixed changeset added and changeset modified TracAdmin commands having incorrect return code and printing to stdout rather than stderr.


Fixed AttributeError from Image macro with whitespace argument.


Fix inline markups leaking after indent.


Fixed TypeError when repeated q argument to SearchModule.


Avoid a warning about empty strings as pathspecs since git 2.11.0.


Fix slowness of browser page with large git repository since git 2.9.


The metagroup authenticated inherits permissions from anonymous in AuthzPolicy.


Fix groupdesc=1 parameter being ingored if TicketQuery macro with format=progress parameter.


Fixed error starting tracd with -r/--auto-reload on Windows.


Fix IndexError raised from diff_tree() raised when git repository has a file started with a colon character.


Use a temporary file to create a zip archive and send a streaming zip archive.


An exception from navigation contributors is logged, now.


Textarea fields with plain format preserve newlines in ticket and query views.


Fix a regression in [13769], to_fragment() passed exception with parameters more than one, e.g. IOError.


Macro or processor failure logs the resource.


Don't create session_attribute records if empty string is passed to session add and session set commands.


Use rmtree rather than shutil.rmtree to fix os.remove failing for read-only files on Windows while running unit-test.


Environment path is escaped in environment needs upgrade message.

Milestone: 1.0.13 (10 matches)

Ticket Release Notes

Added OSX to Travis CI build environments.


Use locale environment variables to negotiate locale on console.


Fixed package name for configobj in extras_require of setup.py.


Add workaround for genshi.core.escape raising TypeError due to genshi:#439.


Image macro returns a system_message when the image can't be rendered.


Fixed using incorrect revisions when downloading a zip file via browser page with Git repository.


Fixed UnicodeDecodeError when expanding Date in svn:keywords.


Added [notification] message_id_hash option to specify hash algorithm instead of md5 in FIPS mode.


Improve print_table() with newline characters.


Fix not listing GMT +14:00 timezone for Etc/GMT-14 timezone of pytz in prefs/datetime.

Milestone: 1.0.12 (20 matches)

Ticket Release Notes

Reconnect to PostgreSQL server after restarting it.


Avoid TypeError with server-relative link containing [ (e.g. [[//a ] ]]).


Fixed ValueError rendering property diff of svnmerge-integrated properties, which were added by the svnmerge.py script.


Fix TypeError when [[Image]] in heading.


Trap ValueError and render a system-message for non-integer macro arguments that should be integers.


Fix IndexError for patch with range information but no lines.


Workflow actions on the batch modify form are sorted by the default attribute.


Released Trac 1.0.12.


Exclude subdirectories of tests from setuptools package.


Fix ValueError in timeline when prev/next navigation items directed to a year prior to 1900.


Fix UnicodeEncodeError due to a comment link with unicode digits


Fixed Pygments stylesheet not found when style name contained a dash.


Fix TypeError if repository or changeset omitted in trac-admin changeset added or changset modified commands.


Avoid redundant escaping for a Markup instance in add_notice/add_warning.


Fixed 0 not allowed as value for depth argument (regression in [14769]).


Fixed incorrect parsing of projects list file by GitwebProjectsRepositoryProvider.


Log context when exception in HTML preview.


TracIni macro displays option documentation as multi-line rather than one-liner.


Fixed IOError: Too many open files by closing pipes after communicating with Git process.


Fixed tests failure on AppVeyor CI service.

Milestone: 1.0.11 (29 matches)

Ticket Release Notes

Corrected Swedish translation of "Review".


Skip several unit tests with Asia/Choibalsan between localtz and pytz.


Refactored test cases to use MockRequest.


Avoid TypeError in invalid request that has form data with an unnamed value.


Avoid logging stacktrace of IOError while reading request.


Coerce invalid int and bool request arguments to their defaults rather than letting a ValueError or TypeError propagate.


Replaced uses of req.args.get with req.args.getfirst in request processing code for the timeline page, to reduce noise in the log files due to invalid requests.


Released Trac 1.0.11.


Unknown trac-admin command error is trapped in TracAdminHelp macro and a system message is rendered.


Attachment upload POST request without an attachment raises a TracError rather than a KeyError.


Fix parse_date() raising OverflowError for large integer part.


Fix resetting Oldest first after auto-preview of ticket form.


NotImplementedError is trapped and a system message is presented to the user rather than the error reporting page.


Trac is distributed as a pure Python Wheel package.


Fix database exceptions in query system when no defined milestones/versions/enums and the same name as custom field is added.


Fix missing milestone field in ticket form when the field is custom field and no defined milestones.


Query system now sorts by enum.value rather than ticket.type for order=type.


Null bytes in request argument for name, value or filename raises an HTTPBadRequest exception.


Fix crashing with an invalid locale identifier in Accept-Language header.


The unit-tests for e-mail notification on Windows could take more than a minute. This is now reduced to a few seconds.


Fix raising OperationalError when SQLite with journal_mode and synchronous parameters on pysqlite 2.8.0+.


Support Babel 2.3.2.


Fixed test failures on Windows when fcrypt (Trac 1.0) or passlib (Trac 1.2) were not installed.


Fixed test failures when running make test=trac/util/tests/__init__ and python trac/ticket/tests/default_workflow.py.


TracError is raised when the configuration file is not found.


Fix parsing error when passing single quote to trac-admin command.


Fixed Git test case failures on Windows.


Make labels in batch-modify form focusable to the control.


Fix parse_date() returning incorrect timezone for iso8601 text with high time resolution.

Milestone: 1.0.10 (31 matches)

Ticket Release Notes

log: link checks LOG_VIEW for the repository's resource.

  • Sort ticket ids by priority in batch-modify event on timeline view and notification mail.
  • Add Message-ID header to batch-modify notification mail.

htdigest.py and htpasswd.py print help messages with no arguments.


Show preferred timezone in datetime picker by default when iso8601 is selected.


Added documentation on pre-populating the ticket assign-to field.


Prevent multiple form submits for the Submit changes button on the ticket edit comment page.


SubversionException from invalid revision number is trapped and a NoSuchChangeset exception is raised.


Non-integer cversion in URL no longer raises an AttributeError. The latest comment revision is instead shown.


Fixed traceback in log on startup when Pygments package is not installed.


Fixed broken display of wheel packages on Plugins admin page and Installed Plugins table on About Trac page.


Fixed AttributeError when an exception passed to add_notice or add_warning contained text that needed to be escaped (e.g. &&amp;). The error was only seen when Genshi was installed without speedups.


QueryValueError are trapped in calls to TicketQuery macro and the error message is printed.


Added Textile package version to System Information. Added Textile package version to make status.


Fix git related errors on Windows, seen in some environments


Duplicate entries returned by ISystemInfoProvider implementations are removed from the list returned by Environment.get_systeminfo.


Fixed datetime format hint used in place of a date format hint. Fixed ISO9601 date or datetime format hint repeated twice in an error message.


Fix unit test breakages with Babel 2.2.0.


Fixed Version Control: Repositories admin template not available if trac.versioncontrol.web_ui.* = disabled not followed by trac.versioncontrol.web_ui.main.* = enabled.


Fixed test failure on windows when path contained whitespace.


Invalid byte sequence in filepath is replaced when reading Git commits.


Fixed failing test cases with Pygments 2.1.


Log preferences can be updated again when viewing revision ranges


TracError is raised for an attachment path that specifies attachment as the resource parent.


POST request with invalid action raises HTTPBadRequest for AttachmentModule, MilestoneModule, ReportModule and WikiModule.


Prevent extraction from bundled javascript libraries and messages/*.js files.


CommitTicketUpdater no longer raises an AttributeError when invoked as a macro.


Fixed test failures with SQLite version 3.6.21 to 3.7 due to unreliable behavior of DROP TABLE IF EXIST.


Fixed test failure from tracopt.versioncontrol.git on Windows.


More robust database unit-tests, as MySQL table names are case insensitive by default.


Improve robustness of unit-tests on Windows, when the file-based SQLite backend is used.


Fixed test failures on Windows in trac.ticket.tests.notification.NotificationTestCase.

Milestone: 1.0.9 (18 matches)

Ticket Release Notes

Fix regression in [13951], reduce memory usage in git repository.


Fixed: viewing an invalid comment version raises a KeyError. The most recent comment version is now displayed.


Prevent adding an invalid repository alias via repository admin panel and repository alias command


Fix False wrongly being shown in svn:mergeinfo property when the property is created.


Don't show EnvironmentStub on the plugin admin page.


Added suggested umask to TracInstall documentation.


Fix AttributeError raising with hdfdump parameter.


Fix Internal Error page crashing with mod_python 3.5.


Labels are vertically centered for fields other than textareas. For textareas, the labels are top-aligned.


SizedDict's setdefault method raises NotImplementedError. Previously it incorrectly raised the NotImplemented constant (which doesn't inherit from Exception).


Fixed: user added to empty CC list was not notified (1.2).


Fix regression in [14140], at most 32 tables in a join on SQLite 32-bit.


Added apachecon, genshi, nginx and pycon keywords to KNOWN_MIME_TYPES to prevent WikiProcessor errors in the TracGuide when Pygments is not installed.


[[TicketQuery]] behaves the same as [[TicketQuery()]], returning a list of all tickets with their summaries.


Missing or invalid cnum parameter in request for ticket action comment-history or comment-diff doesn't result in a traceback.


Fix parsing error in datetime picker when datetime separator of the locale isn't a space character, e.g. en_US in Babel 1.3.


Localize am/pm markers in datetime picker.


Fix broken __msie303 trick when user agent is IE 10 with compatibility view mode.

Milestone: 1.0.8 (1 match)

Ticket Release Notes

Fix wrong restriction of sid for authenticated users, regression in [14120].

Milestone: 1.0.7 (14 matches)

Ticket Release Notes

Fix UnicodeDecodeErrors for unicode file path in git repository on Windows.


Fix raising UnicodeEncodeError when unicode characters are used in new session id and session id to restore on prefs/advanced page.


svn:keywords substitutions support custom keyword definitions since Subverion 1.8.


Uses [trac] htdocs_location option for images:

  • [[Image]] macro with non-existent attachment
  • svn:needs-lock property

UnicodeDecodeError due to invalid encoded byte sequence in request query string is trapped and logged as an HTTPBadRequest, avoiding a traceback in the log file.


Add missing attributes and methods of FakePerm to PermissionCache.


Tracebacks in log are avoided with PostgreSQL when navigating to the URL /ticket/<id> when <id> is not an integer.


Report id is logged when exception is caught executing a report.

  • Documented that cached repository is required for changeset search.
  • Modified post-receive script on TracRepositoryAdmin page to avoid error on first repository commit.

Fix raising AttributeError in repository admin with aliases to non-existent default repository.


Fixed traceback when navigating to /newticket?preview=1.


SubversionRepository.get_path_url() encodes meta characters and unicode characters in the generated URL.


Use JOIN clause when custom fields used in custom query is less than 30 in order to fix performance regressions on MySQL.


Fix IAuthenticator.authenticate() being called twice on each request.

Milestone: 1.0.6 (20 matches)

Ticket Release Notes

Allow hash changeset ids and branch names in revision ranges, e.g. [rev1:rev2], log:@rev1:rev2, log:@branch1:master.

  • Trap various exceptions from parsing invalid database connection strings.
  • Fix raising AttributeError if SQLite database is unavailable and Babel is available.

Added [trac] use_chunked_encoding option. If enabled, send as chunked encoding from rendering Genshi templates and downloading in other formats.

  • Improve git repository connector
    • Fixed pretty slow if a git repository has many branches
    • Cache tags to avoid executions of git process in get_tags()
    • Check whether a repository is modified using git show-ref
  • Reduce retrieving changes of a changeset from twice to once in changeset view

Add [trac] xsendfile_header option to use instead of X-Sendfile header, e.g. X-Accel-Redirect with Nginx.


Fixed wrong message for non-editable repositories in repository manager.


Fixed: some parameters not quoted in Postgres backend.


Fixed catalog compilation errors from ca localization.


Fixed: symbolic link at conf/trac.ini overwritten on configuration save.


Failures rendering diff/patch content are logged at DEBUG level rather than WARNING level.


Warning is added when timeline fromdate is invalid.


Fix low resolution of wait_for_file_mtime_change() on Windows.


Fixed Git test case failures on Mac OSX.


Allow hyphen characters in parameter name of wiki processor.


Replaced inherited tuple in RevCache class definition with inherited object class definition with __slots__ field.


Fix functional test failure when random_word() conflicts with links in header.


Implemented accesskey for About Trac page.


Removed inconsistent title attribute from Admin navigation item.


Fix off-by-one error in limit parameter of log view when no history remaining.


Fix wrong connection string for libpg when single quotes and/or backslashs are used in the password.

Milestone: 1.0.5 (19 matches)

Ticket Release Notes

Arguments to the Image macro can be wrapped in single or double quotes to avoid splitting at commas.


The Image macro no longer renders inline XHTML elements by default. This avoids the appearance of images in the timeline, wiki section headings and other oneliner content. Inline XHTML elements can be explicitly specified using the inline keyword as a macro argument.


Modified Make file to run python setup.py -q test -s <pkg.module.suite>, which avoids test failures when running tests in a module.


Fix not working diff with ignore whitespace changes.


The data URL scheme can be used with the Image macro.


Add template name to error message if an exception is raised while rendering and location is unknown.




Fix not reloading configuration if clock is going back.


Ignore repositories defined in trac.ini if they have an empty dir attribute.


The WorkflowMacro traps parsing exceptions and display a system message with the error. The error messages are properly wrapped at line breaks.


Improve retrieving next/previous revisions with cached Subversion repository on MySQL database.

  • MilestoneOperation workflow hint is not shown when milestone doesn't exist.
  • Fixed traceback when set_milestone attribute was missing.

Fix not showing tags of Git repository in browser view.


Add support journal_mode and synchronous pragmas in sqlite: database connection string.


Fix git process running forever when breaking GitNode.get_entries() iteration.


TICKET_BATCH_MODIFY is only defined if BatchModifyModule is enabled.


UPGRADE document has a step to backup the environment.


Fixed DeprecationWarning with Python 2.6 when creating an HTTPException from a PermissionError due to use of deprecated message attribute of base Exception class.


Fix crashing query page with multiple group parameters.

Milestone: 1.0.4 (4 matches)

Ticket Release Notes

Fixed workflow action labels are not displayed unless name attribute is explicitly defined (regression in [13420]).


Package info is used in ApiDocs generator configuration file to populate the version, configuration and svn revision.


Fixed styling of tables in textarea ticket custom fields.


Don't raise an exception when generating list of static resources and templates for About page if the environment htdocs or templates directory is missing.

Milestone: 1.0.3 (40 matches)

Ticket Release Notes

Show the differences against the first parent for a merge commit rather than merged differences against its parents.


Notification email is sent when a ticket attachment is added or deleted and TicketAttachmentNotifier is enabled.


Fix segmentation fault while downloading content of Subversion node.


Ordered lists can be "restarted" at any given value, including 0.


The View Tickets menu item is highlighted when TicketModule is the default_handler.


Additional stylesheets are loaded during the automatic preview of wiki and ticket editing.


Make [[Workflow]] macro work on auto-preview and prevent reflow when rendering workflow graph.


Fix crashing query page with multiple order or report parameters.


Empty strings are stored as NULL in the database for fields of the Ticket class.


Repository admin page indicates when a repository path is invalid by displaying the path in grey with the error in the title.


The user email and name of an unauthenticated session are used to populate the new ticket owner field in the set_owner, set_owner_to_self and may_set_owner workflow operation.


Fix raising UnicodeDecodeError when url has no handler and unicode characters with trailing slash.


The site customization files are displayed in the Interface Customization section of the About Trac page. The customization files are also displayed in the error report 1.1.3.


The Date relative/absolute format ([trac] default_dateinfo_format) can be set from the admin Basic Settings page.


Warning is logged when notifying repository change listeners if explicit synchronization is configured for the repository.

  • A warnings is logged when an invalid changeset is passed to RepositoryManager.notify().
  • An exception without traceback is printed to the console when TracAdmin's changeset added or changeset modified is called with invalid revision arguments.

The search results page displays shortened revision ids and only unique changesets.


The environment path is used in messages displayed on the Repository Admin page. A link to the TracRepositoryAdmin page is included in the message displayed when a new repository is added.


Show display_rev'ed revision id in ticket commit message generated by CommitTicketUpdater.


Replaced uses of file() with open(). The latter is the recommended function in Python 2 and is also compatible with Python 3.


Add support for Pygments 2.0.


Fix Completion error after initenv command in trac-admin.


For a user that doesn't have TICKET_EDIT_CC permission and hasn't set their email in Preferences, a hint is shown next to the Cc field with a link to Preferences. For a user that has set their email, the email address is wrapped in a label and can therefore toggle the add/remove checkbox.


The link attributes of a INavigationContributor are not removed when a label or href is redefined in trac.ini.


The standard milestone resource link is displayed in the query results, which is non-followable if the user doesn't have MILESTONE_VIEW.


The special _reset action can be redefined in the [ticket-workflow] section of trac.ini.


Fix raising IntegrityError when syncing empty and cached git repository.


Fixed untranslated TracError messages.


Use name or label attribute from [ticket-workflow] when rendering actions in the workflow graph output by the Workflow macro.


Improved documentation for [git] trac_user_rlookup.


Performance improvement on systems with many thousands of authenticated users due to caching of Environment.get_known_users().


Fix failures of unit tests for git_fs.py with C/POSIX locale.


Support distribution metadata in wheel packages for about page


Text fields with whitespace changes are not stored in the ticket_change table.


Removed one instance of duplicate id trac-ticket-title on ticket delete page.


The list of owners displayed when completing the component add <component> command is restricted to the allowed ticket owners.


Section cache is properly invalidated by Configuration.parse_if_needed(..).


Avoid "maximum recursion depth exceeded" error while executing repository sync command for cached git repository with many merge commits.


Replaced string interpolation in logging calls with function parameter format.


Select 20 rows in dropdown for height of textarea in wiki edit by default.

Milestone: 1.0.2 (167 matches)

Ticket Release Notes

The ROADMAP_VIEW permission is now enforced when navigating to the /roadmap page. Previously the ROADMAP_VIEW permission only controlled the visibility of the Roadmap entry on the mainnav.


Send notification to previous owner when ticket owner is changed.


Ticket change history is updated when deleting milestones and when retargeting tickets to another milestone.


Support utf-8 user names for basic and digest authentication, which may allow using such names if the browsers and web servers used also support it.


Only populate the language menus with languages for which the compiled message catalogs are actually available.


Fix an ESRCH error while killing a child process on Cygwin in PyGIT.py.


Verify expected storage engine, charset and collation when initenv and db upgrades if MySQL


Apply svn:keywords and svn:eol-style substitutions to content of files retrieved from Subversion repositories.


Ticket change history is updated when renaming a milestone.


Markup returned by ITicketManipulator.validate_ticket IWikiPageManipulator.validate_wiki_page is formatted to HTML.


Downloading directories as zip now interacts in a more intuitive way with fine grained control permissions.


Downloading directories from the TracBrowser works more reliably, especially for version control systems other than Subversion which had issues with that feature.


Allow specific versions of a wiki page to be viewable by properly enforcing fine-grained permissions.


Fix a ProgrammingError due to DISTINCT and ORDER BY while executing "My Tickets" report on PostgreSQL


Improve error messages that are raised when [notification] smtp_server and [notification] smtp_port are invalid.


The attach file button reads Attach file when no attachments exist for the resource, and Attach another file when attachments exist for the resource.


Loading of all permission_policies is enforced by raising an exception if any of the named Components are not found. request_filters, action_controllers and any plugin configuration options utilizing OrderedExtensionOption will raise an exception if one of the named Components is not found.


Image macro can now reach attachments on Wiki pages having a : in their name (e.g [[Image("page:fr":image.png)]]).


fix ValueError in Storage._get_branches() if a branch head has carriage returns in the commit log


Avoid missing changeset after resetting and removing branch on cached git repository.


Raise NoSuchChangeset from GitNode.__init__ for invalid revision even if path is '/'


Removed trailing whitespace character from rendered diffs.


Add support for Babel 1.0dev.

  • Improved set_owner workflow hint.
  • set_owner_to_self is ignored if set_owner is also in the list of operations.

Fixed: Users with WIKI_CREATE permission could not create a wiki page unless they also had WIKI_MODIFY permission.


Check permissions for Repository and Node using is_viewable method in order to work with authz policy.


Milestone resource links are rendered with the due or completed information in the tooltip.


Added license headers to files in contrib, sample-plugins and doc directories.


Number of table entries is shown next to heading on applicable admin pages.


In the Plugins Admin panel, highlight the entries under the mouse.


Logout requires POST request.


Take into account fine grained permission before adding mainnav Wiki and metanav Help/Guide links, using the WikiStart and TracGuide resources, respectively.


Implemented fine-grained permission checks for the admin realm.


Fix generating wrong values for ListOption in trac.ini and trac.ini.sample on Trac environment creation, e.g. [revisionlog] graph_colors.


Fix duplicated same changesets between git repositories in timeline view.


Ignore PyCharm and PyDev IDE files in Subversion, Git and Mercurial.


Add a hint about the current owner to the leave action in the workflow Action box if leave_status is the only allowed operation for the leave action.


Repositioned the Edit conflict and Merge warning messages on the Wiki edit page so that they are always visible when the page refreshes.


Hide the Components table on the Manage Components page when there are no components defined. Hide the repositories table on the Manage Repositories page when there are no repositories defined.


Title, Description and Query inputs on the report edit page are the same width.


Added a functional test case for wiki history.


Show simple error message rather than a backtrace when trying to delete or rename a non-existing page.


A message is displayed on the Basic Settings admin panel when pytz is not installed.


Added a functional test case for milestone attachments.


The #!rtl CSS support now applies globally, not only in wiki pages.


The View Tickets mainnav item links to the /query page when the user has TICKET_VIEW and either the ReportModule is disabled or the user doesn't have REPORT_VIEW.


Fix be not refreshing Git repository with persistent cache if it has been changed.


TracLinks to missing reports are rendered as non-followable with the missing class, and TracLinks that the user doesn't have permission to view are rendered as non-followable with the forbidden class.


Enforce fine-grained permission policies in the report module.


Fix incorrect property values for file with unicode path in git repository


Show an explicit message when attempting to add a repository that already exists through the Manage Repository.


Fix wrong rendering list with letters in wiki to list with numbers in html.


Exceptions encountered when authenticating are trapped, logged and a warning is displayed. Previously, a traceback would be displayed in the browser. No additional authenticators are tried after an exception is encountered.


fixed an internal error on log view for git repository if no LOG_VIEW permission.


Fix a compatibility issue in the Wiki with Genshi 0.7, e.g. UnicodeEncodeError for wiki bracketed link <http://...>.


Refactored 3 methods of the Environment class to use the lazy decorator.


Messages are displayed on the Basic Settings admin panel when babel is not installed.


Each functional test case module can now be executed independently. All files in tests directories now have headers with license and copyright information.


A ConfigurationError exception is raised when there is an error parsing the authz file for AuthzPolicy, or if the file can't be found.


Extended TestTicketHistory functional test case to check that visibility of buttons and sections on the ticket page is dependent on whether a version of the ticket is specified.


Render log: link with a missing revision as a anchor with the missing class.


Improved error message for an intertrac link to a non-existent or forbidden changeset.


Replaced deprecated unit test method aliases, and refactored unit tests to utilize new methods in trac.tests.compat.


Fix duplicated ticket ids for batchmodify timeline events


Fixed test failures of PyGIT when filesystem encoding is ascii using C/POSIX locale.


A ConfigurationError is raised if tracopt.perm.authz_policy is enabled and AuthzPolicy is in the list of active permission_policies but one of the following is true:

  • ConfigObj is not installed
  • the [authz_policy] authz_file option is missing
  • the [authz_policy] authz_file option is empty

The ConfigObj dependency for tracopt.perm.authz_policy is enforced in setup.py.


The shared prefix can be used with the Image macro to serve files from the shared htdocs directory (TracIni#GlobalConfiguration).


Added shortnames bat, batch, cmd and dos for the mimetype application/x-dos-batch.


Git repository will be discovered when the parent of a .git directory in a non-bare repository is specified.


Fix a glitch making it impossible to edit a page if a description of an attachment contained some forms of relative link.


Replaced uses of deprecated has_key with in.


An ImportError will be raised when executing a functional test module without twill installed.


Fixed regression from [12078] that was preventing Pygments from working and caused the test modules to show up in the list of active plugins.


Fix errors if mysql: dburi has parameters on initenv


Fix wrongly omitting empty commits of Git repository in log view and broken revision graph.


On platforms with a low resolution timestamp, each save operation will modify the file timestamp so that the file is sure to be reparsed.


Error message from trac-admin permission remove describes when a permission can't be revoked because it is granted through a meta-permission or group.


The Language preferences panel is shown to users with TRAC_ADMIN even if Babel is not installed. A hint is shown on the Basic Settings admin page when the message catalogs aren't compiled. The Language select on the Language preferences and Basic Settings panel are disabled when Babel is not installed or the message catalogs are not compiled.


Help messages from trac-admin commands use the proper locale in the dateformat hint, and include a hint about using IS8601 format.


The owner parameter of the trac-admin command component add is now optional.


CommitTicketUpdater: Use finditer for matching in the regex, so that order of patterns can be interchanged when overriding the regex in subclasses.


The subject of batch ticket email notifications is limited to 75 characters.


Pressing Save on Repository Admin edit page when no change is made redirects back to the listing page.


The Batch Modify section on the Query page is hidden when there are no query results.


Make parse_date more flexible even if without Babel


Fixed TracError message raised in trac.web.auth would not be rendered in a red box.


Log a message at debug level in RepositoryManager.notify when changeset is not found.


Values in the ticket properties box are not query-linked when QueryModule is not enabled.


ZWSPs are stripped from arguments to the Image macro.


Modified TracAccessibility page to list most common access key combination used on Mac.


Raise an exception when adding an attachment through trac-admin if the parent resource doesn't exist. Raise an error if navigating to an attachment page for which the parent resource doesn't exist.


Refactored CSS for horizontal dl on changeset and diff pages to remove absolute positioning.


Highlight row on hover in the repository browser, diff (changeset) and wiki numbered code block views.


Prevent moving the cursor to end of field with datetime picker when editing hours part.


Zebra striping is applied to the tables output by the TracIni macro.


Added missing import of cleandoc_ in HelloWorld sample macro.


Improved hint in error messages from ExtensionsOption and OrderedExtensionsOption.


ExtraPermissionsProvider: Added a link to the documentation on the TracIni page from the Component description on the plugin admin page.


Added Today and Done buttons to the datepicker.


log: generates a link with named revisions which be consistent with browser: link and the log page works with named revision ranges on Subversion.


Reduced execution time of functional tests by removing unnecessary web server restarts.


Fix regression from [11812] when the starting directory node iterates itself.


Reduced execution time of ticket functional test cases by not checking for timeline event every time a ticket is created.


Fix inconsistent pretty_dateinfo between Chrome and TimelineModule.


Fix reverse order git changesets on timeline view if the changesets have the same committer-time and off-by-one error on stop argument of GitRepository.get_changesets().


Increased spacing between the Add button and the field to its left on the admin addnew forms.


Improved layout of elements in the ticket properties box. For Trac 1.1.2, the textarea custom fields now span the width of the properties box and the cols option is removed.


Added configuration option to limit size of ticket summary: [ticket] max_summary_size.


Fixed error in TicketQuery(format=progress) macro when grouping by a custom field.


Fixed indentation and trimmed whitespace using reindent.py.


Improved test harness in trac.admin.tests.console.


Avoid a TypeError on Python interpreter's termination while running setup.py test -s ....


PermissionError.__unicode__ returns a unicode instance and PermissionError with Fragment is rendered to HTML. Improved error message in exception when subject can't be added to group because actor lacks necessary permission.


Show acknowledgement message with new language setting when changed in user preferences.


Resource name on diff view page links to latest version of the resource.


Case-sensitive matching resource names in authz policy on Windows.


PreferencesModule can be set as the default_handler.


Fixed milestone search returning results when only one word from phrase matched.


The Available Reports text on the Report List page is hidden when the Custom Query contextual navigation link is not also present (QueryModule is disabled or the user doesn't have TICKET_VIEW permission).


The jQuery UI and jQuery Timepicker versions are displayed in the System Information on the About and Error pages.


CommitTicketUpdater applies the [trac] ignore_auth_case setting to the changeset author.


Wiki toolbar is disabled if textarea is disabled or readonly.


Added license headers to HTML templates.

  • Prevent NoSuchChangeset error on browser view if default repository is empty.
  • Prevent NoSuchChangeset error from GitNode.__init__ if git repository is empty.

Fix crash while rendering report's description on report list page.


Reduced unit-test execution time when using SQLite database.


Replaced b tags with strong.


Show error message when navigating to /log with no default repository defined.


Fixed test execution failure when tests in trac.ticket.tests.model were executed directly.


Fix report: link with non-digit characters leading DataError on PostgreSQL.


Improve resource description of default repository which the name is empty.


Improve trac.util.get_pkginfo() for non-toplevel module and module which doesn't match with package name.


When an HTML page is created due to an exception in the functional test suite, the URL of the file is used in the exception message so the terminal can create a clickable link.


Fix authz policy not working for default repository.


Improve error message when no viewable repositories and accessing repository index. Fixed path in error message for Subversion and Mercurial repository when a PermissionError is raised accessing the repository root.


The version/revision attribute of a single-file plugin is not displayed on the plugin admin page if the SVN keyword is not expanded.


Fixed permission check on repository that raises an exception or is not defined.


On navigating to a non-existent milestone and being redirected to the Milestone edit page, a notice is displayed to clearly indicate that the milestone does not yet exist.


Improved styling of Report Edit page.


Added padding and improved positioning of textareas.


Fix wrong revision graph for cached git repository.


Anonymous and (none) are translated in the ticket workflow action hints.


Fixed failures of unit tests with git 1.5.6 to 1.6.5.


Multiple form submits are prevented for cases that the operation is not idempotent, or an error would result.


Wiki-formatted fields of type textarea are rendered as wiki markup when displayed as a column in a table output from the TicketQuery macro.


Add a trailing period to the ticket action hint rendered in the workflow Action box, in the case that the hint is not empty.


Ticket comment TracLinks are only rendered as followable when the resource exists and the user has permission to view the resource. Comment TracLinks are not rendered with strikethrough font when the context is the resource to which they refer.


Fixed error in TicketQuery(format=progress) macro when e.g. order keys appear in query_args of milestone_groups.


Fixed duplicated root directories in downloaded zip file.


Fix for failure in Git unit tests when the author info isn't available.


Removed unnecessary repeated backslashes from jQuery UI CSS.


Display an info notice when a page is renamed.


Fix the disappear add and copy events in revision log view


All edit and rename pages put the focus on the first input element on the page.


On the milestone delete page, clicking on the retarget label toggles the retarget checkbox.


In EnvironmentSetup.environment_needs_upgrade, removed deprecated and unused db parameter from call to Environment.get_version.


The Preferences link on the ticket and wiki edit pages will open a new window or tab when JavaScript is enabled.


Modify .po files to expand TracIni to a wiki page link rather than a macro call, fixing a recursion in the TracIni macro documentation.


Removed reference to ticket and wiki from documentation for [attachment] max_size option since the option is applicable to all realms.


Fix #__msie303 workaround not working on Internet Explorer 10 in strict mode.


Network-path references (URLs starting with //) are supported for the [trac] options jquery_location, jquery_ui_location and jquery_ui_theme_location.


Documented col parameter in TicketQuery macro.


Fixed typo in TicketQuery macro documentation: litteralliteral.


Renamed release date field label on Admin Versions modify panel to Released, so that it matches the label on the Admin Versions view panel.


The Cancel buttons are consistently placed to the right of other submit buttons on all forms, and the Remove selected items buttons are placed to the right of Save changes buttons on the admin pages.


The permissions in the table on the Permissions Admin panel are aligned in columns of fixed-width, truncated with ellipses in the case that they overflow the available width, and the full permission name is shown on hover-over.


Added environment variables for specifying the port (TRAC_TEST_PORT) and path (TRAC_TEST_ENV_PATH) of the functional test environment.

Milestone: 1.0.1 (25 matches)

Ticket Release Notes

ListOption keeps values other than empty string and None in raw list as default.


Fix zip source download for large directories in Subversion repositories.


Performance improvement for the Roadmap, by caching milestone properties.


CommitTicketUpdater checks for TICKET_APPEND when the refs command is provided.


Fixed regression in support of format='iso8601' for format_date and format_time.


Added documentation for the ConnectionWrapper methods.


Added a select all checkbox to table of components for each plugin on the Plugins admin panel.


Improved TracIni documentation on how to set downloadable_paths in a multi-repository environment.


Fixed ticket property change descriptions like abc, def added; abc removed.


Restore the Modify link at the top of the ticket page, as it was in Trac 0.12


Strip ZWSP characters from end of an attachment TracLink's target.


Fixed TracIni and MacroList wrongly showing *.po headers if empty document


Fixed unicode errors with non-ascii branches and tags in git repository.


Prevent possibility of multiple identical info or warning messages being presented to the user.


Removed t.e.o-specific content from the TracReports and TracStandalone pages.


Close file descriptors when shelling out to sendmail to avoid file descriptor leakage.


The BatchModify select-all checkboxes are toggled with tri-state behavior when the ticket checkboxes are toggled.


Added missing line break after the Owner label on the Component edit admin panel.


Fixed not working git backend with symlink'ed git executable. [git] git_bin option uses better default on Windows.


Hide all of the BatchModify elements when JavaScript is disabled since BatchModify requires JavaScript.


Update the ticket changetime to the current time when deleting a ticket comment.


Custom text fields with format=list now behave more like keywords:

  • Batch modify now also allows adding and removing entries.
  • Property diffs now also render the entries added and removed.
  • Querying multiple entries now also searches them individually.

Correctly handle socket.error on Python 2.5


Narrowed the width of the column of BatchModify checkboxes on the Custom Query page to better fit the size of the checkbox.


Moved the Apply changes button of the Logging admin panel outside of the fieldset for consistency with the layout of the other admin panels.

Trac 1.0: Detailed User Visible Changes

Component: admin/console (2 matches)

Ticket Release Notes

Back up the database during a trac-admin $ENV hotcopy, on all backends.


Import and export Trac permissions with trac-admin $ENV permission <import|export>

Component: admin/web (4 matches)

Ticket Release Notes

Redirect RSS and ICS links through /login for authenticated users, so that readers login when requesting the feeds.


Improved the layout of admin pages.


Separated permissions and group memberships in the permission admin panel.


In permission admin panel, gray out actions which are no longer defined.

Component: attachment (5 matches)

Ticket Release Notes

attachment: Added the possibility to download all attachments in a list as a .zip.


Added support for X-Sendfile for files served from the filesystem.


Uses SHA-1 instead of URL-encode for the physical file name of attachments. (Requires environment upgrade.)


Better reporting of problems detected by Attachment validators


Show number of attachments in section title

Component: contrib (1 match)

Ticket Release Notes

Add MilestoneOperation sample plugin, a workflow operation which assign a ticket to a milestone for some specific resolution values

Component: database backend (5 matches)

Ticket Release Notes

mysql_backend passes any additonal connection parameters to the database


Database backends now raise unified exceptions


Trac database connectors may now be used independently of Trac


Trac can now connect to a MySQL database using TLS/SSL encryption

  • Parameters are read from the connection string or a client configuration file specified by read_default_file

More robust environment upgrades by using a new db connection for each upgrade participant.

Component: general (25 matches)

Ticket Release Notes

Improved permission denied error message


New user preference for controlling the verbosity of the UI: Don't show the various help links.


Plugins can now extend meta-permissions


Trac now comes with some API documentation.


TracIni page now shows the default value for each setting.


Various internal improvements to the way Components are initialized


When modified, the session is now always saved regardless of the way the response is sent (except for send_error).


web: [inherit] htdocs_dir setting can be used to specify a shared location for resources, reachable using the "/htdocs/shared/" prefix.


Removed Python 2.4 support


admin: the default timezone and default language can be set in the "Basic Settings" panel


Added a user preference and a option to display relative/absolute datetime.


TracIni config sections are now documented, in addition to individual configuration items


Improved behavior and documentation for @cached properties.


Upgraded jQuery to 1.7.2.


jQuery may now be served from a Content Delivery Network using jquery_location in TracIni


jQuery UI is now included and can be configured using the new options jquery_ui_location and jquery_ui_theme_location.

Milestone due and completion dates can be changed using a date/time picker.


TracLinks may now link to a specific word within a source file or attachment using a URL fragment such as #/word (requires Javascript)


Moved old cgi-bin/ script to contrib/cgi-bin. The script might still be useful when trac-admin <env> deploy is not wanted.


Enable the httponly attribute on all cookies (for Python ≥ 2.6).


More robust time parsing


Proper unicode support in AuthzPolicy.


Added date picker for date fields in admin panels and the timeline.


jQuery UI updated to 1.8.21


Correctly handle single quote in string encoded with to_json()


Component: i18n (6 matches)

Ticket Release Notes

ticket: Added the ticket clone sample plugin as an optional component.


Translation of the documentation for TracIni options is now possible (in separate tracini.po catalogs)


The macro documents are translated in the language settings.


More robust date parsing


(JavaScript API improvement)


Correctly handle multiple i18n domains in JavaScript translations.

Component: notification (2 matches)

Ticket Release Notes

Email address in user preferences are now used even when user name contains an "@"


notification: Allow using the author of a change as the From: header of the notification e-mail.

Component: plugin/git (5 matches)

Ticket Release Notes

Trac now features built-in support for the ​Git version control system


Properly terminate git subprocesses (fix Python 2.5 incompatibilities and Windows specific issues)


Support hidden "mergetag" field in git commits


More robust communication over pipe with git subprocesses


Proper error reporting for git repositories with invalid path.

Component: query system (1 match)

Ticket Release Notes

Wrap content of code blocks in order to avoid truncation on screen and on print

Component: rendering (3 matches)

Ticket Release Notes

If Pygments support is enabled, all mimetypes supported by Pygments become automatically known to Trac


Phased out the SilverCity-based highlighter by moving it to tracopt.


Mimetype associations can now be extended or overriden by regexps.

Component: report system (5 matches)

Ticket Release Notes

ticket: Added the format "progress" to the [[TicketQuery()]] macro to display progress bars.


CSV data exports uses UTF-8 BOM for better interoperability


Reports: nicer looking list of reports, with direct link for going back to last query


In TracReports, add special column __class__ for defining zero or more space-separated CSS class names to be set on the <tr> element of the current row


TracReports using __group__ feature can now be sorted interactively

Component: roadmap (2 matches)

Ticket Release Notes

Added i18n date and time feature


Added Previous Milestone / Back to Roadmap / Next Milestone navigation links onto milestone pages.

Component: ticket system (9 matches)

Ticket Release Notes

Added TracBatchModify functionality


Improved the handling of ticket edit conflicts, by showing simultaneous edits and conflicting changes, and making it easier to merge the changes.


Move the ticket number, status and type in the ticket box itself.


Added Comments only filter in the Ticket Change History preferences, to hide field changes from the history and even exclude entries without a comment


Ticket comments can now be displayed threaded (requires javascript)


ticket: Added [[Workflow()]] macro to visualize ticket workflows.


When creating a new ticket, only show the preview after the first modification.


TracTicketsCustomFields support two new formats for text fields, reference (query-able value) and list (list of query-able values, like keywords)


In the ticket title, the status/type/resolution fields are also query links.

Component: timeline (2 matches)

Ticket Release Notes

Collapsed changesets in timeline won't show duplicated modified file entries.


Wrap long lists of ticket ids (e.g. in the timeline for batch modification events)

Component: version control (3 matches)

Ticket Release Notes

Added a visualization of the revision graph in the revision log.


Timeline: the changesets entries display their associated tags, if any


Subversion support code is now clearly identified as being optional.

Component: version control/browser (2 matches)

Ticket Release Notes

Repository browser now includes a download link for files and folders.


Added an input in the source browser to view the diff against another revision.

Component: version control/log view (1 match)

Ticket Release Notes

In TracRevisionLog and TracBrowser, show the name of the current branch

Component: web frontend (1 match)

Ticket Release Notes

Refresh the default theme to take advantage of a few CSS3 features.

Component: web frontend/tracd (3 matches)

Ticket Release Notes

Added options to tracd to drop privileges.


tracd: basic authentication now supports SHA1 passwords


tracd: Report failure to listen on a socket

Component: wiki system (9 matches)

Ticket Release Notes

TitleIndex macro supports new exclude and include arguments


Some Wiki macros now produce markup even when used in "inline" context.


Wiki page deletion confirmation page has more detailed information about what's going to be deleted.


wiki: Added a #!rtl wiki processor to simplify the insertion of RTL text blocks.


wiki: Allowed removing the numbering in the [[PageOutline]] macro output in inline style.


wiki: Simplified reverting of a wiki page to an older version.


RecentChanges can produce a simple list with group=none (default is group=date, pre-1.0 behavior of grouping by day)


default style for inline code adopted the Trac Hacks color and has now a gray background


The Image wiki macro is robust w.r.t. Zero-width whitespace unicode characters (as can be found after copy/paste of attachment names from the Trac pages)

Web front-end

fcgi and flup

Trac uses its own private copy of an old version of flup, which works well for basic needs.

More demanding setups may want to use a more recent flup version, notably to benefit from its thread pool.

Now Trac detects and uses the installed version of flup, and only falls back to its own version if flup is not installed.

See #9111 for details


  • This release requires a database upgrade when upgrading from the 0.12.x series:
    trac-admin $TRAC_ENV upgrade
  • PySqlite 1.1.x is no longer supported; use PySqlite 2 (requires version ≥ 2.5.5 or < 2.5.2, see #9434 for details)

Developer-visible changes

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


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 TracTeam http://trac.edgewall.org

Last modified 2 years ago Last modified on Oct 15, 2019, 3:03:03 AM
Note: See TracWiki for help on using the wiki.