Getting started in developing for MoinMoin.
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.
If you want to help coding you should learn Python: BeginnersGuide. You should learn at least the basics on the development pages. Install and get used to Mercurial (see MoinDev/MercurialGuide) and play with it. Small patches are always welcome! If you just want to contribute an idea go to FeatureRequests. If you want to report a bug take a look at MoinMoinBugs.
Where to go from here?
You should start with your interests and find out where you think you can contribute. If you are good in CSS than maybe you rather like to help in MoinDev/ThemeDevelopment. Or if you like to do translation go to MoinDev/Translation.
To get started understanding how things work in MoinMoin maybe first try to understand the configs. Look at the file MoinMoin/multiconfig.py. You find a lot of default config settings in there. Go to HelpForDevelopers.
If you want to understand, how MoinMoin works, you should have a look on docs.moinmo.in and crawl through the code. Maybe you could also start a standalone wiki and debug it through it in a IDE like eclipse or komodo.
You should visit both IRC channels regulary. See MoinMoinChat.
Hints
Don't go too fast - you will not be able to understand all at once.
Decide what you want to do - Don't try to write from scratch. Start at one corner and try to understand what is going
Learn from documentation and code - Read MoinDev and linked pages and read what is in the code.
Learn from communicating - If you do not understand some things, ask other developers through wiki or MoinMoinChat. Follow the discussions. Learn from the mistakes of others.
Fix small things first - If you find some small bugs that can be corrected by small patches. Try this first and submit them first via the wiki (maybe MoinMoinPatch or on a FeatureRequests or MoinMoinBugs page). You can then get feedback for your work.
Experiment on your own branches - If you have installed and used Mercurial then you get make many different branches your self for experimenting with this and that.
Create plugins if possible (explained below)
Have fun - If you don't enjoy what you do, then you will never stay at it.
Create Extensions if possible
MoinMoin has very powerful extension system - use it. If you can add the feature or change the behavior by an extension, write an extension and publish it on the approriate market.
Extensions have important advantages:
- Your code runs in the current version of moin with no patching, it is easier to upgrade your system later.
- Other people run your code NOW, find bugs, suggest important improvements, maybe even fix stuff - it's free software!
- When your code is mature and tested in the real world, there is a good chance it will be included in the distribution, or if it can be implemented better merged into the core code.
See also MoinMoinExtensions.