= Trac Development = {{{#!div style="float:right; margin-left: 4em; border-left: 2px solid #ccc; margin-bottom: 1em;" ** Release Notes: [[TitleIndex(TracDev/ReleaseNotes/,hideprefix,format=compact)]] ** ** API changes: [[TitleIndex(TracDev/ApiChanges/,hideprefix,format=compact)]] ** }}} These pages provide information about the development of Trac and extensions for Trac (such as WikiMacros and other kinds of plugins). Most of the information was written for 0.9, but we try to maintain it up-to-date with the latest version of Trac (currently 0.13dev). We also do our best to signal what has been deprecated/removed between releases, see our [TracDev/ReleaseNotes Release Notes] and summary of [TracDev/ApiChanges API changes]. Starting with 0.13dev, each ticket has an //API change// field, so we hopefully won't get any change remain undocumented. == How to get started? Start by doing a [TracDev/DevelopmentEnvironmentSetup Development Environment Setup] and become familiar with [TracInstall installing Trac] and creating new ["TracEnvironment"]s. Then, you should read a bit, in order to get familiar with Trac's [./ComponentArchitecture], [./PluginDevelopment] and [./DatabaseApi]. The TracTroubleshooting page contains debugging tips which are also quite useful during development. When you're ready 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 them when [./SubmittingPatches]. In order to be accepted, they should pass the [./UnitTests] and the [./FunctionalTests]. Ideally, you should also contribute new tests. Incidentally, discussions about Trac Development happen on the [http://groups.google.com/group/trac-dev/topics Trac-Dev] mailing list. `Trac-Dev` can also be used as an InterWiki prefix in order to refer to specific mails sent to that MailingList, e.g. Trac-Dev:1, or googlegroups:trac-dev:1b9c4e3eaeda3a0d (in the latter example, the "id" being the one of the ''Individual Message''). See TracDev/Branches and TracDev/Proposals as well as the TracDev/ToDo, for an overview of the open topics (besides the [/roadmap], of course). == TracDev/ Index == === Development Guides === ==== Getting Started ==== - [./DevelopmentEnvironmentSetup] - [./DevelopmentWithEclipseAndPyDev] - [./AlternativeFrontends] - [[./IWikiSyntaxProviderExample]] ==== Overviews ==== - [./ComponentArchitecture] - [[./TracURLs]] - [./RequestHandling] - [./PluginDevelopment] - [/DataModels] - [./DatabaseSchema] - [http://us.pycon.org/2008/conference/schedule/event/62/ PyCon 2008 Slides] ==== Testing ==== - [./UnitTests] - [./FunctionalTests] - [./AutomaticBuilds] - [./ReleaseTesting] ==== Misc. Thematic Guides ==== - [./DatabaseApi] - [./DatabaseUpgrades] - [./VersionControlApi] - [./HttpMethods] - [./JavaScript] - [./UnicodeGuidelines] - [./PortingFromClearSilverToGenshi] - [./CacheManager] ==== Contributing ==== - [./CodingStyle] - [./SubmittingPatches] - [./ReleaseChecklist] and [./ReleaseTesting] - [./ToDo] === Development Branches === [[TitleIndex(TracDev/Branches/,hideprefix)]] === Development Proposals === [[TitleIndex(TracDev/Proposals/,hideprefix)]] === Translation === - [[TracL10N]] -- Coordination of localization (L10N) of Trac - MissingTranslations -- Collects minor issues regarding missing translations and i18n support Chinese Trac Development Doc. :: ZhTracDev [[TitleIndex(ZhTracDev/)]]