Contributing to DREAM.3D
The DREAM.3D project embraces community contributions, and desires to keep the process of contributing changes as easy as possible. BlueQuartz Software, as the maintainers of the DREAM.3D project, request that all contributors read, sign, and submit a contributor license agreement (CLA). Information on obtaining the CLA and instructions for submission can be found on the License page.
The CLA defines the rights of contributors, users, and BlueQuartz Software as it pertains to intellectual property and licensing. The CLA does not transfer any intellectual property to BlueQuartz Software. Instead, the CLA allows BlueQuartz to distribute DREAM.3D to third party users with appropriate licensing. Many users of DREAM.3D operate in a commercial setting, and desire to build tools that may be proprietary. It is therefore important that BlueQuartz be able to provide a suitable license to these users that fits their needs.
Please direct any questions concerning the CLA or contribution policies to firstname.lastname@example.org.
Contributors may not be able to execute a CLA. If these contributors possess tools that they would like to see distributed to the community in the DREAM.3D binaries, they may place their code in a Plugin and submit a request for that Plugin to become curated. A curated Plugin will be stored on the parent DREAM.3D project page, but original authors will maintain full control and licensing authority over the Plugin. If a Plugin becomes curated, BlueQuartz will utilize its resources to build the Plugin in our nightly builds and release distributions, free of charge.
In order to present a cohesive experience to DREAM.3D users, BlueQuartz requires that curated Plugins maintain certain standards:
- Curated Plugins must compile before each DREAM.3D release to be incorporated into the distribution.
- Filters within curated Plugins must contain proper documentation files. These documentation files should conform to the same format as core DREAM.3D Filters, and properly explain to users the functionality of the Filters and their inputs. The author is responsible for placing any citations for Filter algorithms within the documentation.
- Filters within curated Plugins must each contain a unit test. The unit test should ensure the Filter executes with no errors given proper inputs, properly errors if given improper inputs, and produces reasonable outputs given the associated inputs.
- Any source code should conform to the general style adopted in DREAM.3D core Filters. Information on this style can be found in the Contributing file within the DREAM.3D source.
To submit a Plugin to become curated, please email email@example.com to begin the process.