Contributing To the Projects
OpenAM, OpenDJ, OpenIDM and OpenIG are open source projects led by us here at ForgeRock.
You can promote and share your contributed extensions, devops scripts, and code within our user community. This is something we’ll be working to improve and automate this year.
Contributions fall in to different categories, depending on the type of the contribution and whether you would like your contribution to be accepted into the codebase or not. We decide which contributions should be accepted in to the projects based on the product fit and the benefit to the user community.
You will find a link to each project’s issue tracking page on the main project page. From the issue tracking project you can report issues. When submitting a bug fix, you first need to create an issue:
- Set issue type to ‘Bug’
- The component list is full of acronyms. Don’t worry too much if you can’t set this sensibly.
- Assign the bug to yourself or the bug will be assigned to the default owner and you won’t be able to reassign it to yourself.
- Add ‘Contribution’ as a Label. – This will help the community team find and track your fix.
Once you’ve created your jira issue you can follow the ForgeRock Development Process to get your fix into the codebase.
to Bug fixes must adhere to the ForgeRock coding standards and the Copyright & license requirements described below.
Unsupported Community Contributions
Because the projects support extensions points, users who have built extensions and the wider community can all benefit from sharing of those extensions. The same it true for client libraries, dev opts scripts, business logic scripts and so on. By sharing it is possible to build a community to help develop, maintain & test your code. We refer to contributions of this type as being Unsupported Extensions, in that they are unsupported officially by ForgeRock. Typically the contributor will be responsible for deciding which contributions to accept into the extension’s code base, and the general direction of the project.
If you want to contribute such an extension email us at email@example.com and we’ll set up a call to discuss where you would like the code to live (we can host it for you) and to discuss the details of the extension. After that ForgeRock will build a contribution page for the extension. This will hold a description of the contribution, links to the source repository, issue tracking project etc. These kind of contributions will be free for the community to download. This year we will be working to build automation of this process into this site.
If an unsupported extension attracts a lot of attention from users ForgeRock will contact you to discuss accepting it into the projects and make it a part of the supported Identity Platform.
We don’t require that unsupported contributions adhere to ForgeRock coding guidelines and standards or the copyright and licensing requirements outlined below. However, if they do it would make it much easier for them to be accepted into the project should they attract such attention.
We are pleased to accept contributions into the project codebase when they benefit the majority of the projects users and make sense in terms of the overall direction and aims of the projects. In these cases the contribution will later become a supported part of the ForgeRock Identity Platform.
These contributions must adhere to:
- ForgeRock coding guidelines and standards,
- The copyright and licensing requirements outlined in the section below.
To find out if ForgeRock would accept your contribution email us at firstname.lastname@example.org and we will set up a call to learn about your contribution. We will then make a decision on whether it should be accepted into the project. Obviously doing this early in your project.
Warning: It is NOT recommended that you modify the core of a product unless you have agreement from ForgeRock that your changes will be accepted back into the project.
Once you’ve modified core it becomes hard to upgrade a product, apply security patches, and if you’re a ForgeRock customer you may find you are not supported. If in any doubt please email us before modifying core.
Copyright & License
No matter what you contribute, there are going to be copyright and license issues we have to address.
There are only two kinds of contributions you are able to contribute:
- Work that you have personally done yourself, for which YOU are the copyright holder
- Work that you have EXPLICITLY been given license to contribute.
Any contribution you make will always be under license. You can also assign the copyright if you wish.
There are many different open source licenses all of which grant the licensee different rights. Forgerock.org uses the CDDL, although many licenses are compatible, we cannot accept other licenses without explicit approval from the community manager. We are unable to accept any code, (or dependencies on) that is licensed under GPL.
Please contact email@example.com if there are any questions around this, as it can be a complex, and sticky topic.
If your contribution consists of multiple files, having a file as part of the submission that lists all dependencies, and licenses under which they are used, would make it much easier to verify.
Every source file should have a comment near the top, (suitable form for the content). The contents of the comment should be as is shown in the Coding Style and Guidelines wiki page.
We and the entire ForgeRock community really appreciate your contribution to these projects!