[xwiki-devs] [GSOC] Welcoming our GSoC students
Hello community, 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 a lot of good applications this year, with professional approaches and interesting ideas, and it was very difficult to choose only 3. 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 [1]. 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 [2], the next month (until - May 21st) 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 (a precondition is to be subscribed to the list, which you *need to do ASAP* if you haven't already). 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: - [3] http://purl.org/xwiki/community/ - [4] http://purl.org/xwiki/dev/ - [5] http://platform.xwiki.org/xwiki/bin/view/Features/ = Mentorship = We prefer open mentorship. While your assigned mentor is the one 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 any time with useful ideas and suggestions. Moreover, if your mentor is hit by a bus (the bus factor [6]), 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 wasting 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. = Development process = The project's lifecycle is NOT design -> implementation -> testing -> documentation. [7] We invite you to adopt a test driven development [8][9][10] approach and to experience agile development [11]. 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). Since our code is now hosted on GitHub [12], you should register an account there and fork some xwiki repositories, so that you can try to build XWiki from sources, and be able to contribute bugfixes. We'll add you to the xwiki-contrib organization [13], and we'll create dedicated repositories for each project. 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 for your modules, 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__. You can ask on IRC for help selecting good issues, or you can pick from the (non-comprehensive) list of easy issues [14] -- This will help you get more familiar with the code your project needs to interact with. - Refine and organize the ideas concerning your project (you can use the Drafts space [15]), 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 xwiki.org 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! -The XWiki Development Team ---------- [1] http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ [2] http://www.google-melange.com/gsoc/events/google/gsoc2012 [3] http://purl.org/xwiki/community/ [4] http://purl.org/xwiki/dev/ [5] http://platform.xwiki.org/xwiki/bin/view/Features/ [6] http://en.wikipedia.org/wiki/Bus_factor [7] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ [8] http://en.wikipedia.org/wiki/Test-driven_development [9] http://www.amazon.com/dp/0321146530/ [10] http://www.amazon.com/dp/0201485672/ [11] http://www.amazon.com/dp/0596527675/ [12] https://github.com/xwiki/ [13] https://github.com/xwiki-contrib/ [14] http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10... [15] http://dev.xwiki.org/xwiki/bin/view/Drafts/
Hello community, I'm so glad that I'm participating in GSOC 2012 and congratulations to Sasinda and Jonathan. A big thanks to Paul and others for giving their support and valuable feedback. Looking forward to work in the project "SOLR search component" and with all of you. Thanks, Savitha Sundaramoorthi. On Mon, Apr 23, 2012 at 12:49 PM, Eduard Moraru <[email protected]>wrote:
Hello community, 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 a lot of good applications this year, with professional approaches and interesting ideas, and it was very difficult to choose only 3. 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 [1]. 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 [2], the next month (until - May 21st) 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 (a precondition is to be subscribed to the list, which you *need to do ASAP* if you haven't already).
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: - [3] http://purl.org/xwiki/community/ - [4] http://purl.org/xwiki/dev/ - [5] http://platform.xwiki.org/xwiki/bin/view/Features/
= Mentorship =
We prefer open mentorship. While your assigned mentor is the one 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 any time with useful ideas and suggestions. Moreover, if your mentor is hit by a bus (the bus factor [6]), 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 wasting 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.
= Development process =
The project's lifecycle is NOT design -> implementation -> testing -> documentation. [7]
We invite you to adopt a test driven development [8][9][10] approach and to experience agile development [11]. 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).
Since our code is now hosted on GitHub [12], you should register an account there and fork some xwiki repositories, so that you can try to build XWiki from sources, and be able to contribute bugfixes. We'll add you to the xwiki-contrib organization [13], and we'll create dedicated repositories for each project. 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 for your modules, 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__. You can ask on IRC for help selecting good issues, or you can pick from the (non-comprehensive) list of easy issues [14] -- This will help you get more familiar with the code your project needs to interact with. - Refine and organize the ideas concerning your project (you can use the Drafts space [15]), 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 xwiki.org 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!
-The XWiki Development Team
---------- [1] http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ [2] http://www.google-melange.com/gsoc/events/google/gsoc2012 [3] http://purl.org/xwiki/community/ [4] http://purl.org/xwiki/dev/ [5] http://platform.xwiki.org/xwiki/bin/view/Features/ [6] http://en.wikipedia.org/wiki/Bus_factor [7] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ [8] http://en.wikipedia.org/wiki/Test-driven_development [9] http://www.amazon.com/dp/0321146530/ [10] http://www.amazon.com/dp/0201485672/ [11] http://www.amazon.com/dp/0596527675/ [12] https://github.com/xwiki/ [13] https://github.com/xwiki-contrib/ [14] http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10... [15] http://dev.xwiki.org/xwiki/bin/view/Drafts/
-- best regards, Savitha.s
Dear Savitha, Dear XWiki Community, this is my first year being a mentor so bear with me in patience. I would like to propose that Savitha starts two pages on dev.XWiki.org - one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow. Eduard, someone, are there example for such pages? It would be possible to replace the project page: http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent but I think this is more a "proposal", or? - one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired. Once donc, please request review and announce. Community, is this process correct? I do not want to start a vote, but a bit of approval would make me happy. thanks in advance Paul Le 23 avr. 2012 à 23:10, savitha sundaramurthy a écrit :
Hello community,
I'm so glad that I'm participating in GSOC 2012 and congratulations to Sasinda and Jonathan. A big thanks to Paul and others for giving their support and valuable feedback. Looking forward to work in the project "SOLR search component" and with all of you.
Thanks, Savitha Sundaramoorthi.
On Mon, Apr 23, 2012 at 12:49 PM, Eduard Moraru <[email protected]>wrote:
Hello community, 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 a lot of good applications this year, with professional approaches and interesting ideas, and it was very difficult to choose only 3. 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 [1]. 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 [2], the next month (until - May 21st) 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 (a precondition is to be subscribed to the list, which you *need to do ASAP* if you haven't already).
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: - [3] http://purl.org/xwiki/community/ - [4] http://purl.org/xwiki/dev/ - [5] http://platform.xwiki.org/xwiki/bin/view/Features/
= Mentorship =
We prefer open mentorship. While your assigned mentor is the one 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 any time with useful ideas and suggestions. Moreover, if your mentor is hit by a bus (the bus factor [6]), 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 wasting 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.
= Development process =
The project's lifecycle is NOT design -> implementation -> testing -> documentation. [7]
We invite you to adopt a test driven development [8][9][10] approach and to experience agile development [11]. 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).
Since our code is now hosted on GitHub [12], you should register an account there and fork some xwiki repositories, so that you can try to build XWiki from sources, and be able to contribute bugfixes. We'll add you to the xwiki-contrib organization [13], and we'll create dedicated repositories for each project. 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 for your modules, 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__. You can ask on IRC for help selecting good issues, or you can pick from the (non-comprehensive) list of easy issues [14] -- This will help you get more familiar with the code your project needs to interact with. - Refine and organize the ideas concerning your project (you can use the Drafts space [15]), 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 xwiki.org 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!
-The XWiki Development Team
---------- [1] http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ [2] http://www.google-melange.com/gsoc/events/google/gsoc2012 [3] http://purl.org/xwiki/community/ [4] http://purl.org/xwiki/dev/ [5] http://platform.xwiki.org/xwiki/bin/view/Features/ [6] http://en.wikipedia.org/wiki/Bus_factor [7] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ [8] http://en.wikipedia.org/wiki/Test-driven_development [9] http://www.amazon.com/dp/0321146530/ [10] http://www.amazon.com/dp/0201485672/ [11] http://www.amazon.com/dp/0596527675/ [12] https://github.com/xwiki/ [13] https://github.com/xwiki-contrib/ [14] http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10... [15] http://dev.xwiki.org/xwiki/bin/view/Drafts/
-- best regards, Savitha.s _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Sorry to answer myself, a few precisions: Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit :
- one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement: - detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...) - software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...) - describe the expected feedback of community and mentors at each phase
Eduard, someone, are there example for such pages? It would be possible to replace the project page: http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent but I think this is more a "proposal", or?
- one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start? paul
Hi Paul, students, The best place for GSoC students to work in, when it comes to architecture, design, documentation etc., is the students' wiki: http://gsoc.myxwiki.org The students' wiki needs a bit more maintaining, but it should be usable. I`ve done some minor decorating for GSoC 2012. The students need to register a new user (the xiwki.org user does not work since it's a different farm). Besides wiki pages, they can also use the Blog if they don`t already have one :). Thanks, Eduard On Thu, Apr 26, 2012 at 2:32 PM, Paul Libbrecht <[email protected]> wrote:
Sorry to answer myself, a few precisions:
Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit :
- one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement:
- detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...)
- software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...)
- describe the expected feedback of community and mentors at each phase
Eduard, someone, are there example for such pages? It would be possible to replace the project page:
http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent
but I think this is more a "proposal", or?
- one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start?
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
On May 2, 2012, at 6:18 PM, Eduard Moraru wrote:
Hi Paul, students,
The best place for GSoC students to work in, when it comes to architecture, design, documentation etc., is the students' wiki: http://gsoc.myxwiki.org
I don't quite agree. For me a GSOC student must be treated exactly like any contributor. Thus for me the best place for architecture, design is http://dev.xwiki.org/xwiki/bin/view/Design/WebHome More generally they should use the exact same tools as all xwiki developers/contributors are using so that we don't create silos: mailing list, irc, design page, etc. Thanks -Vincent
The students' wiki needs a bit more maintaining, but it should be usable. I`ve done some minor decorating for GSoC 2012.
The students need to register a new user (the xiwki.org user does not work since it's a different farm). Besides wiki pages, they can also use the Blog if they don`t already have one :).
Thanks, Eduard
On Thu, Apr 26, 2012 at 2:32 PM, Paul Libbrecht <[email protected]> wrote:
Sorry to answer myself, a few precisions:
Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit :
- one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement:
- detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...)
- software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...)
- describe the expected feedback of community and mentors at each phase
Eduard, someone, are there example for such pages? It would be possible to replace the project page:
http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent
but I think this is more a "proposal", or?
- one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start?
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
On Wed, May 2, 2012 at 7:13 PM, Vincent Massol <[email protected]> wrote:
On May 2, 2012, at 6:18 PM, Eduard Moraru wrote:
Hi Paul, students,
The best place for GSoC students to work in, when it comes to architecture, design, documentation etc., is the students' wiki: http://gsoc.myxwiki.org
I don't quite agree. For me a GSOC student must be treated exactly like any contributor.
Thus for me the best place for architecture, design is http://dev.xwiki.org/xwiki/bin/view/Design/WebHome
More generally they should use the exact same tools as all xwiki developers/contributors are using so that we don't create silos: mailing list, irc, design page, etc.
I agree with Vincent on this, I don't see the point in isolating GSOC students on a special wiki when we have a place for this already.
Thanks -Vincent
The students' wiki needs a bit more maintaining, but it should be usable. I`ve done some minor decorating for GSoC 2012.
The students need to register a new user (the xiwki.org user does not work since it's a different farm). Besides wiki pages, they can also use the Blog if they don`t already have one :).
Thanks, Eduard
On Thu, Apr 26, 2012 at 2:32 PM, Paul Libbrecht <[email protected]> wrote:
Sorry to answer myself, a few precisions:
Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit :
- one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement:
- detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...)
- software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...)
- describe the expected feedback of community and mentors at each phase
Eduard, someone, are there example for such pages? It would be possible to replace the project page:
http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent
but I think this is more a "proposal", or?
- one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start?
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne
Yes, you are right Vincent and Thomas. So, to reiterate, students should use http://dev.xwiki.org/xwiki/bin/view/Design/<http://dev.xwiki.org/xwiki/bin/view/Design/WebHome>to organize and document the work that is going to be done. Just create a new entry for your feature and follow the remaining indications (make a jira issue, send a mail to the community asking for feedback on your documented plan of action, etc.). Sorry for the confusion. Thanks, Eduard P.S.: I have added a mention on the gsoc.myxwiki.org wiki that it is deprecated (pointing to devs.xwiki.org) and have disabled user registration. On Wed, May 2, 2012 at 8:31 PM, Thomas Mortagne <[email protected]>wrote:
On Wed, May 2, 2012 at 7:13 PM, Vincent Massol <[email protected]> wrote:
On May 2, 2012, at 6:18 PM, Eduard Moraru wrote:
Hi Paul, students,
The best place for GSoC students to work in, when it comes to
architecture,
design, documentation etc., is the students' wiki: http://gsoc.myxwiki.org
I don't quite agree. For me a GSOC student must be treated exactly like any contributor.
Thus for me the best place for architecture, design is http://dev.xwiki.org/xwiki/bin/view/Design/WebHome
More generally they should use the exact same tools as all xwiki developers/contributors are using so that we don't create silos: mailing list, irc, design page, etc.
I agree with Vincent on this, I don't see the point in isolating GSOC students on a special wiki when we have a place for this already.
Thanks -Vincent
The students' wiki needs a bit more maintaining, but it should be
usable.
I`ve done some minor decorating for GSoC 2012.
The students need to register a new user (the xiwki.org user does not work since it's a different farm). Besides wiki pages, they can also use the Blog if they don`t already have one :).
Thanks, Eduard
On Thu, Apr 26, 2012 at 2:32 PM, Paul Libbrecht <[email protected]> wrote:
Sorry to answer myself, a few precisions:
Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit :
- one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement:
- detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...)
- software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...)
- describe the expected feedback of community and mentors at each phase
Eduard, someone, are there example for such pages? It would be possible to replace the project page:
http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent
but I think this is more a "proposal", or?
- one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start?
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Eduard, don't you want to keep gsoc.xwiki.org for the GSoC specific work? In my earlier post, I suggested the student to create two posts: - one design page, which will live after the GSoC period if the feature does - one GSoC process page documenting such things as milestones and assessable activities I think the second really does not belong to devs.xwiki.org, unless it's a space for GSoC (which would be ok as well). paul Le 3 mai 2012 à 13:29, Eduard Moraru a écrit :
Yes, you are right Vincent and Thomas.
So, to reiterate, students should use http://dev.xwiki.org/xwiki/bin/view/Design/<http://dev.xwiki.org/xwiki/bin/view/Design/WebHome>to organize and document the work that is going to be done. Just create a new entry for your feature and follow the remaining indications (make a jira issue, send a mail to the community asking for feedback on your documented plan of action, etc.).
Sorry for the confusion.
Thanks, Eduard
P.S.: I have added a mention on the gsoc.myxwiki.org wiki that it is deprecated (pointing to devs.xwiki.org) and have disabled user registration.
On Wed, May 2, 2012 at 8:31 PM, Thomas Mortagne <[email protected]>wrote:
On Wed, May 2, 2012 at 7:13 PM, Vincent Massol <[email protected]> wrote:
On May 2, 2012, at 6:18 PM, Eduard Moraru wrote:
Hi Paul, students,
The best place for GSoC students to work in, when it comes to
architecture,
design, documentation etc., is the students' wiki: http://gsoc.myxwiki.org
I don't quite agree. For me a GSOC student must be treated exactly like any contributor.
Thus for me the best place for architecture, design is http://dev.xwiki.org/xwiki/bin/view/Design/WebHome
More generally they should use the exact same tools as all xwiki developers/contributors are using so that we don't create silos: mailing list, irc, design page, etc.
I agree with Vincent on this, I don't see the point in isolating GSOC students on a special wiki when we have a place for this already.
Thanks -Vincent
The students' wiki needs a bit more maintaining, but it should be
usable.
I`ve done some minor decorating for GSoC 2012.
The students need to register a new user (the xiwki.org user does not work since it's a different farm). Besides wiki pages, they can also use the Blog if they don`t already have one :).
Thanks, Eduard
On Thu, Apr 26, 2012 at 2:32 PM, Paul Libbrecht <[email protected]> wrote:
Sorry to answer myself, a few precisions:
Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit :
- one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement:
- detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...)
- software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...)
- describe the expected feedback of community and mentors at each phase
Eduard, someone, are there example for such pages? It would be possible to replace the project page:
http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent
but I think this is more a "proposal", or?
- one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start?
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Paul, mentors, Just to get it out of the way, please don`t confuse gsoc.myxwiki.org (the wiki I`ve just deprecated) with gsoc.xwiki.org (redirect to the GoogleSummerOfCode space on dev.xwiki.org). I actually found out about gsoc.myxwiki.org this year, noticed that it was updated for 2011 and thought that we could use it for 2012 as well. However, after a better look at it, I`ve noticed that it has been used only around 2009 and it was quite abandoned (and full of spam users), most likely due to the fact that (as Vincent and Thomas underlined) we want students to behave just like regular contributors/committers. Regarding the need for a place where to monitor and report the student's progress, we could have that on devs.xwiki.org as well but (as you suggested) maybe under the GoogleSummerOfCode space. There really is no need for a separate wiki (duplicates users and isolates visibility). So an idea could be to extend the ProjectClass by adding a new TextArea field (i.e. 'progress') where the student and mentor can list milestones and general progress of the student that is 'assigned' to the project. We mark the project's status as 'Selected' and, at the end of the summer, we update the status field to 'Successfully terminated' or 'Failed'. This workflow is suggested by the current design of the ProjectClass, it is only missing a 'progress' field as I`ve just explained. Does the TextArea field offer enough flexibility for reporting the student's progress? Any other fields that might be missing? Thanks, Eduard On Thu, May 3, 2012 at 2:33 PM, Paul Libbrecht <[email protected]> wrote:
Eduard,
don't you want to keep gsoc.xwiki.org for the GSoC specific work? In my earlier post, I suggested the student to create two posts: - one design page, which will live after the GSoC period if the feature does - one GSoC process page documenting such things as milestones and assessable activities I think the second really does not belong to devs.xwiki.org, unless it's a space for GSoC (which would be ok as well).
paul
Le 3 mai 2012 à 13:29, Eduard Moraru a écrit :
Yes, you are right Vincent and Thomas.
So, to reiterate, students should use http://dev.xwiki.org/xwiki/bin/view/Design/< http://dev.xwiki.org/xwiki/bin/view/Design/WebHome>to organize and document the work that is going to be done. Just create a new entry for your feature and follow the remaining indications (make a jira issue, send a mail to the community asking for feedback on your documented plan of action, etc.).
Sorry for the confusion.
Thanks, Eduard
P.S.: I have added a mention on the gsoc.myxwiki.org wiki that it is deprecated (pointing to devs.xwiki.org) and have disabled user registration.
On Wed, May 2, 2012 at 8:31 PM, Thomas Mortagne <[email protected]>wrote:
On Wed, May 2, 2012 at 7:13 PM, Vincent Massol <[email protected]> wrote:
On May 2, 2012, at 6:18 PM, Eduard Moraru wrote:
Hi Paul, students,
The best place for GSoC students to work in, when it comes to
architecture,
design, documentation etc., is the students' wiki: http://gsoc.myxwiki.org
I don't quite agree. For me a GSOC student must be treated exactly like any contributor.
Thus for me the best place for architecture, design is http://dev.xwiki.org/xwiki/bin/view/Design/WebHome
More generally they should use the exact same tools as all xwiki developers/contributors are using so that we don't create silos: mailing list, irc, design page, etc.
I agree with Vincent on this, I don't see the point in isolating GSOC students on a special wiki when we have a place for this already.
Thanks -Vincent
The students' wiki needs a bit more maintaining, but it should be
usable.
I`ve done some minor decorating for GSoC 2012.
The students need to register a new user (the xiwki.org user does not work since it's a different farm). Besides wiki pages, they can also use the Blog if they don`t already have one :).
Thanks, Eduard
On Thu, Apr 26, 2012 at 2:32 PM, Paul Libbrecht <[email protected]> wrote:
Sorry to answer myself, a few precisions:
Le 26 avr. 2012 à 13:24, Paul Libbrecht a écrit : > - one page about her Google Summer of Code work where, for example, the schedule she presented in her proposal is presented to the public and, where we shall elaborate it with milestones that are assessable somehow.
I would suggest it also includes the following which I'm happy to complement:
- detail the incorporation alternatives so that we know what kind of versioning we base on (e.g.: very successful early: incorporation in trunk; successful at end: a simple pull request; simple cases: a standalone contribution with installation instructions, ...)
- software availability at milestones (e.g. unit-tests, docs, can be tried by someone, ...)
- describe the expected feedback of community and mentors at each phase
> Eduard, someone, are there example for such pages? > It would be possible to replace the project page: >
http://dev.xwiki.org/xwiki/bin/inline/GoogleSummerOfCode/SOLRsearchcomponent
> but I think this is more a "proposal", or?
> - one design page about the SOLR component. There are many design pages so Savitha, go ahead and get inspired.
Maybe the page of Fabio is a start?
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Le 3 mai 2012 à 14:26, Eduard Moraru a écrit :
Regarding the need for a place where to monitor and report the student's progress, we could have that on devs.xwiki.org as well but (as you suggested) maybe under the GoogleSummerOfCode space. There really is no need for a separate wiki (duplicates users and isolates visibility).
I agree.
So an idea could be to extend the ProjectClass by adding a new TextArea field (i.e. 'progress') where the student and mentor can list milestones and general progress of the student that is 'assigned' to the project. We mark the project's status as 'Selected' and, at the end of the summer, we update the status field to 'Successfully terminated' or 'Failed'. This workflow is suggested by the current design of the ProjectClass, it is only missing a 'progress' field as I`ve just explained.
How would that behave in history comparisons? That seems to be an essential tool. If the diff wouldn't show the diff of the lines of the textarea, then I'd suggest we simply use the page content.
Does the TextArea field offer enough flexibility for reporting the student's progress? Any other fields that might be missing?
I think I'd intend to write the things within the page. paul
Page history looks good when editing a TextArea property of an object. It behaves the same way as for the page content. How about mixing the two approaches? That is, add a 'progress' TextArea where students can keep a summary of their progress and where they can link to other pages where you can get more details of specific issues. This way the project page looks good, it is displayed by the project sheet and is editable in inline mode. Additionally, you have the freedom to do whatever you want in the linked pages. I am going to implement this right now so that people can start using it. We can change it along the way. Directly editing the content of the project page is definitely not the way to go. Thanks, Eduard On Thu, May 3, 2012 at 3:40 PM, Paul Libbrecht <[email protected]> wrote:
Le 3 mai 2012 à 14:26, Eduard Moraru a écrit :
Regarding the need for a place where to monitor and report the student's progress, we could have that on devs.xwiki.org as well but (as you suggested) maybe under the GoogleSummerOfCode space. There really is no need for a separate wiki (duplicates users and isolates visibility).
I agree.
So an idea could be to extend the ProjectClass by adding a new TextArea field (i.e. 'progress') where the student and mentor can list milestones and general progress of the student that is 'assigned' to the project. We mark the project's status as 'Selected' and, at the end of the summer, we update the status field to 'Successfully terminated' or 'Failed'. This workflow is suggested by the current design of the ProjectClass, it is only missing a 'progress' field as I`ve just explained.
How would that behave in history comparisons? That seems to be an essential tool. If the diff wouldn't show the diff of the lines of the textarea, then I'd suggest we simply use the page content.
Does the TextArea field offer enough flexibility for reporting the student's progress? Any other fields that might be missing?
I think I'd intend to write the things within the page.
paul
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Thank you for the congratulations Savitha, likewise; Sasinda as well. I can't wait to see what the program will produce! Like Savitha, I just wanted to thank everyone involved at XWIKI--especially Evalica, Sdumitriu, Vmassol. Jumping into the pool looks that much easier. Hopefully I will be able to implement a Responsive Web Design skin (a webdesign layout that changes in context of screen size), with XWIKI's help, that everyone can be proud of and match the high standards of XWIKI. If anyone has any input on what they would like to see, definitely feel free to let me know. Thank you all, and best regards, Jonathan Solichin On Mon, Apr 23, 2012 at 12:49 PM, Eduard Moraru <[email protected]>wrote:
Hello community, 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 a lot of good applications this year, with professional approaches and interesting ideas, and it was very difficult to choose only 3. 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 [1]. 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 [2], the next month (until - May 21st) 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 (a precondition is to be subscribed to the list, which you *need to do ASAP* if you haven't already).
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: - [3] http://purl.org/xwiki/community/ - [4] http://purl.org/xwiki/dev/ - [5] http://platform.xwiki.org/xwiki/bin/view/Features/
= Mentorship =
We prefer open mentorship. While your assigned mentor is the one 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 any time with useful ideas and suggestions. Moreover, if your mentor is hit by a bus (the bus factor [6]), 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 wasting 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.
= Development process =
The project's lifecycle is NOT design -> implementation -> testing -> documentation. [7]
We invite you to adopt a test driven development [8][9][10] approach and to experience agile development [11]. 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).
Since our code is now hosted on GitHub [12], you should register an account there and fork some xwiki repositories, so that you can try to build XWiki from sources, and be able to contribute bugfixes. We'll add you to the xwiki-contrib organization [13], and we'll create dedicated repositories for each project. 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 for your modules, 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__. You can ask on IRC for help selecting good issues, or you can pick from the (non-comprehensive) list of easy issues [14] -- This will help you get more familiar with the code your project needs to interact with. - Refine and organize the ideas concerning your project (you can use the Drafts space [15]), 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 xwiki.org 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!
-The XWiki Development Team
---------- [1] http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ [2] http://www.google-melange.com/gsoc/events/google/gsoc2012 [3] http://purl.org/xwiki/community/ [4] http://purl.org/xwiki/dev/ [5] http://platform.xwiki.org/xwiki/bin/view/Features/ [6] http://en.wikipedia.org/wiki/Bus_factor [7] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ [8] http://en.wikipedia.org/wiki/Test-driven_development [9] http://www.amazon.com/dp/0321146530/ [10] http://www.amazon.com/dp/0201485672/ [11] http://www.amazon.com/dp/0596527675/ [12] https://github.com/xwiki/ [13] https://github.com/xwiki-contrib/ [14] http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10... [15] http://dev.xwiki.org/xwiki/bin/view/Drafts/
Hi Thomas, Savitha, Jonathan, Eduard and all, Thanks for the congratulations Savitha and Jonathan. I am delighted to here we are developing for XWiki and GSoc 2012. Congratulations for you too Savitha and Jonathan. My special thanks to Thomas for giving me feed back and helping me a lot. And thank you all in the community. I really look forward to working with you and contribute a lot to XWiki mobile platform. Best Regards, Sasinda Rukshan. On Tue, Apr 24, 2012 at 12:23 PM, Jonathan Solichin <[email protected]>wrote:
Thank you for the congratulations Savitha, likewise; Sasinda as well. I can't wait to see what the program will produce! Like Savitha, I just wanted to thank everyone involved at XWIKI--especially Evalica, Sdumitriu, Vmassol. Jumping into the pool looks that much easier. Hopefully I will be able to implement a Responsive Web Design skin (a webdesign layout that changes in context of screen size), with XWIKI's help, that everyone can be proud of and match the high standards of XWIKI. If anyone has any input on what they would like to see, definitely feel free to let me know.
Thank you all, and best regards, Jonathan Solichin
On Mon, Apr 23, 2012 at 12:49 PM, Eduard Moraru <[email protected]
wrote:
Hello community, 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 a lot of good applications this year, with professional approaches and interesting ideas, and it was very difficult to choose only 3. 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 [1]. 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 [2], the next month (until - May 21st) 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 (a precondition is to be subscribed to the list, which you *need to do ASAP* if you haven't already).
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: - [3] http://purl.org/xwiki/community/ - [4] http://purl.org/xwiki/dev/ - [5] http://platform.xwiki.org/xwiki/bin/view/Features/
= Mentorship =
We prefer open mentorship. While your assigned mentor is the one 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 any time with useful ideas and suggestions. Moreover, if your mentor is hit by a bus (the bus factor [6]), 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 wasting 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.
= Development process =
The project's lifecycle is NOT design -> implementation -> testing -> documentation. [7]
We invite you to adopt a test driven development [8][9][10] approach and to experience agile development [11]. 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).
Since our code is now hosted on GitHub [12], you should register an account there and fork some xwiki repositories, so that you can try to build XWiki from sources, and be able to contribute bugfixes. We'll add you to the xwiki-contrib organization [13], and we'll create dedicated repositories for each project. 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 for your modules, 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__. You can ask on IRC for help selecting good issues, or you can pick from the (non-comprehensive) list of easy issues [14] -- This will help you get more familiar with the code your project needs to interact with. - Refine and organize the ideas concerning your project (you can use the Drafts space [15]), 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 xwiki.org 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!
-The XWiki Development Team
---------- [1] http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ [2] http://www.google-melange.com/gsoc/events/google/gsoc2012 [3] http://purl.org/xwiki/community/ [4] http://purl.org/xwiki/dev/ [5] http://platform.xwiki.org/xwiki/bin/view/Features/ [6] http://en.wikipedia.org/wiki/Bus_factor [7] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ [8] http://en.wikipedia.org/wiki/Test-driven_development [9] http://www.amazon.com/dp/0321146530/ [10] http://www.amazon.com/dp/0201485672/ [11] http://www.amazon.com/dp/0596527675/ [12] https://github.com/xwiki/ [13] https://github.com/xwiki-contrib/ [14]
http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10...
devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
participants (7)
-
Eduard Moraru -
Jonathan Solichin -
Paul Libbrecht -
sasinda rukshan -
savitha sundaramurthy -
Thomas Mortagne -
Vincent Massol