Summer of Code 2010 is over
4 GSOC MoinMoin projects have been done within GSOC 2010 (see below).
The good news is that all students produced good code we'll use in moin main branch:
- the 3 moin2 related projects are already merged,
- the 1 moin 1.9 related project will likely get merged later, after more evaluation.
The less good news is that not all students were able to fully complete their project due to circumstances mostly unrelated to moin or SOC.
We are hoping that they work together with us after SOC, so their code will live up to its full potential.
So, thanks to all students, developers, mentors, admins and Google for doing Summer of Code 2010 with us!
More info is on: http://socghop.appspot.com/
Code repository for submissions to google: http://code.google.com/p/google-summer-of-code-2010-moinmoin/
Students and their Mentors
LDAP 2010 and Kerberos Auth 2010 by AndrewGrigorev (mentored by ReimarBauer)
DOM DocBook and HTML 2010 by ValentinJaniaut (mentored by AlexanderSchremmer)
Jinja 2010 and Plugins 2010 by DiogenesAugusto (mentored by RadomirDopieralski)
Wiki-like formats support 2010 by DmitryAndreev (mentored by EugeneSyromyatnikov)
Co-Mentors / SOC Administration:
BastianBlank (ask him anything, esp. about moin's DOM stuff)
ThomasWaldmann (ask him anything about moin development)
See also our initial project ideas page.
Weekly IRC meeting
Students and mentors meet on IRC #moin-dev weekly at Sunday, 17:00 UTC (please adjust to your own TZ). doodle
- students report shortly about progress of last week, what blocks them (students prepare stuff to copy and paste into IRC)
- students and mentors discuss shortly about plans for next week
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
- refine your project plan:
- do design decisions
- discuss it with community
- prepare so you are ready to start coding when coding phase begins
- setup your development machine / environment
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 the appropriate repo(s):
- Impress us by submitting some nice patches:
- for bugs
- for documentation improvements
- anything else you find
Requirements while SOC coding phase is running
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.
Repeatedly failing to comply with these requirements will lead to failure / termination of your SOC project.
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.
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
With more recent version of mercurial, the previous command will look like :
hg export `hg log -M --template "{rev} " -k YOURNAMEHERE -r FIRSTREVTOINCLUDEHERE:`
SOC 2010 stats
Skript to generate nice graphs with commits/day and lines/day (uses hg activity extension)
Please note:
- Stuff shown below is preliminary, will be replaced with final stuff after the end of SOC.
- Scale likely is different between 1.9 and 2.0.
Stats LIE! They are just about quantity, not quality. The real truth is in the repo.
SOC students statistics
All non-SOC committers were excluded.
SOC moin2-based Commits / day
SOC moin2-based LOC / day
SOC moin19-based Commits / day
SOC moin19-based LOC / day
General moin repo activity
All commits to moin2-dev repo, no filters.
moin2 Commits / day
moin2 LOC / day
See also GoogleSoc2009, GoogleSoc2008, GoogleSoc2007 and GoogleSoc2006.