= Trac Development = {{{#!div class="wikipage compact" style="float:right; background: #ffd; margin-left: 2em; padding-right: 1em; border: outset #eec 2px; line-height: 2em;" ** Release Notes: [[TitleIndex(TracDev/ReleaseNotes/,hideprefix,format=compact)]] ** \\ ** API Changes: [[TitleIndex(TracDev/ApiChanges/,hideprefix,format=compact)]] ** \\ ** API Doc: [http://www.edgewall.org/docs/tags-trac-0.11.7/epydoc/ 0.11], [http://www.edgewall.org/docs/branches-0.12-stable/epydoc/ 0.12], [http://www.edgewall.org/docs/1.0-stable/html/ 1.0], [http://www.edgewall.org/docs/trac-trunk/html/ 1.1] ^[#see-ApiDocs (*)]^ }}} 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 [TracDev/ReleaseNotes Release Notes] and the summary of [TracDev/ApiChanges 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 [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 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 [http://groups.google.com/group/trac-dev/topics 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 =|| {{{#!td - **[./DevelopmentEnvironmentSetup]** - [./DevelopmentWithEclipseAndPyDev] - [./AlternativeFrontends] }}} {{{#!td - **[./CodingStyle]** - **[./SubmittingPatches]** - [./DevelopmentWorkflow] - [./ReleaseChecklist] and [./ReleaseTesting] - [./ToDo] - [wiki:TracTicketTriage] }}} |-------------------------------------- ||= Overviews =||= Testing =|| {{{#!td - [./ComponentArchitecture] - **[./ApiDocs]**[=#see-ApiDocs] - [[./TracURLs]] - [./RequestHandling] - **[./PluginDevelopment]** - [./PluginDevelopment/ExtensionPoints ExtensionPoints] - [[./IWikiSyntaxProviderExample]] - [./DataModels] - [./DatabaseSchema] - [http://us.pycon.org/2008/conference/schedule/event/62/ PyCon 2008 Slides] }}} {{{#!td style="vertical-align: top" - [./UnitTests] - [./FunctionalTests] - [./AutomaticBuilds] - [./ReleaseTesting] }}} |-------------------------------------- ||= Misc. Thematic Guides =|| \ ||= Translation =|| {{{#!td - [./DatabaseApi] - [./DatabaseUpgrades] - [./VersionControlApi] - [./ConfigApi] - [./HttpMethods] - [./JavaScript] - [./UnicodeGuidelines] - [./PortingFromClearSilverToGenshi] - [./CacheManager] - [./TracSession] }}} {{{#!td style="vertical-align: top" - [[TracL10N]] - MissingTranslations }}} |-------------------------------------- ||= [./Proposals Development Proposals] =|| \ ||= [./Branches Development Branches] =|| {{{#!td style="vertical-align: top" [[TitleIndex(TracDev/Proposals/,hideprefix)]] - [./ScratchPad] }}} {{{#!td style="vertical-align: top" [[TitleIndex(TracDev/Branches/,hideprefix)]] See also: - [https://github.com/edgewall/trac/network forks on github] - [https://bitbucket.org/edgewall/trac/descendants forks on bitbucket] - [wiki:TracTeam/Repositories Developer repositories] }}}