|
|
Note: GSOC 2009 is over. Stuff below conserved for reference. Read the wrapup!
MoinMoin takes part in GSOC 2009
MoinMoin GSOC page - GSOC main page - GSOC promotion video.
We can start recruiting students, however it is imperative that we make clear that we cannot in any way guarantee a place for the students in the program.
The stipend amounts ($4500 to the successful student and $500 to the organization) will remain unchanged.
We are preparing some project ideas and a list of mentors and interested students on the page /InitialProjectIdeas.
Students and their Mentors
Storage2009 by ChristopherDenter (mentored by ThomasWaldmann) - successfully completed
RealTimeEditing2009 by AlexandreMartani (mentored by BastianBlank) - successfully completed
Groups2009 and Xapian2009 by DmitrijsMilajevs (mentored by ReimarBauer) - successfully completed
Admin2009 by ChintalagiriShashank (mentored by AlexanderSchremmer) - not completed
What we offer
If your project gets accepted, you will:
be mentored by experienced MoinMoin / Python / web developers
- likely vastly improve your practical Python coding skills and style
- significantly improve your skills with distributed version control systems and unit testing
- improve team work and communication skills
- improve your Free Software / Open Source knowledge
- get the chance to contribute real-world code used by all moin users / wiki sites world-wide
maybe develop your own software (if you like to use MoinMoin for your own daily stuff)
have fun
What we require
Please only apply for a project with us, if you can comply with the requirements listed below.
Repeatedly failing to comply with these requirements will lead to failure / termination of your SOC project.
Please note that we do not expect that you are a perfect expert developer. But we expect that you are honest, and willing to learn/improve and working hard on your SOC project.
Requirements
Skills
This is "Summer of Code", that means ... (you guessed it) ... you have to code!
Participating for MoinMoin usually means that you will have to code in Python (if not otherwise stated).
- You should already have software design, coding and logic skills.
- Summer of Code is too short to teach you everything.
- YOU will have to do the development (we'll help, but we won't write the code for you).
- If you are unsure about your skills, contact us (early) and we'll see.
Having user/admin experience with MoinMoin is not required, but is a plus.
Having contributed some code to MoinMoin before we have to score your SOC application is a big plus.
Start early, nobody holds you back!
Regular work
- Citing Google: "your main activity for the summer".
- You are getting paid quite well for this, so please see this as a job. A job with having lots of fun / new experiences / new knowledge, but still a job. We expect 5d/w 8h/d work. You can have 7d total of vacancy from your SOC project (if you need a break, if you have university stuff to do, whatever).
- Do not apply for SOC if you have no time for that schedule due to other stuff you have to / want to do.
- No "last minute/hour/day" scheduling. For each day you worked on your project, there must be
- (if you have coded) at least 1 push to your public repo, and
(in every case) you need to publically document what you worked on that day, like in a diary. Just condense your thoughts and/or conclusions so everybody sees you were not idle. Use a wiki page for this.
Keep an eye on the timeline.
Regular communication with mentors and community
- Stay online on #moin-dev (development topics) and #moin (general), interact with the community. If you have a flat rate, just don't log out.
- Talk about your plans and what you do, ask for help if you are blocked.
- We'll have weekly #moin-dev IRC meeting on each Sunday at 16:00 UTC (18:00 CEST) about these topics:
- (Please prepare your text you want to tell in an editor so you can easily paste it to the channel)
- LAST: student reporting about progress of that week (what's new, what works, what does not work, ...)
- NEXT: student reports about planned next steps, what to do for unblocking
- BLOCKERS: student reporting about what blocks him (if anything)
DOCS: for users and developers
- For developers who want to use / extend your code (e.g. docstrings).
- For users using the stuff you implemented (where appropriate - e.g. as CHANGES entries or Help* wiki pages).
Regularly update docs/CHANGES.yourname (see docs/CHANGES and please use exactly same formatting and style so it can later get merged).
CODE: clean, working and tested
Clean (see CodingStyle).
- Working (try to do small changes, step by step, returning to a working state as often as possible).
- Tested (setup a local test wiki, write unit tests, ...). Regularly run the tests, your goal is 0 failing unit tests. Do practical/manual tests (you have lots of underlay pages you can click through, just USE your wiki regularly).
You must use Python 2.4 for development and testing (see MoinMoin.support.python_compatibility for some useful stuff).
- You need to use a revision control system and try to do clean commits, 1 commit per feature / per sub task.
How to apply
- Read our requirements above.
Have a look at MoinMoin and its code. You want to know what you will have to deal with before applying.
Have a look at /InitialProjectIdeas (you also can propose own ideas there or in your application). If you don't want to publish your idea, maybe talk to some moin developer about it, it might save you some work and increase your chances of acceptance.
For the SOC project application: use our DeveloperApplicationTemplate
What you can do before starting to code for SOC
- create and populate a homepage here on the wiki (see links in first sections)
- subscribe to the moin-user mailing list
- get familiar with the moin community, join our IRC channels
- read and follow the section above and linked pages / referenced files
get familiar with mercurial (hg), see MoinDev/MercurialGuide
get familiar with py.test, see http://codespeak.net/py/dist/test.html
- get familiar with moin usage - install it locally, play with it
get familiar with moin code, checkout from http://hg.moinmo.in/moin/1.9
Impress us by submitting some nice patches (for a bug or anything else you found) for MoinMoin.
Some of that stuff is very useful and even nice to use, even in case your project does not get selected.
What you need to do after GSoC has ended
- Fill out and submit all forms Google requires
- Send your code to Google. You can use the following command to extract all of your changesets into a file
hg export `hg log -M --template "#rev# " -k YOURNAMEHERE -r FIRSTREVTOINCLUDEHERE:`
E.g.: hg export `hg log -M --template "#rev# " -k Christopher -r 6cc612b86dc6:` > my_changesets
- Compress the file afterwards
See also GoogleSoc2008, GoogleSoc2007 and GoogleSoc2006.