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?
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).