Although I'm only mentoring Shaola, maybe some of it is useful for
Dimuthu as well:
From the mentors list:
===
We now are in the community bonding period [1] which lasts until May 19.
During this period students should learn about your project, your
release processes, the Apache Way, how we do things around here,
interact with the community and close any knowledge gaps they might
have. [1]
http://googlesummerofcode.blogspot.com/2007/04/so-what-is-this-community-bonding-all.html
===
Here's a FAQ about Apache:
https://www.apache.org/foundation/faq.html
IMHO most important are "What is Apache about?" and "What is Apache not
about?". (My personal addendum to that is "Apache is not like
Wikipedia". If you've ever edited in wikipedia, you'll notice the
difference after a few days)
https://www.apache.org/foundation/how-it-works.html
The roles are simpler than in that text, all committers here are PMC
members, and the PMC chair (Andreas) is also ASF member.
Only committers and above have write access to the official PDFBOX
repository. So the best would be to set up a copy on an open source
repository.
https://en.wikipedia.org/wiki/Comparison_of_open-source_software_hosting_facilities
We're trying to be transparent. So stuff that deals with the
implementation of the project should probably be in the ticket. To see
what I mean, have a look at
https://issues.apache.org/jira/browse/PDFBOX-615 and the related issues.
PDFBOX-615 started with "I will be trying to add this functionality this
week" but it became a huge effort by several people that ended 4 years
later :-) See also John's remarks about my code. It annoyed me somewhat
at the beginning, but at the end it resulted in much better code.
Note that you can edit in JIRA. See an example here
https://issues.apache.org/jira/browse/PDFBOX-2039
i.e. you can modify previous posts.
Stuff that deals with PDFBOX in general is best in this (publicly
readable) mailing list. The advantage is that others might answer you
(if they want) when I'm working, sleeping, or not on the internet for
whatever reason. Stuff that deals with java, svn and maven - e-mail me
if you don't get the answer within a few minutes from google or from
stackoverflow, i.e. don't waste time searching.
Using other libraries: this is OK as long as they have an Apache license
or a compatible license (GPL is not). However we don't use many
libraries, everything is already big, so if you want, ask first. (Sorry
if you already mentioned a library, will reread your proposal again
later) Of course it is always OK to temporary use whatever you want to
just test a theory / strategy / algorithm.
Using other code: the code should rather be your own, but you can use
small excerpts from stackoverflow.com etc but indicate it in your code
with a link. Always comment in the code if you were "inspired" by other
peoples code or algorithms or research papers, just look at the existing
shading code for how I did it.
Don't forget the Apache header in new modules.
Your code should work on JDK5, so that we can use it in the 1.8 version
too. So don't use diamond operators, lambda expressions or even
String.isEmpty().
IDE: I recommend netbeans but you're free to use your own. Just make
sure that svn (and whatever the hoster will use) and maven are
integrated in it, this will make your life easier.
A personal recommendation from my student days in the 80ies: don't work
all night. Such code was usually found to be poor/worthless after I had
the much needed sleep.
Andreas: correct me if I forgot something.
Tilman