Hello Everyone.!
At the outset i would like to thank XWiki. Congos my fellow GSocers. Glad to
be part of the community.
Am Arun Reddy (irc : arunreddy) going to work on Import Export from any
other Wiki
being mentored by Vincent Massol. The project is all about making a
provision inside XWiki to import from various Wikis ( Confluence, MediaWiki,
Tikiwiki etc.. ) using a Wizard based approach.
My plan of action for this community bonding period :
1. Study Import and Export features of other wikis.
2. Fix some jira issues related to my project ( XWiki Rendering and
Parsing )
3. Coming up with ideas and use cases.
4. Research on best practices and design patterns related to my project.
5. Getting familiar with tools and XWiki culture.
6. Come up with a plan of action for the project with all necessary
documentation on approach, architecture, implemenation which is appealing to
the community.
Once again thanks for accepting.I shall put in my sincere efforts to live up
to your expectations.
--
Best Regards,
Arun Reddy
On Wed, Apr 22, 2009 at 4:10 AM, Sergiu Dumitriu <sergiu(a)xwiki.com> wrote:
Hello Google Summer of Code students,
First of all, congratulations on your applications and your activity
during the
selection period, and welcome in the XWiki development team.
Before guiding the accepted students to their next steps, we'd like to
thank
again all those who showed interest in XWiki for this Summer of Code.
We had an impressive number of good applications this year, with
professional approaches and interesting ideas, and it was very difficult to
choose only 6. Unfortunately, some very good students, with great potential,
were not accepted. So, to those interested in getting involved anyway,
without Google's implication, I renew the invitation to put your ideas in
practice under the guidance of the community. Even though the money will be
missing, you can still take advantage of the other GSoC benefits: learning
new things, gaining experience, earning recognition, etc [
http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/].
If you would like to do that, please let us know by
replying to this mail.
For the accepted students, here are some getting started hints:
Community bonding period
According to the program timeline [
http://socghop.appspot.com/document/show/program/google/gsoc2009/timeline],
the next month (April 20th - May 23rd) is to be used for community bonding.
The first thing to do, sometime this week, is to present yourself and your
project
on the dev list, so that everyone knows who you are and what to
expect from you.
Also, you should continue getting acquainted with the code, the practices
and the
developers. Please make sure you all read and understand the
following - very useful - documents:
officially in
charge with your guidance, almost all interaction should be
done 'in the open' as much as possible, on the IRC channel or on the mailing
list. You should choose the communication medium according to the importance
of the matters to be discussed: naturally, the less important issues are to
be discussed on IRC, while the design decisions, important progress
announcements and testing/feedback requests go on the list. This way, the
community is informed on the evolution of your project, and other developers
can come up anytime with useful ideas and suggestions. Moreover, if your
mentor is hit by a bus (the bus factor [
http://en.wikipedia.org/wiki/Bus_factor]), another developer can take his
place with little effort.
Communication
Sitting alone in your room, working secretly on your project is definitely
a bad
approach. However, please keep in mind that too much communication can
also be harmful, as it distracts the others from their own work. You need to
be able to communicate just right:
- provide meaningful information about your progress,
- ask the community's opinion on non-trivial design or implementation
decisions
- avoid waisting a lot of time on a problem, when a
more experienced
developer (or a student that fought the same problem) could quickly
provide
you an answer; however, do try to find the answer yourself at first.
Wrong: "Where do I start? What do I do now? And how do I do that? Is this
good? It doesn't work, help me!"
Right: "Since a couple of hours ago I get a
strange exception when
building my project, and googling for a solution doesn't
seem to help.
Looking at the error, I think that there's a wrong setting for the assembly
plugin, but nothing I tried works. Can someone please take a look?"
Subscribe to the devs list (if you didn't do this already), and start
monitoring the discussions. It is also recommended to subscribe to the users
list, but not mandatory. The notifications list is a little too high volume
and technical for the moment, but it is a great knowledge source.
We have set up a wiki on the community farm for you to organize your ideas
and log
your progress:
http://gsoc.myxwiki.org/ . Each student must register
on this wiki, create and organize a space for the project, with a blog where
the evolution will be described. Currently the wiki is pretty empty, but it
will grow.
Development process
The project's lifecycle is NOT design -> implementation -> testing ->
documentation. [
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/]
We invite you to adopt a test driven development [
http://en.wikipedia.org/wiki/Test-driven_development][http://www.amazon.com…]
approach and to experience agile development [
http://www.amazon.com/dp/0596527675/]. After the first coding week, you must
have some code that works. It won't do much, of course, but it will be the
seed of your project. Every functionality will be validated by tests. The
code must be properly tested and commented at the time of the writing (don't
think you'll do that afterwards, because in most cases you won't).
We will create the proper projects in the xwiki sandbox, and we encourage
you to do
__at least__ weekly commits (ideally, if you are well organized,
you should be able to commit code that works daily, so try to aim at daily
commits). This way, the code can be properly reviewed, and any problems can
be detected before they grow into something too difficult to fix. One big
code blob committed at the end, no matter how good it may seem, is a failure
at several levels.
A simple way of having something functional in the first week is to
prepare the
maven build, which will give you the first unit test for the
first class.
Next steps, in a nutshell
- Get more familiar with the code and development process and try to
master Maven,
JUnit, Selenium, component driven development, ...
- Continue fixing a few small issues, chosen so that
they are __related to
your project__ -- This will help you get more familiar with
the code your
project needs to interact with.
- Refine and organize the ideas concerning your
project (use the wiki),
and write several use case scenarios.
- Start writing the first piece of code for your
project.
At the end of the community bonding period, you should have a clear vision
of the
project, well documented on the wiki, you should have the build
infrastructure ready, and you should be pretty familiar with the existing
code you will need to interact with. And, of course, you should be familiar
with the community and the way we communicate.
Good luck, and may we all have a great Summer of Code!
--
Sergiu Dumitriu
http://purl.org/net/sergiu/