DataNucleus is open source, released under the Apache 2 license. As a result you are welcome to develop it further. We require assistance on many areas of the project should you be interested. A few selected areas where work is needed are
If you are interested, please go to the DataNucleus Forum and raise a thread in the Volunteers forum. Please make sure that you have time to spend on DataNucleus development before volunteering as this would only waste our time otherwise; we're not interested if you only have a week or so and then disappear off onto something else. There are many interesting parts of the system to work on so this is your chance to get aboard the project; and demonstrating to an employer an involvement in an open source project can be beneficial to your career.
DataNucleus uses Test Driven Development (TDD). It has many test suites available and all should be run to provide stability in the codebase.
When you have DataNucleus commit rights (see Forum), the development process should be as below. Please abide by these simple rules
All contributions to the DataNucleus Project must adhere to the Apache 2 license. Notwithstanding the above, at the discretion of the PMC, DataNucleus Project downloads may include separately licensed code from third parties as a convenience and where permitted by the third party license, provided this is clearly indicated.
All contributions must contain the following copyright notice.
/**********************************************************************
Copyright (c) 2006 {your name} and others. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Contributors:
{year} {contributor1} - {description of contribution}
{year} {contributor2} - {description of contribution}
...
**********************************************************************/
The original contributor is the one who contributes the first version of the file. A contributor may be a person or an organization - whoever owns the copyright. If the contributor is an organization, the person may also be indicated. For each additional contributor, indicate the part of the code or contribution that came from the contributor, especially if it contains an interesting algorithm or data table etc. For clarity, also indicate the contributor in the actual section of contributed code. Also reference the bug ID if applicable. The basic principle is to clearly identify the contribution... especially if it is a separable block of code.
There are many different versioning systems in use by software. All typically use major.minor.revision (occasionally with finer grain below that). Some use suffix alpha or beta to reflect how close the software is to full release. Some use versioning starting at say 1.0.0, and going up from that until some release e.g 1.0.4 that is considered the full release. DataNucleus uses the following versioning policy
The use of "Milestone" rather than "alpha" or "beta" is because all DataNucleus releases are run against all unit tests and TCKs and so stability is typically inherent.
We increment the minor version number when we are changing internal APIs (but not client facing APIs). We increment the major version number when we are changing external (client-facing) APIs.
Coding standards are more complicated to define so please look here for details.
DataNucleus has the following mailing lists to aid in tracking development. They are read-only.
When there is a DataNucleus product to be released (e.g AccessPlatform), the following is the release process
When there is a DataNucleus plugin to be released, the following is the release process
mvn clean source:jar install assembly:assembly deploy:deploy -DdescriptorId=src
DataNucleus originated as JPOX in 2003 and consequently many people have contributed to its
development over the years, and has been open source since the outset. In terms of metrics of
the codebase we recommend use of Ohloh, providing number of lines of code, estimated cost etc
to replicate it.
Ohloh -