Version 22 (modified by 14 years ago) ( diff ) | ,
---|
Trac Development
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.11).
We also do our best to signal what has been deprecated/removed between releases, see our Release Notes and summary of API changes.
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.
See also TracTroubleshooting, which contains useful debugging tips that are also quite useful during development. There is also MostFrequentDuplicates which describes some of the most common issues encountered while running/debugging trac.
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 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 to get an idea of what the development activity is (or was).
TracDev/ Index
Release Notes and API changes
- TracDev/ApiChanges
- TracDev/ApiChanges/0.10
- TracDev/ApiChanges/0.11
- TracDev/ApiChanges/0.12
- TracDev/ApiChanges/0.13
- TracDev/ApiChanges/1.0
- TracDev/ApiChanges/1.1
- TracDev/ApiChanges/1.1.1
- TracDev/ApiChanges/1.1.2
- TracDev/ApiChanges/1.1.3
- TracDev/ApiChanges/1.1.4
- TracDev/ApiChanges/1.1.5
- TracDev/ApiChanges/1.2
- TracDev/ApiChanges/1.3
- TracDev/ApiChanges/1.4
- TracDev/ApiChanges/1.6
Development Guides
Overviews
- TracDev/ComponentArchitecture
- TracDev/PluginDevelopment
- TracDev/DataModels
- TracDev/DatabaseSchema
- PyCon 2008 Slides
Getting Started
- TracDev/DevelopmentEnvironmentSetup
- TracDev/DevelopmentWithEclipseAndPyDev
- TracDev/IWikiSyntaxProviderExample
Testing
Misc. Thematic Guides
- TracDev/DatabaseApi
- TracDev/DatabaseUpgrades
- TracDev/VersionControlApi
- TracDev/HttpMethods
- TracDev/JavaScript
- TracDev/UnicodeGuidelines
- TracDev/PortingFromClearSilverToGenshi
- TracDev/CacheManager
Contributing
- TracDev/CodingStyle
- TracDev/SubmittingPatches
- TracDev/ReleaseChecklist and TracDev/ReleaseTesting
- TracDev/ToDo
Development Branches
Development Proposals
- TracDev/Proposals
- TracDev/Proposals/AdvancedNotification
- TracDev/Proposals/AdvancedNotification/DatabaseSchema
- TracDev/Proposals/AdvancedNotification/IEmailAddressResolver
- TracDev/Proposals/AdvancedNotification/IEmailDecorator
- TracDev/Proposals/AdvancedNotification/INotificationDistributor
- TracDev/Proposals/AdvancedNotification/INotificationFormatter
- TracDev/Proposals/AdvancedNotification/INotificationSubscriber
- TracDev/Proposals/AdvancedNotification/IPreferencePanelProvider
- TracDev/Proposals/AdvancedNotification/NotificationApi
- TracDev/Proposals/AdvancedWikiFormatting
- TracDev/Proposals/AdvancedWikiOperations
- TracDev/Proposals/Announcer
- TracDev/Proposals/BatchModification
- TracDev/Proposals/CacheInvalidation
- TracDev/Proposals/ConfigEnumTranslation
- TracDev/Proposals/ControllerApi
- TracDev/Proposals/DataModel
- TracDev/Proposals/EmailValidation
- TracDev/Proposals/EvenFinerGrainedPermissions
- TracDev/Proposals/ITicketQueryRenderer
- TracDev/Proposals/Jinja
- TracDev/Proposals/Jinja/TracInterfaceCustomization
- TracDev/Proposals/Journaling
- TracDev/Proposals/MultipleProject
- TracDev/Proposals/NewHelp
- TracDev/Proposals/NewTicketDuplicateCheck
- TracDev/Proposals/PortalTrac
- TracDev/Proposals/ProjectLabels
- TracDev/Proposals/Setuptools
- TracDev/Proposals/ThemePlugins
- TracDev/Proposals/TicketLinks
- TracDev/Proposals/TicketTypes
- TracDev/Proposals/TracRelations
- TracDev/Proposals/TracTicketsCustomTimeFields
- TracDev/Proposals/UserSystem
- TracDev/Proposals/VerticalHorizontalParsing
- TracDev/Proposals/WikiNamespaces
- TracDev/Proposals/WikiParserFormatterSplit
- TracDev/Proposals/WikiStorage
Trac Development Translation
- Chinese Trac Development Doc.
- ZhTracDev