The ForgeRock I3 Open Platform is an Open Source suite of solutions for Interaction, Identity Management and Integration. The ForgeRock team firmly believe that the Open Platform benefits from active contributions from the community. At the same time, the need for bug fixes for actual customer problems and stable and predictable releases is covered by the central development team at ForgeRock.
In order to ensure that development work can be carried out productively, transparently and inclusively, we have created the following principles which guide our development processes.
The Road to being a Committer Shall Not Be Long and HardWe believe that active participation is hampered if too much is expected before the contributor can provide code to the project. While ForgeRock need to assure that contributions are of good quality, we do not want a long probation period that demotivates potential contributors. Read the following section about how to 'Become an official contributor' to the community.
Released and Supported Code Shall Always Be Of Good Quality
The ForgeRock I3 Open Platform is available for download and is supported by ForgeRock. As such, the ForgeRock team need to ensure that all code going in to the products is good quality and is backed up by appropriate documentation, sample code, test and migration scripts. This also involves setting up test instances that can exploit the new features, testing on different platforms, updating training material and bringing our engineering, support and sustaining teams up-to-speed on the changes. Making sure that all of the above is taken into account is a big job, and so we need to set some boundaries so that it stays manageable.
To this end, ForgeRock will lead development work by coordinating the ForgeRock Engineering and Sustaining teams and the community contributors. ForgeRock will facilitate communication channels for everyone involved, will lead the agile development process, and will manage the road map for the products. In the event that a contributor has code to submit that is outside the roadmap or that ForgeRock cannot support at that time, then the submission will be added as an extension. Extensions are distributed in the same way and under the same license as the products but are not supported by ForgeRock. At a later time, extensions can be moved into the main product and thus supported parts of the solution.
ForgeRock Developers and Community Developers Shall Be Able to Work Side-by-Side
The ForgeRock community has many highly competent developers, and we want them to feel that they are part of the team, not second-class citizens to our engineering team. To this end we make sure that our communication and activity is as transparent as possible. If you are a contributor then you will be invited to regular conf calls, you will be added to an internal email alias that covers all developers, and you can participate in development sprints whenever you have the opportunity.
Documentation And Tests Are An Essential Part of Each Development Task Most developers will be familiar with the issues of testing and documenting that are often postponed and given low priority. In a closed environment with a limited number of very involved developers, work can still continue to a certain degree with poor documentation and testing; in an Open Source effort then this is doomed to failure. New contributors join frequently and developers are spread all over the world.
The ForgeRock development process covers the need for documentation and testing. We hope everyone involved understands that we HAVE to be strict about this - making sure that everyone has the information they need.