We would love to get contributions from you! To keep the process manageable we please ask you to follow the workflow below. By participating in this project, you agree to abide by the code of conduct.
Most of the core development happens on NCSA Bitbucket. The master
and develop
branches are pushed to
GitHub nightly.
We encourage contributors to create an account on NCSA Bitbucket and make pull requests there. We also accept contributions directly on GitHub.
- Make sure you have an NCSA opensource account
- If you want to make your pull request on GitHub make sure you have a GitHub account
- If it's a new feature or improvement please discuss your ideas with the community on the HipChat channel or by sending an email to the mailing list. You can subscribe to the mailing list here.
- Submit a ticket in Jira for your issue, if one doesn't exist already
- If it's a bug, clearly describe the issue including steps to reproduce it
- If it's a new feature, clearly describe requirements and how your proposed solution would fulfill them. For complex new features it might help to create a wiki page
- If it's an improvement, clearly describe the current behavior and how your contribution will improve current functionality.
- Create a fork on NCSA Bitbucket or GitHub
- Check out the
develop
branch - Make a feature branch
- If you created the fork on NCSA Bitbucket, use the "Create branch" link in Jira. This will properly name the branch and keep the link in the issue
- If you created the fork in GitHub, follow the Atlassian Bitbucket branch naming scheme when naming your
branch. For example
feature/CATS-438-validate-all-jsonld
.
- Make your cool new feature or bugfix on your branch
- From your branch, make a pull request against
develop
- Work with repo maintainers to get your change reviewed on GitHub or NCSA Bitbucket
- When ready to be merged, the branch will first be pulled into develop on NCSA Bitbucket. It will appear on develop on GitHub after the nightly push.
- When ready to be merged, the branch will first be pulled into
develop
on NCSA Bitbucket. Overnight it will be pushed todevelop
on GitHub. - Merge the remote
develop
into your origindevelop
- Delete your feature branch
Code reviews for pull requests in GitHub will happen in GitHub. Code reviews for pull requests in
NCSA Bitbucket will happen in NCSA Bitbucket. When a pull request is ready to be merged into
develop
it will first be pushed to NCSA Bitbucket if it's on GitHub. It will then be merged with the develop
branch in NCSA Bitbucket. It will become available on develop
on GitHub overnight with the nightly updates.
We use some of the common issue types available in Jira. For the most part they are self explanatory: New Feature
,
Improvement
, Bug
.
Make sure to get feedback from the community on your proposed solution before starting implementation (either on HipChat or by sending an email to the mailing list). Given the distributed nature of the team and the different requirements from the different projects using and contributing to Clowder, it's important that contributions to the core are compatible with all projects and the overall design.
We use the ScalaTest testing framework for our tests. Our testing suite is currently not comprehensive. If you feel brave enough please consider adding a test for your new feature (or for existing ones!).
Branches in NCSA Bitbucket are automatically built with Bamboo.
Developer documentation is available in Confluence. User documentation (still rough) is available in the source
/doc/src/sphinx
and online.