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

Reply via email to