Introduction
We're extremely lucky to have 3 GSoC students (Lukasz Knop, Néstor Salceda and Nidhi Rawal) working on Gendarme this year :)
However this will also require some minor adjustments, as there are some rules overlap between the proposals. But don't worry there are rules left for many summers ;-)
In the next few days I'll review the proposals (with respect to each other) and propose updated rule lists for each of you. I'll try to match them as close as possible to the rules you proposed to the GSoC. If you have other rules ideas, now or later (even during or after the summer), please email them to me. I'll update my "Gendarme Ideas" list.
This meta page will track common stuff between all 3 projects. All stuff specific to your own project, e.g. rules & schedule, should be on your own page.
My nickname is spouliot (channel #monosoc on GimpNet) and I'm generally online between 800-1700 EDT.
Common stuff across projects
Schedule start
Here's what I think the project start should look like.
Week 1
- Everyone has the latest version of mono installed
- Everyone has Gendarme installed/build from source
- Posted (at least) one rule description for comments. I suggest you start with the simplest rule you have assigned just to the the process ;-)
- That's the time for all general questions!
Week 2
- Everyone has completed (at least) one rule
- Everyone has posted at least 5 other rule descriptions
- At this stage all Gendarme framework questions should have been answered
Week 3
- All rules descriptions have been posted to the list
notes
- week 1 can be earlier than May 28th
- the key, to avoid surprises, is to work on approved rules description
- of course I'm open to comments and suggestions ;-)
Writing rules
- Post a description of the rule to the group
- describe what it should do/check;
- add some "good" and "bad" examples;
- include references, like URL (e.g. Fx conventions, similar rules in FindBug/FxCop, ...)
Everyone: Please feel free to comment on other rules descriptions, test cases ...
- Follow the Mono source code guidelines - http://www.mono-project.com/Coding_Guidelines
- Keep each rule in a single file
- e.g. no big files with multiple rules
- e.g. no small files
- To be complete each rule must have
- it's source code reviewed;
- unit tests to prove it's working (detection) and tests to check for possible false-positives;
- documentation
- not much, see the wiki - http://www.mono-project.com/Gendarme
- a small explanation (why the rule exists)
- a small "bad example" and "good example"
If everything goes without problem/changes then this will become the documentation for the rule (on the wiki).
Interesting links