Development is largely coordinated online.
Source code is managed in repositories and for Trac this is a combination of the main trunk in Subversion and mirrors in Bitbucket and GitHub. See TracRepositories, TracSubversion, TracGit and TracMercurial for more information.
We also keep track of what has been deprecated or removed between releases, see our Release Notes and the summary of API Changes. API Changes are summarised using the API change field attached to every ticket; this is a feature implemented since 1.0dev.
How to get started?
Then, you should 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 contribute changes, note that we're picky about our CodingStyle when SubmittingPatches. For changes to be accepted, the modified Trac source should still pass the UnitTests and the FunctionalTests. Ideally, also contribute new tests.
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, search the archive first, to avoid rehashing old discussions. For longer term developments, or for documentation purposes, use the wiki.
To refer to a mail from Trac-dev in this wiki, use the
googlegroups InterWiki prefix, for example: 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.