Contribution Guidelines

We do all of our development on GitHub and are generally open to pull requests and proposals for new community-maintained projects.

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, so help with that would be greatly appreciated.

Please follow our pull request guidelines when submitting code. If you are not familiar with GitHub or pull requests, here is an excellent guide to get started.

Working on an existing project

Here's a list of all our current projects.

We are actively working on documenting and licensing them and adding self-contained contribution guidelines but we still have a lot of work ahead of us. We're open to contributions on any of our public projects, as long as they have a license. The license for a project is located in a file named LICENSE in the root directory of the repository. If the repository you want to contribute to has no license file, please create a GitHub issue attached to that repository and we'll prioritize setting those up.

You may also create GitHub issues for any other missing infrastructure such as a README file.

Working on open issues

We track all our work via the GitHub issues associated with a repository and that's where you can find things to work on. First, check the labels on the issue you're interested in:

Once you have identified an issue you'd like to work on, follow these steps:

  1. Comment on it and say you'd like to work on that issue.
  2. Wait for someone to confirm that you may work on the issue before writing any code. The person who confirms will add an "in progress" label to the issue to indicate that the issue has been assigned.
  3. Once the issue has been updated to "in progress", write your code and submit your pull request (be sure to read and follow our pull request guidelines!)
  4. Wait for code review and address any issues raised as soon as you can.

Even if you're not done with the issue, create a draft pull request and push your code early and often. If we haven't heard from you in over a week and someone else expresses interest in that issue, we may approve work by the new person.

Proposing a new issue

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 and 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.

New projects

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.

Back to top