This page focuses on code contributions to the existing codebase. However, other types of contributions are welcome too. For example, contributions of original free-to-use survey content, back-end integrations, validation data, and analysis or processing tools are all welcome.
This page assumes you already know how to check out and build the code. Contributions to the DukeCore framework are expected to comply with the [DukeCore Contribution Terms and License Policy][#contribution]; please familiarize yourself with this policy prior to submitting a pull request. For any contribution, ensure that you own the rights or have permission from the copyright holder. (e.g. code, images, surveys, videos and other content you may include).
Changes to DukeCore always have a corresponding GitHub issue. If there's not an existing issue for what you want to work on, please add one yourself.
Implement your changes in your personal fork. If you are a project maintainer, you can alternatively use a feature branch. Feature branches are always linked back to their issue by being named "issues/#" (ex, naming the branch "issues/1" or "issues/175".)
After implementing your changes, create a pull request and your changes will be reviewed by the framework's maintainers.
Thank you for your interest in contributing to the DukeCore community. In order to maintain consistency and license compatibility throughout the project, all contributions must comply with our licensing policy and terms for contributing code to the ResearchKit project:
- If you are submitting a patch to the existing codebase, you represent that you have the right to license the patch, including all code and content, to Duke University and the community, and agree by submitting the patch that your changes are licensed under the existing license terms of the file you are modifying (i.e., DukeCore BSD license). You confirm that you have added your copyright (name and year) to the relevant files for changes that are more than 10 lines of code.
- If you are submitting a new file for inclusion in the DukeCore framework (no code or other content is copied from another source), you have included your copyright (name and year) and a copy of the DukeCore BSD license. By submitting your new file you represent that you have the right to license your file to Duke University and the community, and agree that your file submission is licensed under the DukeCore BSD license.
- If you aren't the author of the patch, you agree that you have the right to submit the patch, and have included the original copyright notices and licensing terms with it, to the extent that they exist. If there wasn't a copyright notice or license, please make a note of it in your response. Generally we can only take in patches that are BSD-licensed in order to maintain license compatibility within the project.