Gemini DBAccess Committers Guide
Welcome to Gemini DBAccess! As a committer you have demonstrated that you are not only interested in the project but are willing to contribute some of your time and energy to improving and advancing it. Thanks for that.
This page contains some hints and helps to get you up to speed and on your way.
Gemini is a multi-faceted project, with multiple subprojects that work together. The most important way to achieve this is to ensure there is regular communication not only with other team members but with members of the other teams. This is achieved in 3 different ways:
- Project Conference Calls
The Gemini team has a regular conference call that is open to both committers and community members alike (although in practice consumers rarely join). Comitters are strongly encouraged to be on this call as it is the primary way that important issues are discussed and resolved. See the wiki http://wiki.eclipse.org/Gemini/Meetings for the call details, agenda for the next call, and minutes of previous calls.
- Gemini Dev List
The dev list can be used to ask questions or bring up issues to the Gemini DBAccess subproject or the Gemini project at large. Committers should subscribe to the dev list (https://dev.eclipse.org/mailman/listinfo/gemini-dev) and participate in the discussions.
- Bugzilla threads
Bugzilla is used to track bugs and issues and there are often bug-related discussions. Avoid having these discussions in email since the discussion has value worth capturing and should be associated with and locatable from the bug under discussion.
The source code and the project pages are managed by Git:
- Project web page: http://git.eclipse.org/c/www.eclipse.org/gemini/dbaccess.git/
- Source code: http://git.eclipse.org/c/gemini.dbaccess/org.eclipse.gemini.dbaccess.git/
- Changes that have been submitted for code review can be seen here: https://git.eclipse.org/r/#/q/status:open+project:gemini.dbaccess/org.eclipse.gemini.dbaccess,n,z
Development and Contributions
DBAccess is organized as a set of Eclipse projects. For changes of the source code, Gerrit is the preferred way to contribute. The steps to contribute are the following:
- Install Eclipse IDE for Java Development including the Git/Egit plugins.
- If not already there, open a bug in Eclipse Bugzilla.
- Sync the DBAccess project to your PC. For changes of the source code, Gerrit is the preferred way to contribute. For details about how to setup the DBAccess project on your local PC using the Eclipse IDE, please refer to How to Use Gerrit.
- Make your changes and tests.
- Run the maven build in the mvn_parent directory
- mvn clean install
- Submit the changes to Gerrit using a meaningful commit message (including a reference to the Bugzilla ticket).
- Ask a committer to review the changes.
External code must come through the Eclipse IP process (http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf). Bugs must be filed by the contributor, with the code attached, or the code submitted for review in Gerrit. Contributers should have been the primary authors of the code, and the code should be approved by the project lead before being committed to the repo.
All code that is being committed to the Gemini DBAccess repo should have an associated bug or enhancement request in Bugzilla. The changes should be submitted to Gerrit for code review (see How to Use Gerrit). The code should be reviewed by another member of the team and have appropriate tests in place before being committed.
The Gemini DBAccess team is not currently big enough to experience checkin collisions, but this highlights the importance of communication. If a checkin collision should occur, contact the team member you are colliding with and work out a suitable solution. It will likely just involve doing a simple managed merge.
Central Project Builds
A build of the DBAccess project can be triggered on the Eclipse Hudson:
Gemini DBAccess depends on JDBC drivers that might not be part of the delivered bundle. In that case, the JDBC driver bundle has to be downloaded separately. The OSGi JPA classes are also required and are currently checked in the repo. Potential new dependencies should be discussed on the dev list before entering CQ requests.
We try (and have been successful up to this point) to achieve consensus around any issues and decisions that come up. This implies that there be flexibility on the part of all those involved. Stances taken based on pride or preconception are not productive and only serve to make issues more difficult to resolve.
In the event that a decision cannot be reached by consensus then a simple polling of the committers will be taken, with the project lead having the right to exercise a veto.
Releases should be discussed and included in the project plan. The release process must include an Eclipse release review as dictated by http://wiki.eclipse.org/Development_Resources/HOWTO/Release_Reviews.
A number of developer resources are available on the Eclipse wiki: http://wiki.eclipse.org/Development_Resources.