description: We do all of our development on GitHub. If you are not familiar with GitHub or pull requests, here is an excellent guide to get started.
body:
Here's a list of all our current projects. We use GitHub issues associated with each project to track the work associated with that project. That's where you can find things to work on.
We make extensive use of issue labels to desginate the status of various issues. We have a standard set of labels across all projects, documented here. Here are some of the ones that are most relevant to finding a good issue to work on:
- Issues tagged
help wanted
orgood first issue
are available for community contribution**- These issues are available for community contribution and you do not need our permission to work on one of these.
- You may work on an issue labeled
good first issue
even if it's not your first issue. - Check the issue comments/labels to see whether someone else has indicated that they are working on it. If someone is already working on it and there has been activity within the last 7 days, you may want to find a different issue to work on.
- Issues tagged with one of these labels:
blocked
,not ready for work
,ticket work required
,CC staff only
are not available to the community. Do not work on these.- Issues tagged
blocked
are blocked by other work that needs to be done first. - Issues tagged
not ready for work
orticket work required
need additional work done on the issue before they can be opened to community contributors. - Issues tagged
CC staff only
are not suitable for community contribution, usually because it requires infrastructure access or institutional knowledge that would be impractical to provide to the community.
- Issues tagged
- Issues without any of the above labels may be open for contribution.
- Please add a comment to ask whether the issue is available before starting work.
Some helpful saved searches on GitHub than can assist with finding an issue:
- issues labeled "good first issue"
- issues labeled "help wanted"
- issues labeled "help wanted", and not labeled as "in progress"
- incomplete pull requests labeled "help wanted"
Once you've found an issue you'd like to work on, please follow these steps to make your contribution:
- Comment on it and say you're working on that issue. This is to avoid conflicts with others also working on the issue.
- A project maintainer may mark the issue with an
in progress
label at this point, but we don't always get around to that.
- A project maintainer may mark the issue with an
- Write your code and submit your pull request. Be sure to read and follow our pull request guidelines!
- Wait for code review and address any issues raised as soon as you can.
A note on collaboration: We encourage people to collaborate as much as possible. We especially appreciate contributors reviewing each others pull requests, as long as you are kind and constructive when you do so.
If you want to work on something that there is no GitHub issue for, follow these steps:
- Create a a new GitHub issue associated with the relevant repository and propose your change there. Be sure to include implementation details and the rationale for the proposed change.
- We are very reluctant to accept random pull requests without a related issue created first.
- The issue will automatically have the
not ready for work
label applied. Wait for a project maintainer to evaluate your issue and decide whether it's something that we will accept a pull request for. - Once the project maintainer has approved the issue and removed the
not ready for work
label, you may start work on code as described in the "Contribution process" section above.
When in doubt, ask a question on one of our community forums.