HelpForDevelopers - basic developer information, available with the distribution |
If you learn something new when developing for MoinMoin, consider adding your newly gained know-how to these pages and thus share it with your fellow developers.
TableOfContentsDevCalendar- releases, events and more.
TODO
Tasks for improving developer documentation:
- Create subpages
Collect existing info from the MoinMoin wiki pages.
- Start at defining somewhat official APIs.
- Show how to best create URLs (Page.link_to etc.).
- How to use I18N features.
Getting started
If you want to help coding you should learn Python: BeginnersGuide
- Learn all the basics on this page and subpages.
Install Mercurial (see /MercurialGuide).
Related Topics
ApiChanges - If you want to develop extensions or port them to a new MoinMoin version, you will find some hints about changes in the API here.
MoinMoinBugs, KnownIssues - Information about currently known issues in MoinMoin
FeatureRequests - What users want
MoinMoinPatches - Links to collections of patches
PatchPolicy - How patches should look
MoinMoinExtensions (plugins) - Contributed code
TemplateMarket - new templates for different uses.
/ThemeDevelopment - development of CSS themes and corresponding (X)HTML structure.
- ["/Translation"] - translation of the interface and help pages
General Information
/CodingStandards - guidelines on the development process, and code layout
/CommonTasks - how to correctly do recurring tasks, like adding a config variable
/CodeStructure - a tour of the most important modules, and how to find the best place to add new code to
/HowToRelease - steps in the release process
MoinMoin Concepts & Subsystems
The following pages contain the requirements, design, and docs for various MoinMoin key concepts:
/PluginConcept - macros, actions, parsers, processors, and formatters
/WidgetConcept - how to separate data aquisition from data display and navigation
/DatasetBrowser - displaying and browsing tabulated data
- ["/Storage"] - explains the different kinds of system files and the directory layout
[:MoinMoinIdeas/WikiApplicationServerPage:Caching of wiki pages]
/WikiDom - new model for parsing, processing and formatting wiki pages
/UnitTests - how to use moin moin testing framework
/InterWiki - how we deal with interwiki linking
Planning
- ["MoinMoinTodo/Release 1.1"]
- ["MoinMoinTodo/Release 1.2"]
- ["MoinMoinTodo/Release 1.3"]
- ["MoinMoinTodo/Release 1.4"]
- ["MoinMoinTodo/Release 1.5"]
- ["MoinMoinTodo/Release 1.6"]
You will find an outlook of further development on JürgenHermanns [http://europython.zope.nl/sessions/presentations/PythonApplications/EPC2002-Juergen_Hermann-MoinMoin.pdf presentation] on the [http://europython.org/ 2002 euro python conference]. Dead link -- TheAnarcat DateTime(2006-02-27T00:26:07Z)
Repository notices
We use a Mercurial (hg) repository on http://hg.thinkmo.de for development now, see /MercurialGuide.
- Tla / arch on arch.thinkmo.de isn't used any more.
- CVS on SF is very outdated and contains very old stuff.
Branches in Mercurial repository
moin/1.2, 1.3, 1.4, 2.0 all those are converted from moin--main--x.x and should be treated read-only.
moin/1.5 (used to be moin--main--1.5) is closed, except for backports of bugfixes from moin/1.6
moin/1.6 is the active branch and will be used for GoogleSoc2006 and ["MoinMoinTodo/Release 2.0/StepByStep"] as well as for other new features and bugfixes. Bugfixes made in 1.6 that apply to 1.5.x releases as well should get a commit message of "... (backport to 1.5)". A checkout of 1.6 will run on http://test.wikiwikiweb.de/ (CGI).
Nevertheless - branch and merge early and often. I.e. if you implement a new feature, you can start it in a distinct branch and potentially make it public if you cannot finish it quickly enough.