|
1 | | -# Contributing to the UC OSPO Education Website |
| 1 | +# CONTRIBUTING |
2 | 2 |
|
3 | | -We welcome contributions to the UC OSPO Education Website! This project aims to provide a welcoming and accessible platform for learners interested in open source. |
| 3 | +[TODO: rename this file to `README.md`; i.e. remove the template reference] |
4 | 4 |
|
5 | | -This guide will help you get started with contributing to this project. |
| 5 | +This is a template document for UC projects can use to help build the documentation in your project repos. It requires editing before it is ready to use, and you can find guides for using these templates on [our website](https://ucospo.net/oss-resources/#template-guides). Please feel free to [reach out to our Laura](mailto:[email protected]), our Community Manager, if you have any questions! |
6 | 6 |
|
7 | | -## Code of Conduct |
| 7 | +Search for the word `TODO` in this template to identify parts that require customization; e.g. line 3 above lets you know you should rename this file.. When you finish editing the template, remove the `TODO` bits. |
| 8 | + |
| 9 | +[TODO: delete the lines between line 1 and the "Welcome" heading] |
| 10 | + |
| 11 | +## Welcome! |
| 12 | + |
| 13 | +[TODO: edit welcome text below] |
| 14 | + |
| 15 | +Welcome! We're glad you want to contribute to our project! 💖 |
| 16 | + |
| 17 | +As you get started, you're in the best position to give us feedback on areas of our project that we need help with including: |
| 18 | + |
| 19 | +* Problems found during setting up a new developer environment |
| 20 | +* Gaps in our Quickstart Guide or documentation |
| 21 | +* Bugs in our automation scripts |
| 22 | + |
| 23 | +If anything doesn't make sense, or doesn't work when you run it, please open a bug report and let us know! |
| 24 | + |
| 25 | +## Table of Contents |
| 26 | + |
| 27 | +[TODO: edit the Table of Contents] |
| 28 | + |
| 29 | +* [Ways to Contribute](#ways-to-contribute) |
| 30 | +* [Come to Community Calls](#come-to-community-calls) |
| 31 | +* [Finding an Issue](#finding-an-issue) |
| 32 | +* [Setting Up a Dev Environment](#setting-up-a-dev-environment) |
| 33 | +* [Running Tests](#running-tests) |
| 34 | +* [Asking for Help](#asking-for-help) |
| 35 | +* [Norms for Commits](#norms-for-commits) |
| 36 | +* [Pull Request Lifecycle](#pull-request-lifecycle) |
| 37 | +* [Code of Conduct](#code-of-conduct) |
| 38 | + |
| 39 | +## Ways to Contribute |
| 40 | + |
| 41 | +[TODO: edit this to reflect the kinds of contributions you'd like to receive for your project] |
| 42 | + |
| 43 | +We welcome many different types of contributions, including: |
| 44 | + |
| 45 | +* New features |
| 46 | +* Builds, CI/CD |
| 47 | +* Bug fixes |
| 48 | +* Documentation |
| 49 | +* Issue Triage |
| 50 | +* Answering questions on Slack/Mailing List |
| 51 | +* Web design |
| 52 | +* Communications/Social Media/Blog Posts |
| 53 | +* Release management |
| 54 | + |
| 55 | +Not everything happens through a GitHub pull request. Please come to our meetings](TODO) or [contact us](/UC-OSPO-Network/templates/blob/d8ba9301beb523c10a7195ddf0fb70a068312022/TODO) and let's discuss how we can work together. |
| 56 | + |
| 57 | +## Come to Community Calls |
| 58 | + |
| 59 | +[TODO: Maybe your project doesn't have [community calls](https://opensource.com/open-organization/16/1/community-calls-will-increase-participation-your-open-organization), in which case you can omit this section. But you might consider trying them out!] |
| 60 | + |
| 61 | +Anyone interested in our project is welcome to come to any of [our community calls](TODO: add a link to your community calls)! You never need an invite to join us. In fact, we want you to join us, even if you don’t have anything you feel like you want to contribute. Just being there is enough! |
| 62 | + |
| 63 | +You don’t have to turn on your video. The first time you come, just introducing yourself is perfectly fine. Over time, we hope that you feel comfortable voicing your opinions, giving feedback on others’ ideas, and even sharing your own ideas, and experiences. |
| 64 | + |
| 65 | +## Finding an Issue |
8 | 66 |
|
9 | | -Please note that this project is released with a [Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project, you agree to abide by its terms. |
10 | | - |
11 | | -## How to Contribute |
12 | | - |
13 | | -There are many ways to contribute, not just by writing code: |
14 | | - |
15 | | -* **Reporting Bugs:** If you find a bug, please open an [issue](https://github.com/UC-OSPO-Network/education/issues) and describe the problem in detail. |
16 | | -* **Suggesting Enhancements:** Have an idea for a new feature or improvement? Open an [issue](https://github.com/UC-OSPO-Network/education/issues) to discuss it. |
17 | | -* **Writing Documentation:** Improving our documentation (guides, explanations, examples) is always welcome. |
18 | | -* **Submitting Code:** |
19 | | - 1. **Fork** the repository. |
20 | | - 2. **Clone** your forked repository to your local machine. |
21 | | - ```bash |
22 | | - git clone https://github.com/YOUR_GITHUB_USERNAME/education.git |
23 | | - cd education |
24 | | - ``` |
25 | | - 3. **Install dependencies**: |
26 | | - ```bash |
27 | | - npm install |
28 | | - ``` |
29 | | - 4. **Create a new branch** for your feature or bug fix: |
30 | | - ```bash |
31 | | - git checkout -b feature/your-feature-name |
32 | | - # or |
33 | | - git checkout -b bugfix/issue-description |
34 | | - ``` |
35 | | - 5. **Make your changes**. |
36 | | - 6. **Run the development server** to preview your changes: |
37 | | - ```bash |
38 | | - npm run dev |
39 | | - ``` |
40 | | - 7. **Test your changes**: Ensure everything works as expected and doesn't introduce new bugs. |
41 | | - 8. **Commit your changes** with a clear and concise commit message. Follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) guidelines (e.g., `feat: add new filter option`, `fix: correct typo on homepage`). |
42 | | - ```bash |
43 | | - git add . |
44 | | - git commit -m "feat: your commit message" |
45 | | - ``` |
46 | | - 9. **Push your branch** to your forked repository: |
47 | | - ```bash |
48 | | - git push origin feature/your-feature-name |
49 | | - ``` |
50 | | - 10. **Open a Pull Request (PR)** to the `main` branch of the original repository. |
51 | | - * Provide a clear title and description for your PR. |
52 | | - * Reference any related issues (e.g., `Closes #123` or `Fixes #123`). |
53 | | -
|
54 | | -## Development Setup |
55 | | -
|
56 | | -### Local Development |
57 | | -
|
58 | | -1. **Clone the repository:** |
59 | | - ```bash |
60 | | - git clone https://github.com/UC-OSPO-Network/education.git |
61 | | - cd education |
62 | | - ``` |
63 | | -2. **Install dependencies:** |
64 | | - ```bash |
65 | | - npm install |
66 | | - ``` |
67 | | -3. **Start the development server:** |
68 | | - ```bash |
69 | | - npm run dev |
70 | | - ``` |
71 | | - This will start a local server, usually at `http://localhost:4321`. |
72 | | -
|
73 | | -### Build for Production |
74 | | -
|
75 | | -To build the project for production, run: |
76 | | -
|
77 | | -```bash |
78 | | -npm run build |
| 67 | +[TODO: edit this section as needed] |
| 68 | + |
| 69 | +We have good first issues for new contributors and help wanted issues suitable for any contributor. [good first issue](/UC-OSPO-Network/templates/blob/d8ba9301beb523c10a7195ddf0fb70a068312022/TODO) has extra information to help you make your first contribution. [help wanted](/UC-OSPO-Network/templates/blob/d8ba9301beb523c10a7195ddf0fb70a068312022/TODO) are issues suitable for someone who isn't a core maintainer and is good to move onto after your first pull request. |
| 70 | + |
| 71 | +Sometimes there won’t be any issues with these labels. That’s ok! There is likely still something for you to work on. If you want to contribute but you don’t know where to start or can't find a suitable issue, you can [TODO: explain how people can ask for an issue to work on]. |
| 72 | + |
| 73 | +Once you see an issue that you'd like to work on, please post a comment saying that you want to work on it. Something like "I want to work on this" is fine. |
| 74 | + |
| 75 | +## Setting up a Dev Environment |
| 76 | + |
| 77 | +[TODO: edit the steps provided for what's needed for your project] |
| 78 | + |
| 79 | +Clone the project: |
| 80 | + |
| 81 | +```shell |
| 82 | +git clone yourprojecturl |
| 83 | +``` |
| 84 | + |
| 85 | +Install dependencies: |
| 86 | + |
| 87 | +```shell |
| 88 | +install command |
79 | 89 | ``` |
80 | 90 |
|
81 | | -This will generate the static files in the `dist/` directory. |
| 91 | +## Running Tests |
| 92 | + |
| 93 | +[TODO: Describe the process you use to test code in your project] |
| 94 | + |
| 95 | +1. Step one |
| 96 | +2. Step two |
| 97 | + |
| 98 | +## Asking for Help |
| 99 | + |
| 100 | +The best way to reach us with a question when contributing is to ask on: |
| 101 | + |
| 102 | +[TODO: Pick the way(s) that you prefer people ask for help] |
| 103 | + |
| 104 | +* The original Github issue |
| 105 | +* The developer mailing list |
| 106 | +* Our Slack channel |
| 107 | + |
| 108 | +## Norms for Commits |
| 109 | + |
| 110 | +[TODO: edit this section to reflect what's needed for your project] |
| 111 | + |
| 112 | +Our project uses [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/), and we require [commit signing](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits). Please let us know if you need help with these! |
| 113 | + |
| 114 | +## Pull Request Lifecycle |
82 | 115 |
|
83 | | -## Getting Help |
| 116 | +[TODO: Edit the text below to describe your pull request process. You don't need to adopt every aspect! Pick and choose what makes sense for *your* project] |
| 117 | + |
| 118 | +### Before You Submit |
| 119 | + |
| 120 | +When you submit your pull request, or you push new commits to it, our automated systems will run some checks on your new code. We require that your pull request passes these checks, but we also have more criteria than just that before we can accept and merge it. We recommend that you check the following things locally before you submit your code: |
| 121 | + |
| 122 | +* First thing to check |
| 123 | +* Another thing to check |
| 124 | + |
| 125 | +#### When to Submit |
| 126 | + |
| 127 | +Submit your pull request when you have a working implementation that addresses the issue or feature request. Your code should be tested and ready for review, even if you're open to suggestions for improvements. |
| 128 | + |
| 129 | +#### Draft vs. Ready PRs |
| 130 | + |
| 131 | +* Use **Draft PRs** when your work is incomplete or you want early feedback on your approach |
| 132 | +* Convert to **Ready for Review** when your implementation is complete and tested |
| 133 | +* Mark as ready even if you expect minor changes during review |
| 134 | + |
| 135 | +#### Branch Strategy |
| 136 | + |
| 137 | +Create a feature branch from the latest `main` branch. Use descriptive branch names like `feature/add-user-authentication` or `fix/memory-leak-in-parser`. |
| 138 | + |
| 139 | +### Submission Process |
| 140 | + |
| 141 | +#### PR Scope |
| 142 | + |
| 143 | +We prefer **small, focused pull requests** that address a single issue or implement one feature. Large PRs are harder to review and more likely to conflict with other changes. If your feature is large, consider breaking it into multiple PRs. |
| 144 | + |
| 145 | +#### Signaling Readiness |
| 146 | + |
| 147 | +* Remove "Draft" status when ready for review |
| 148 | +* Ensure all CI checks are passing |
| 149 | +* Include a clear description of what the PR does and why |
| 150 | +* Link to relevant issues using "Fixes #123" or "Addresses #456" |
| 151 | + |
| 152 | +### Review Process |
| 153 | + |
| 154 | +**Initial Review Timeline**: Expect an initial review within **3-5 business days**. Complex PRs may take longer. |
| 155 | + |
| 156 | +**Follow-up Reviews**: After addressing feedback, expect follow-up reviews within **2-3 business days**. |
| 157 | + |
| 158 | +#### Requesting Reviews |
| 159 | + |
| 160 | +* After pushing changes, add a comment like "Ready for re-review" or "@mention" specific reviewers |
| 161 | +* If your PR hasn't been reviewed after the expected timeline, add a polite comment requesting status |
| 162 | +* For urgent fixes, mention the urgency in your comment |
| 163 | + |
| 164 | +### Handling Common Situations |
| 165 | + |
| 166 | +#### Stalled Pull Requests |
| 167 | + |
| 168 | +If your PR appears stalled: |
| 169 | + |
| 170 | +1. First, check if all feedback has been addressed |
| 171 | +2. After 1 week of no activity, add a polite comment requesting status |
| 172 | +3. If still no response after another week, reach out via [preferred communication channel] |
| 173 | + |
| 174 | +#### Abandoned Pull Requests |
| 175 | + |
| 176 | +If you can no longer continue work on your PR: |
| 177 | + |
| 178 | +* Comment on the PR explaining the situation |
| 179 | +* Maintainers may either: |
| 180 | + * Take over the PR and push additional commits to complete it |
| 181 | + * Close the PR and create a new issue for others to pick up |
| 182 | + * Close the PR if the change is no longer needed |
| 183 | + |
| 184 | +#### Follow-up Work |
| 185 | + |
| 186 | +* Small follow-up changes should be addressed in the same PR when possible |
| 187 | +* Larger follow-ups or new issues discovered during review should be handled in separate issues/PRs |
| 188 | +* Use "TODO" comments sparingly and create follow-up issues for any deferred work |
| 189 | + |
| 190 | +### After Your PR is Merged |
| 191 | + |
| 192 | +**Release Timeline**: Merged pull requests are included in the next release, which typically happens: |
| 193 | + |
| 194 | +* **Patch releases**: Every 2-4 weeks for bug fixes |
| 195 | +* **Minor releases**: Every 1-3 months for new features |
| 196 | +* **Major releases**: As needed for breaking changes |
| 197 | + |
| 198 | +#### Release Process |
| 199 | + |
| 200 | +After merge, your changes will: |
| 201 | + |
| 202 | +1. Be available immediately in the `main` branch |
| 203 | +2. Go through additional testing in our staging environment |
| 204 | +3. Be included in the next scheduled release |
| 205 | +4. Be documented in the changelog with attribution |
| 206 | + |
| 207 | +#### Staying Updated |
| 208 | + |
| 209 | +Watch the repository to be notified when your contributions are released. We'll also tag you in release notes when your PR introduces significant changes. |
| 210 | + |
| 211 | +--- |
| 212 | + |
| 213 | +*Questions about the PR process? Feel free to ask in the issue comments, discussions, or reach out to the maintainers directly.* |
| 214 | + |
| 215 | +## Code of Conduct |
84 | 216 |
|
85 | | -If you have any questions or get stuck, please open an [issue](https://github.com/UC-OSPO-Network/education/issues), and we'll do our best to help you out! |
| 217 | +Please read our [Code of Conduct](TODO: link to your project's CoC) |
0 commit comments