body:
Here's a list of all our current projects. We do all of our development on GitHub and are generally open to pull requests. We would especially like help with reviving projects that CC's engineering team does not have the time to actively work on (such as our WordPress plugin and license chooser widget). We're also looking to improve our documentation and increase our automated test coverage across pretty much all our projects.
We are working on making sure all of our projects are documented, licensed, and have self-contained contribution guidelines. Until we finish that work, follow the guidelines below before writing any code.
We do not accept contributions to projects without licenses. We're working on adding licenses to all our repositories but we will prioritize ones in which there is an active interest in contribution. If the repository you want to contribute to has no license file (or is missing other infrastructure such as basic documentation), please create a GitHub issue attached to that repository asking us to set those up.
We track all our work via the GitHub issues associated with each repository and they are a good way to find things to work on. The first step is to check the labels on the issue and follow the appropriate steps below.
If the issue is labeled "help wanted" or "good first issue", comment on it to indicate that you're working on it (so that no one else does) and submit a pull request when you're ready. No other steps are needed.
- Here's a list of all issues labeled "good first issue"
- Here's a list of all issues labeled "help wanted"
If it does not have either of those labels, comment on it to ask if help is desired. If you receive a response that tells you to go ahead and work on it, comment on it to indicate that you're working on it (so that no one else does) and submit a pull request when you're ready.
If you want to work on something that there is no GitHub issue for, then propose the change in one of our community forums or create a a new GitHub issue associated with the relevant repository amd propose your change there. Be sure to include implementation details and the rationale for the proposed change.
If the project has a roadmap documented in the README, checking the roadmap to see if the feature is already in our pipeline would be a good first step.
When in doubt, ask a question on one of our community forums.
We are also open to working on or hosting projects that are related to the Creative Commons licenses or general mission. Our Google Summer of Code project ideas list is a good place to find ideas we'd like implemented. If you're interested in working on one of them, please propose it in one of our community forums (you don't need to be a student, anyone is welcome to work on those ideas) and work out implementation details with CC staff members before you write any code. If you want to suggest a new project idea, follow the same process.
In general, we'd like any new projects to use Python, WordPress/PHP, and/or JavaScript (our framework of choice is Vue.js) so that our team can help review and maintain the project.
No matter what kind of project you're working on, these are good guidelines to follow
- Write comprehensive and robust tests that cover the changes you've made in your work.
- Follow the appropriate code style standards for the language and framework you're using (e.g. PEP 8 for Python).
- Write readable code – keep functions small and modular and name variables descriptively.
- Document your code thoroughly.
- Make sure all the existing tests pass.
- Use the format specified in pull request template for the repository if there is one.
- Describe your change in detail. Too much detail is better than too little.
- Describe how you tested your change.
- Request a review from either the repository maintainer (if you have that information) or
@creativecommons/engineering
.