|
| 1 | +_model: page |
| 2 | +--- |
| 3 | +_template: page-with-toc.html |
| 4 | +--- |
| 5 | +title: Contributing Code |
| 6 | +--- |
| 7 | +body: |
| 8 | + |
| 9 | +### Existing projects |
| 10 | + |
| 11 | +Here's a list of [all our current projects](/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](https://github.com/creativecommons/creativecommons-wordpress-plugin) and [license chooser widget](https://github.com/creativecommons/LicenseChooser.js)). We're also looking to improve our documentation and increase our automated test coverage across pretty much all our projects. |
| 12 | + |
| 13 | +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 checklist below before writing any code. |
| 14 | + |
| 15 | +---- |
| 16 | + |
| 17 | +**Make sure that the project is ready for contribution** |
| 18 | + |
| 19 | +If the repository has no license file, code of conduct, or is missing basic documentation, please create a GitHub issue attached to that repository to set those up. We will prioritize adding these files to repositories towards which people show active interest in contributing. |
| 20 | + |
| 21 | + |
| 22 | +**Make sure your change will be accepted** |
| 23 | + |
| 24 | +* If you want to work on an open GitHub issue tagged "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. |
| 25 | +* If you want to work on an open GitHub issue without those tags, comment on it to ask if help is desired. |
| 26 | + * Indications that it may not be available to work on are that it was created very recently, it already has someone assigned to it, or it is in a project whose name starts with "Active". |
| 27 | +* If you want to work on something that there is no GitHub issue for, either create an issue and ask there whether a pull request will be accepted for that change or propose the change in [one of our community forums](/community) before creating the ticket. |
| 28 | + * 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. |
| 29 | + |
| 30 | +When in doubt, ask a question on [one of our community forums](/community). |
| 31 | + |
| 32 | +---- |
| 33 | + |
| 34 | +### New projects |
| 35 | + |
| 36 | +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](/gsoc-2019/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](/community) (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. |
| 37 | + |
| 38 | +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. |
| 39 | + |
| 40 | +---- |
| 41 | + |
| 42 | +### General best practices |
| 43 | + |
| 44 | +No matter what kind of project you're working on, these are good guidelines to follow |
| 45 | + |
| 46 | +**Code** |
| 47 | + |
| 48 | +* Write comprehensive and robust tests that cover the changes you've made in your work. |
| 49 | +* Follow the appropriate code style standards for the language and framework you're using (e.g. PEP 8 for Python). |
| 50 | +* Write readable code – keep functions small and modular and name variables descriptively. |
| 51 | +* Document your code thoroughly. |
| 52 | +* Make sure all the existing tests pass. |
| 53 | + |
| 54 | +**Pull requests** |
| 55 | + |
| 56 | +* Use the format specified in pull request template for the repository if there is one. |
| 57 | +* Describe your change in detail. Too much detail is better than too little. |
| 58 | +* Describle how you tested your change. |
| 59 | +* Request a review from either the repository maintainer (if you have that information) or `@creativecommons/engineering`. |
0 commit comments