Let’s make Openbravo even better! Guide for Core Contributors
Community contributions are a key aspect of every open-source project and Openbravo is not an exception
We encourage any Java developer who wants to get involved in the Openbravo project to do so, as the more contributions we get from the community, the better our products will be!
And the deeper you want to go in the Core’s code, the greater the potential impact your work will have.
Of course, as Uncle Ben once said, “With great power comes great responsibility”. A change with greater impact also means increasing the possibility of introducing defects, so we have procedures to control the risk.
The most straightforward way of contributing is by creating modules. You may want to check our wiki for the details of this process.
Contributing to Core
Although the modularity model allows to build on top of the released content, sometimes it is not enough. In those cases the code has to be incorporated to the main trunk, known as Core.
Due to the intrinsic risk of introducing defects by modifying the main distribution, our Development Team has some guidelines for helping those willing to contribute.
- First check for similar developments
It might happen that a required change is already in development as part of a larger project. You should check our Product Roadmap.
- Expose your idea
The idea should be communicated to the Openbravo Team so it can be added to the list of ideas to be implemented in the Roadmap
- Get contribution approval
The Product Team has the task of approving the contribution based on a number of factors. Only contributions aligned with the Product Roadmap will be accepted. The usual time for a response is two weeks after receiving the contribution proposal.
- Get your development accepted
In order to get the code merged into the main development branch, there ae a number of technical issues that have to be takes into account.
The Development team will require a series of deliverables in order to review the contribution. This includes code itself obviously, but also the functional and technical documents that explain the fix or improvement the code is supposed to tackle.
Some rules apply to every contribution. For example, since Openbravo supports several databases, operating systems and web browsers, any contribution must adhere to that support. For more information, you may find the list of System Requirements for the Backend and the list of Hardware and Peripherals for the webPOS.
Also, as mentioned above, more critical developments have more associated risks. During the Code Review sessions, the Development team will be stricter on the compliance of the Coding Conventions in case the contribution is made in a critical piece of the code.
Depending on the nature of the development, some additional deliverables may be required, like a set of functional test cases to handle to the QA team, unit tests to incorporate to our Product Integration flow, or even Selenium automated test cases. Please check with Openbravo Team in order to know the expected coverage required as part of the contribution.
Why should you contribute?
Contributions will improve the project, so the whole Openbravo Community will get your contribution as a feature.
Also, the contributed code becomes part of the main trunk, meaning the Development Team will take care of the maintenance tasks associated with that code as well. Non-contributed code and module developments remain the author’s responsibility, so any future update or change should be taken into account by those who keep that code.
Benefits of contributing for the developer
A successful contribution has several advantages:
- The defect/feature request from the End Customer is closed from your side
- You will ensure that the solution is a good functional solution (approved by Openbravo)
- No maintenance burden for you, since it is taken on by Openbravo
- Increased functional and technical knowledge about Openbravo
Benefits of contributing for the end customer
- Receives a good functional solution
- Maintained by Openbravo
- The feature is future proof
Benefits of contributing for the Openbravo project
- Makes the project evolve faster
- Increase the knowledge, both functional and technical, of contributors