|
| 1 | +_model: page |
| 2 | +--- |
| 3 | +_template: page-with-toc.html |
| 4 | +--- |
| 5 | +title: GitHub Repo Guidelines |
| 6 | +--- |
| 7 | +body: |
| 8 | + |
| 9 | +This is a checklist for all public repositories hosted on the [Creative Commons GitHub organization](https://github.com/creativecommons). Not all repositories meet these criteria yet. Please notify us if a project you'd like to work on does not meet this checklist by opening a GitHub issue associated with the repository. |
| 10 | + |
| 11 | +## Required Items |
| 12 | +All GitHub repositories should have the following items to be considered fully ready for external contributors. |
| 13 | + |
| 14 | +### Files |
| 15 | +- `/.github/CODEOWNERS`: Defined code owners |
| 16 | + - [About code owners - GitHub Help](https://help.github.com/en/articles/about-code-owners) |
| 17 | +- `/.cc-metadata.yml`: The standard [CC metadata YAML file](#cc-metadata-file). |
| 18 | +- `/CODE_OF_CONDUCT.md`: Code of Conduct |
| 19 | + - Feel free to use our standard [`CODE_OF_CONDUCT.md`](https://github.com/creativecommons/.github/blob/master/CODE_OF_CONDUCT.md) file from [creativecommons/.github](https://github.com/creativecommons/.github) |
| 20 | + - [Adding a code of conduct to your project - GitHub Help](https://help.github.com/en/articles/adding-a-code-of-conduct-to-your-project) |
| 21 | +- `/LICENSE`: license file. |
| 22 | +- `/CONTRIBUTING.md`: contributor guidelines |
| 23 | + - Can be project-specific or our standard [`CONTRIBUTING.md`](https://github.com/creativecommons/.github/blob/master/CONTRIBUTING.md) file from [creativecommons/.github](https://github.com/creativecommons/.github) |
| 24 | + - [Setting guidelines for repository contributors - GitHub Help](https://help.github.com/en/articles/setting-guidelines-for-repository-contributors) |
| 25 | +- `/README.md`: read me information file |
| 26 | + - Must documents how to install and build the project locally and documents a high level overview of the project and code structure. It should also link to any other available documentation. |
| 27 | +- **All pull request templates must include the full text of the [DCO](https://developercertificate.org/)**. |
| 28 | + |
| 29 | +### Additional Items |
| 30 | +- CI and code style linters that run automatically whenever new code is pushed (if applicable to the project). |
| 31 | +- At least a couple of automated tests (if applicable to the project). |
| 32 | + |
| 33 | +## Optional items |
| 34 | + |
| 35 | +- [Issue templates](https://help.github.com/en/articles/creating-issue-templates-for-your-repository). GitHub pulls the default templates from our [`.github` repository](https://github.com/creativecommons/.github) automatically, but if you want/need to customize them, create them in your repository. |
| 36 | +- A [pull request template](https://help.github.com/en/articles/creating-a-pull-request-template-for-your-repository). GitHub pulls the default template from our [`.github` repository](https://github.com/creativecommons/.github) automatically, but if you want/need to customize it, create it in your repository. |
| 37 | +- [Support resources](https://help.github.com/en/articles/adding-support-resources-to-your-project). GitHub pulls the default `SUPPORT.md` file from our [`.github` repository](https://github.com/creativecommons/.github) automatically, but if you want/need to customize it, create it in your repository. |
| 38 | +- Setting up [branch protections](https://help.github.com/en/articles/about-protected-branches) that don't allow code to be merged in without tests passing or requires reviews for pull requests to be merged. |
| 39 | + |
| 40 | +## Standard Labels |
| 41 | +All repositories must contain the following labels. CC staff have access to a script that you can run to make sure all repositories have this label. |
| 42 | + |
| 43 | +Repositories may contain additional custom labels as well. It is recommended that custom labels be explained in the contribution guidelines for that project. |
| 44 | + |
| 45 | +<table class="table table-striped table-sm"> |
| 46 | + <thead> |
| 47 | + <tr> |
| 48 | + <th>Name</th> |
| 49 | + <th>Color</th> |
| 50 | + <th>Description</th> |
| 51 | + </tr> |
| 52 | + </thead> |
| 53 | + <tbody> |
| 54 | + <tr> |
| 55 | + <td>bug</td> |
| 56 | + <td><code>#d73a4a</code></td> |
| 57 | + <td>Something isn't working</td> |
| 58 | + </tr> |
| 59 | + <tr> |
| 60 | + <td>duplicate</td> |
| 61 | + <td><code>#cfd3d7</code></td> |
| 62 | + <td>This issue or pull request already exists</td> |
| 63 | + </tr> |
| 64 | + <tr> |
| 65 | + <td>enhancement</td> |
| 66 | + <td><code>#a2eeef</code></td> |
| 67 | + <td>New feature or request</td> |
| 68 | + </tr> |
| 69 | + <tr> |
| 70 | + <td>good first issue</td> |
| 71 | + <td><code>#7057ff</code></td> |
| 72 | + <td>Good for newcomers</td> |
| 73 | + </tr> |
| 74 | + <tr> |
| 75 | + <td>help wanted</td> |
| 76 | + <td><code>#008672</code></td> |
| 77 | + <td>Seeking help from community</td> |
| 78 | + </tr> |
| 79 | + <tr> |
| 80 | + <td>in progress</td> |
| 81 | + <td><code>#ffcc00</code></td> |
| 82 | + <td>Currently being worked on</td> |
| 83 | + </tr> |
| 84 | + <tr> |
| 85 | + <td>invalid</td> |
| 86 | + <td><code>#e4e669</code></td> |
| 87 | + <td>This doesn't seem right</td> |
| 88 | + </tr> |
| 89 | + <tr> |
| 90 | + <td>question</td> |
| 91 | + <td><code>#d876e3</code></td> |
| 92 | + <td>Further information is requested</td> |
| 93 | + </tr> |
| 94 | + <tr> |
| 95 | + <td>urgent</td> |
| 96 | + <td><code>#d93f0b</code></td> |
| 97 | + <td>Needs to be fixed ASAP</td> |
| 98 | + </tr> |
| 99 | + <tr> |
| 100 | + <td>wontfix</td> |
| 101 | + <td><code>#ffffff</code></td> |
| 102 | + <td>This will not be worked on</td> |
| 103 | + </tr> |
| 104 | + </tbody> |
| 105 | +</table> |
| 106 | + |
| 107 | +## CC Metadata file |
| 108 | + |
| 109 | +Each repo should have a `.cc-metadata.yml` file in the root directory with the following structure: |
| 110 | + |
| 111 | +<pre> |
| 112 | + <code> |
| 113 | + # Whether this GitHub repo is engineering related |
| 114 | + engineering_project: true |
| 115 | + # Name of the repository/project in English |
| 116 | + english_name: CC Catalog API |
| 117 | + # All technologies used |
| 118 | + technologies: Python, Django, Django REST Framework, Elasticsearch |
| 119 | + # Whether this repository should be featured on the CC Open Source site |
| 120 | + featured: true |
| 121 | + </code> |
| 122 | +</pre> |
| 123 | + |
| 124 | +This metadata file is used in the [Projects](/projects) page. Repos that are marked as non-engineering projects are not displayed in the page and repos marked as featured as displayed at the top of the page. Repos should be marked as featured if we are actively looking for community contributions and have the bandwidth to review them quickly. |
| 125 | + |
| 126 | +Repos without this metadata file are treated as `engineering_projects: true` and `featured: false`. A default is necessary since it will take time for us to clean up and add metadata to all our repos. |
0 commit comments