Edgewall Software

Trac Development

Release Notes: 0.10, 0.11, 0.12, 0.13, 1.0, 1.1
API Changes: 0.10, 0.11, 0.12, 0.13, 1.0, 1.1.1, 1.1.2, 1.1.3
API Doc: 0.11, 0.12, 1.0, 1.1 (*)

These pages provide information about the development of Trac and its extensions, such as WikiMacros and other kinds of plugins. Most of the information was originally written for Trac 0.9, but we try to maintain it up-to-date with the latest versions (currently Trac 1.0dev).

We also do our best to keep track of what has been deprecated/removed between releases, see our Release Notes and the summary of API Changes. Starting with 1.0dev, each ticket has an API change field, which hopefully will make it easier to cover every changes.

How to get started?

Start by doing a Development Environment Setup and become familiar with installing Trac and creating new TracEnvironments.

Then, you should read a bit, in order to get familiar with Trac's ComponentArchitecture, PluginDevelopment and DatabaseApi. The TracTroubleshooting page contains some debugging tips which are also quite useful during development.

When you're ready to start hacking the code, make some modifications, see what happens, experiment. When you're about to make real changes that you want to contribute back, note that we're picky about our CodingStyle and you'd better follow it when SubmittingPatches. In order to be accepted, the modified Trac source should still pass the UnitTests and the FunctionalTests. Ideally, you will also contribute new tests.

Incidentally, discussions about Trac Development happen on the Trac-dev mailing list. New development ideas are usually best discussed first on that list, it's a quick and easy way to get feedback on any given topic or question. As usual, be sure to have searched the archive first, in order to avoid rehashing old discussions. For longer term developments, or for documentation purpose, one should rather use the wiki. For referring to a mail from Trac-dev in this wiki, use the googlegroups InterWiki prefix e.g. googlegroups:trac-dev:1b9c4e3eaeda3a0d (you can see the message identifier in the address bar of your browser when viewing the message in Individual Message view mode; you can go there from the default threaded view by clicking on More options and then on the Individual Message or Show Original links).

Development guides

Getting Started Contributing
Overviews Testing
Misc. Thematic Guides Translation
Development Proposals Development Branches

Blueprints for major changes on a topic

Documentation for ongoing work in code branches

See also:

Scratch Pad Ideas
Group enhancement ideas related to a same component or functional area

— from the point of view of the developers

— with the user's hat on

Last modified 4 weeks ago Last modified on Sep 25, 2014 12:12:49 PM