The contribution workflow is still being developed within the scope of this project. Meanwhile, we have significantly improved our previous integration process, especially through the legal frame we propose, which is to sign a Contributor License Agreement (CLA).
We encourage all of you who have contributed or are going to contribute to OCCT development to sign the CLA. This is the first mandatory step for your contributions to be integrated into OCCT. The CLA and the instructions for signing it are presented in the Get Involved section of this website.
This message is to explain this current integration process, and possibly to start a discussion gathering your comments and suggestions. Please note that we do not consider this process as a final one, it is only for the transitional period until a complete set of tools is set up and a more open process gets established. Please join the discussion on the tools we are going to provide to achieve a better process, in a separate thread.
Our integration process is built around the MantisBT issue tracking system, now available publicly at http://tracker.dev.opencascade.org. This system contains all the issues we handled on OCCT for the past 10 years, therefore those of you who are interested in the destiny of the bugs registered after they had been reported on the OCCT userвЂ™s Forum, can try to find those issues there by their ID's. Note that at the moment only the issues originated from the open source community are visible publicly; the issues originated from our customers are kept confidential (they can be opened only if we get an explicit permission from the customer to do so).
Each change made to OCCT must be recorded as an issue in the tracker and needs to pass through a standard life cycle: submission → assignment → resolution → code review → testing → integration.
The details on the issue life cycle are described in the document Contribution Workflow. Here is a short description of the process, where you are assumed to be a contributor providing some fix or improvement into OCCT.
- You need to be registered on the portal and have the CLA signed and approved (your role will become a вЂњContributorвЂќ then) in order for your contribution to be considered.
- You create an issue for the contribution in the tracker. It is important to provide a good subject reflecting the nature of the change, define appropriate parameters (severity, category, etc.), and give a detailed description for the change including (when possible) steps to reproduce the problem (or test the improvement). The issue gets status New and is assigned to the person responsible for the OCCT component indicated in the field вЂCategoryвЂ™.
- You provide the sources for the change and switch the issue to Resolved. Currently the recommended way of providing sources is a patch (diff) file, along with indication of OCCT version for which the patch has been made. Alternative ways such as an archive of changed files could be Ok as well. (In the near future we are going to set up a public version control system, and source code changes will be managed as branches.)
- The code is reviewed by our expert; if any serious issue is found, the issue including the comments on encountered problems is assigned back to you, for you to provide a corrected version or additional information as requested.
- As soon as the review is completed successfully, the change is tested by OCC certification team on non-regression tests database. At this step, you can be requested to provide more information on how to test your change. If the tests fail, we may either reassign the issue back to you to solve the problem, or fix the problem by efforts of our own team, depending on the case.
- When the tests are Ok, the bug is switched to Tested, then to Verified (upon integration to the main branch of the version control system), and finally to Closed (when a corresponding certified OCCT version is released). The issue will be returned to you so you can check whether it is integrated well, and then your name can be seen in the Change Log or the Roadmap in the tracker.
Please feel free to ask questions and propose your ideas if you see that something can be improved.