You want to contribute to db4o? Great!
How to Contribute What?
Projects
A project is a superset of all contributions other than the core code (which is hosted in the SVN).
A project can be anything that you feel is important for the community and can include or link to any of the other contributions below, e.g.:
- code add-ons
- articles or translated documentation
- specifications or design proposals
- user groups
- etc.
Any project related to db4o can be created in ProjectSpaces by simply sending a private message to our community host.
For projects considered of strategic importance you can run your project under our CodeCommander program. The program defines a range of incentives such as collaboration with core team members (including pairing sessions), monetary rewards, access to development infrastructure for project support and marketing of successful projects to a large user community for fast adoption.
By default, you enter into a db4o Contributor License (dCL) agreement between yourself and db4objects, when you contribute a project to this community, unless indicated otherwise or unless a written agreement is in place. The dCL allows you to make your contribution available for free and unrestricted download to the community at large. Do NOT contribute work which is not compatible with the dCL to the Developer Community. You can always host this work in other places and link to there from here.
For hosting source code of db4o related projects we recommend the following sites:
- Sourceforge
- Codeplex
- Code.google.com
- Launchpad.net
Core code
The core code can be checked out from db4o SVN repository: https://source.db4o.com/db4o/trunk (for more information about working with db4o sources see our Working with Source Code guide)
If you want to contribute to the core code, you need to sign a Joint Copyright Agreement (JCA) or become a contractor or employee of db4objects, Inc. with an Invention Assignment and Confidentiality Agreement (CIACA or EIACA).
Contact Anne to sign on as a core contributor with a JCA.
If you want to be paid by db4objects to be a core contributor, check out the Job Forum for current openings by db4objects or, if you think you have a good proposition to make, send a blind mail to career@db4o.com.
Before you apply, however, we recommend that you read this blog post by Carl, where you will learn how to improve your chances to get paid by db4objects for something that may, so far, have just been your hobby.
Open Code
Any code other than for the db4o core distribution can be contributed and redistributed in the db4o Download Center. We recommend that you combine the code contribution with a ProjectSpace for documentation etc., e.g. for the db4o Eclipse Plug-In project:
To obtain upload rights for a specific folder in the Download Center (and to register the project in ProjectSpaces, if wanted) simply send a private message to our community host.
Before uploading code, you will have to accept the db4o Contributor License (dCL) agreement between yourself and db4objects by clicking on the respective button during the commit process.
Complimentary Open Source Projects
Complimentary open source projects that include db4o or that provide tools for its easier integration are an important channel to bring db4o into the hands of as many developer as possible which consequently experience its benefits first-hand. Examples of those projects can be found in db4o's ProjectSpaces and, the more prominent ones - like Fedora-Linux, Mono and Eclipse -, on our "Open source partner" website.
Redistributing db4o in an open source project is straight-forward, if the complimentary project is licensed to its end users under the GPL. Simply download, use and redistribute db4o under the GPL.
Redistributing db4o in an open source project which is licensed under a non-GPL license requires the use of the db4o Opensource Compatibility License (dOCL), so that you can bundle and redistribute db4o (under the GPL) together with non-GPL'd derivative work.
For more information about the licensing options of db4o for use and redistribution in open source projects (and about the alternative commercial license) check this white paper about the dual license model.
Test cases
Test cases are key in db4o's development since we are a test-first project working under agile/XP paradigms.
Our fully integrated unit tests are the basis for db4o's 2-hourly continuous builds to ensure the highest level of integration and quality assurance.
Upload your test case into the respective test case folder in the db4o Download Center. Post your unit test in the form of either nUnit or JUnit test classes. Make your test as concise as possible to reproduce the issue you are experiencing. When you upload your first test case, you will be asked to accept the db4o Contributor License.
Someone on the team will moderate incoming test cases and either accept or reject them to be included in our SVN.
Bug reports
Bug reports are important, and good reports have a higher chance to be quickly fixed.
File your bug reports in Jira. Jira allows you to track the progress, to let people vote on it etc., so nothing is lost in the process of prioritizing product plans.
Support
The most important contribution you can do is to help your peers with user questions in the forums. This helps to grow the db4o community, further its adoption among Java and .NET developers and thus make db4o a mainstream persistence solution available to every developer.
We have no institutionalized forum contribution measures, like other projects, but we expect that you try to answer at least as many questions as you have asked yourself. Don't be shy, it's not necessary to be a db4o guru in order to help (your help is really appreciated, just give it a shot!)
If you like, you can also participate or even initiate or moderate a non-english language forum.
Documentation
Starting with db4o version 6.0 we're switching to a WIKI based documentation system which will help to gradually gather contributions on a much broader level than before. Up to v5, documentation contributions were handled like core code contributions, unless they were part of an open project in ProjectSpaces.
For more information - stay tuned!
Articles, Presentations and Webcasts
Articles, presentations and webcasts on any issue are helpful - and the Community Content Section is a great place to put them.
If you have any ideas, or if you'd like to contribute by writing an article for this list, here's a list of Article ideas.
Send us your db4o presentations to share it with the community for reuse in other events.
To register your own article, presentation or webcasts please send a private message to our community host.
User Groups
User groups are driven by members of the community in key locations and within large corporations.
Simply mail to community@db4o.com to get in touch with the group you are interested in.
Why contribute?
Because contributing to the db4o project offers you three major rewards:
- Community - be part of a community of like-minded people. People who merit good software coding and clean object-oriented technology. Work with the brightest in the field, learn and share knowledge, join discussions in online forums or real meetings, and most of all, have fun!
- Career - contributing to the db4o community exposes your skills as a coder as well as your working and communication style, so you may be hired by a cool Silicon Valley company, no matter where in the world you are based - you just need Internet connection and sufficient English language skills.
db4objects and many other companies, even IBM, systematically screen for your open source contributions before hiring. The db4o community is an excellent platform to expose your skills, because object databases are a very advanced topic but still small enough, so that you can have a real impact.
Read more about open source and the job market in articles like this (a long version from ETH Zurich as a PDF for download here).
- Recognition - db4o's most active and valuable contributors are recognized with the dVP (db4o Most Valued Professional) program. This program combines some perks including a badge, free air travel to user conferences, participation in core product planning processes, and visibility to potential people seeking to hire db4o experts.
Background
You may wonder why we have some specific rules and limitations in place for your contributions, specifically of the software code. Here's some background.
The db4o project is distinguished in two parts:
- db4o core contributions
- open contributions
db4o core contributions are contributions to that part of the db4o project of which the I.P. (intellectual property) is managed by db4objects to offer dual licensing.
Dual licensing is the option for users to choose between a GPL version and a commercial version. The GPL version is the one that is distributed by db4o by default. The commercial version is primarily needed by customers who want to embed db4o into their non-GPL products for redistribution.
To that end, and since commercial customers also often require indemnification against copyright claims (to avoid problems such as the famous SCO/Linux case), db4objects has to ensure that every contributor to the core is assigning joint copyright for these contributions or provides a license which allows for unrestricted redistributions.
All this helps to further the adoption of db4o, but also enables db4objects to make money, which is then, apart from a small profit margin, reinvested into db4o development and marketing.
Open contributions are contributions to the project spaces, add-on code, presentations, community documentation (coming soon), which are available for general distribution through the db4o community under unrestricted licensing terms. Anyone in the community can take and reuse these components for their own purposes.
Valid
As of 5/7/2008 until further notice.