Skip to content

Commit d7f5e95

Browse files
authored
Feature: Add detail information about PR process for contributing (OpenSource-Communities#185)
1 parent 633b777 commit d7f5e95

File tree

3 files changed

+209
-30
lines changed

3 files changed

+209
-30
lines changed
39.5 KB
Loading
61.8 KB
Loading

docs/intro-to-oss/how-to-contribute-to-open-source.md

Lines changed: 209 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Some projects also have conventions, such as code and Markdown style, how to wri
7474

7575
After reading the documentation, you can start looking for issues labeled as "good first issue" or "beginner-friendly" that are suitable for your skill level. When choosing which issues to work on, consider your interests, skill level, and available time.
7676

77-
Issues can be seen as proposals for changes. Suppose you want to report a bug or have ideas for a feature or improvement of the project or its documentation and want to propose them. In that case, you can create an issue to propose your intention.
77+
Issues can be seen as proposals for changes. Suppose you want to report a bug or have ideas for a feature or improvement of the project or its documentation and want to propose them. In that case, you can create an issue to propose your intention. Read [this blog post](https://dev.to/opensauced/streamline-your-contributions-mastering-issue-forms-and-pr-templates-36j5) to learn how to fill in issue forms.
7878

7979
In open source, it is crucial to accompany a pull request with an issue for several reasons:
8080

@@ -102,48 +102,224 @@ You can leave a comment on the issue, like, "Can I please be assigned to this is
102102

103103
Once a maintainer has assigned you an issue, the next step is to work on the changes. Here's a general workflow of the process:
104104

105-
1. **[Fork the repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository)**: Forking a repository means creating a copy of the repository under your GitHub account. It allows you to push changes to the remote codebase without affecting the original project.
105+
### 1. Fork the Repository
106106

107-
2. **[Clone your forked repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository)**: Make a copy of your forked repository to your local machine. Run the following command in your terminal:
107+
[Forking a repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) means creating a copy of the repository under your GitHub account. It allows you to push changes to the remote codebase without affecting the original project.
108108

109-
```
110-
git clone https://github.com/YOUR-USERNAME/REPOSITORY-NAME.git
111-
```
109+
### 2. Clone the Forked Repository
112110

113-
Replace "YOUR-USERNAME" with your GitHub username and "REPOSITORY-NAME" with the repository's name.
111+
[Cloning your forked repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository) means making a copy of your forked repository to your local machine. Run the following command in your terminal:
114112

115-
3. **Create a new branch**: Before making any changes, create a new branch in your local repository to work on your contribution. Creating a new branch is the best practice in open source because it keeps your changes separate from the `main` branch.
113+
```
114+
git clone https://github.com/YOUR-USERNAME/REPOSITORY-NAME.git
115+
```
116116

117-
You can create a new branch using the following command:
117+
Replace "YOUR-USERNAME" with your GitHub username and "REPOSITORY-NAME" with the repository's name.
118118

119-
```
120-
git checkout -b YOUR-BRANCH-NAME
121-
```
119+
### 3. Create a New Branch
122120

123-
Replace "YOUR-BRANCH-NAME" with a descriptive name for your branch, such as "fix-bug-123" or "add-new-feature".
121+
Before making any changes, create a new branch in your local repository to work on your contribution. Creating a new branch is the best practice in open source because it keeps your changes separate from the `main` branch.
124122

125-
4. **Make your changes**: Now that you have a new branch, you can make changes to the codebase. Always follow the project's coding guidelines and conventions, and test your changes to ensure they work as expected.
123+
You can create a new branch using the following command:
126124

127-
5. **Add and commit your changes**: Once you've made your changes, add your changes to the staging area and commit them with these commands:
125+
```
126+
git checkout -b YOUR-BRANCH-NAME
127+
```
128128

129-
```
130-
git add .
131-
git commit -m "Your commit message"
132-
```
129+
Replace "YOUR-BRANCH-NAME" with a descriptive name for your branch, such as "fix-bug-123" or "add-new-feature".
133130

134-
Replace `"Your commit message"` with a brief description of your changes.
131+
### 4. Make Changes
135132

136-
6. **Push your changes**: Push your changes to your forked repository on GitHub by running the following command:
133+
Now that you have a new branch, you can make changes to the codebase. Always follow the project's coding guidelines and conventions.
137134

135+
### 5. Run the Changes Locally
136+
137+
You should always run and check your changes in your local environment, regardless of how small they are. This is important to ensure they work as expected and won't break production.
138+
139+
You can find the instructions on how to run a project locally in the README file or in the contributing guidelines.
140+
141+
### 6. Add and Commit the Changes
142+
143+
Once you've made your changes, add your changes to the staging area and commit them with these commands:
144+
145+
```
146+
git add .
147+
git commit -m "Your commit message"
148+
```
149+
150+
Replace `"Your commit message"` with a brief description of your changes.
151+
152+
### 7. Push the Changes
153+
154+
Push your changes to your forked repository on GitHub by running the following command:
155+
156+
```
157+
git push origin YOUR-BRANCH-NAME
158+
```
159+
160+
Replace "YOUR-BRANCH-NAME" with the name of your branch.
161+
162+
### 8. Working with a Pull Request
163+
164+
#### Create a Pull Request
165+
166+
Once you've pushed your changes, you can now [create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork). To create a pull request:
167+
168+
1. Navigate to the original project's repository on GitHub.
169+
2. Click the "Compare & pull request" button.
170+
3. Fill in all required information in the template.
171+
4. Click the "Create pull request" button.
172+
173+
#### Fill In a Pull Request Template
174+
175+
Most projects provided a pull request template that is shown and needs to be filled in Markdown. This template guides you in providing all the information maintainers need to review your pull request.
176+
177+
##### Tips to Fill In a Pull Request Template
178+
179+
It can be challenging to read and fill in a pull request template. Here is some tips on how to fill one:
180+
181+
1. **Preview Mode**
182+
183+
Click the "Preview" tab to see the sections you must fill in before you do so. It will be easier for you to notice them in this mode, but note that you cannot edit them in preview mode.
184+
185+
Here is an example of a pull request template at OpenSauced in preview mode:
186+
187+
![PR template in preview mode](../_assets/images/pr-template-preview.png)
188+
189+
2. **Headings**
190+
191+
Get back to the writing mode by clicking the "Write" tab. Pay attention to the headings with `#` symbols. You need to provide information right under these headings.
192+
193+
3. **Comments**
194+
195+
The instructions on what information you must provide are usually written in the comments under each heading. You need to read and follow all instructions thoroughly.
196+
197+
?> **Tip:** When filling in the information, write it below the comment so you can still see and follow the instructions.
198+
199+
Here is the template in Markdown. Now, pay attention to the headings and the comments as we discussed:
200+
201+
```markdown
202+
## Description
203+
204+
<!--
205+
Please do not leave this blank
206+
This PR [adds/removes/fixes/replaces] the [feature/bug/etc].
207+
-->
208+
209+
## Related Tickets & Documents
210+
211+
<!--
212+
Please use this format link issue numbers: Fixes #123
213+
https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword
214+
-->
215+
216+
## Mobile & Desktop Screenshots/Recordings
217+
218+
<!-- Visual changes require screenshots -->
219+
220+
## Steps to QA
221+
222+
<!--
223+
Please provide some steps for the reviewer to test your change. If you have wrote tests, you can mention that here instead.
224+
225+
1. Click a link
226+
2. Do this thing
227+
3. Validate you see the thing working
228+
-->
229+
230+
## Tier (staff will fill in)
231+
232+
- [ ] Tier 1
233+
- [ ] Tier 2
234+
- [ ] Tier 3
235+
- [ ] Tier 4
236+
237+
## [optional] What gif best describes this PR or how it makes you feel?
238+
239+
<!-- note: PRs with deleted sections will be marked invalid -->
240+
241+
<!--
242+
For Work In Progress Pull Requests, please use the Draft PR feature,
243+
see https://github.blog/2019-02-14-introducing-draft-pull-requests/ for further details.
244+
245+
For a timely review/response, please avoid force-pushing additional
246+
commits if your PR already received reviews or comments.
247+
248+
Before submitting a Pull Request, please ensure you've done the following:
249+
- 📖 Read the Open Sauced Contributing Guide: https://github.com/open-sauced/.github/blob/main/CONTRIBUTING.md.
250+
- 📖 Read the Open Sauced Code of Conduct: https://github.com/open-sauced/.github/blob/main/CODE_OF_CONDUCT.md.
251+
- 👷‍♀️ Create small PRs. In most cases, this will be possible.
252+
- ✅ Provide tests for your changes.
253+
- 📝 Use descriptive commit messages.
254+
- 📗 Update any related documentation and include any relevant screenshots.
255+
-->
138256
```
139-
git push origin YOUR-BRANCH-NAME
140-
```
141257

142-
Replace "YOUR-BRANCH-NAME" with the name of your branch.
258+
4. **Don't skip and delete anything in the template**
259+
260+
What's important is that you must fill in every section in the template that doesn't say "optional" or doesn't mean for the core team or staff to fill in. Also, you must never delete or modify the template, even if you think a section doesn't apply to your contribution.
261+
262+
If a section is irrelevant to your changes, leave a comment explaining why it's irrelevant or provide a brief "N/A" response. If you still need help with what to fill in, look at the previous pull requests and see how other contributors have done that.
263+
264+
##### Required Information to Provide in Most Pull Request Templates
265+
266+
Every project is unique. Each has its own pull request template structure and requires specific information to be provided. However, all projects typically require the following:
267+
268+
- **Title**
269+
270+
Add a short and clear title that describes the change that you make. For example, "Fix: Color contrast in the landing page".
271+
272+
- **Description**
273+
274+
Explain your changes in as much detail as possible. What did you fix? How did you fix it? Did you add a new function or modify a function? If there are several changes, consider using bullet points and providing links to the resources you use to back up your changes.
275+
276+
Here is an example:
143277

144-
7. **[Create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)**: Once you've pushed your changes, navigate to the original project's repository on GitHub and click the "Compare & pull request" button. Fill in the required information and submit your pull request by clicking the "Create pull request" button.
278+
```markdown
279+
## Description
145280

146-
8. **Respond to feedback**: After submitting your pull request, the project maintainers may provide feedback or request changes. Be sure to respond promptly and address any concerns or suggestions they may have.
281+
<!--
282+
Please do not leave this blank
283+
This PR [adds/removes/fixes/replaces] the [feature/bug/etc].
284+
-->
285+
286+
This PR fixes the long repos' names that are partially stacked at the back of another name in the search input of the Explore tab.
287+
288+
The changes made here:
289+
290+
- Add Tailwind className:
291+
292+
- [`truncate`](https://tailwindcss.com/docs/text-overflow#truncate) to truncate overflowing text.
293+
- [`tracking-tighter`](https://tailwindcss.com/docs/letter-spacing) to reduce letter spacing for better space.
294+
- `inline-block` to the `<span>` .
295+
296+
- Remove Tailwind classNames:
297+
298+
- `overflow-hidden` as it's [included in the `truncate`](https://tailwindcss.com/docs/text-overflow).
299+
- `break-all` as we don't want to add line breaks.
300+
```
301+
302+
- **Related issue(s)**
303+
304+
Most projects don't receive unsolicited pull requests (pull requests that are not accompanied by an issue). One reason is to avoid spam pull requests that might introduce irrelevant, low-quality, or harmful changes to the project's codebase.
305+
306+
So, when you create a pull request, you want to include the related issue number. Add the keyword "Closes," "Fixes," or "Resolves" in front of the issue number, for example, "Closes #123".
307+
308+
[Linking a pull request](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) to an issue will automatically close the issue once the pull request gets merged.
309+
310+
You can find the issue number right after the title, as shown below.
311+
312+
![issue number](../_assets/images/issue-number.png)
313+
314+
!> Only add the [supported keyword](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) and the issue number here. Adding more words will prevent the issue from being closed automatically.
315+
316+
- **Screenshots or screen recordings**
317+
318+
If your changes relate to UI improvement, consider adding screenshots or screen recordings to show the before-and-after changes.
319+
320+
### 9. Respond to Feedback
321+
322+
After submitting your pull request, the project maintainers may provide feedback or request changes. Be sure to respond promptly and address any concerns or suggestions they may have.
147323

148324
By following these steps, you'll be able to submit your contributions to open source projects and collaborate with other developers to improve the codebase.
149325

@@ -172,14 +348,17 @@ You'll need to have these tools donwloaded and installed on your local machine:
172348
### Getting Started
173349

174350
1. Create an issue by following these instructions:
351+
175352
- Click the "Issues" tab on the top bar.
176353
- Click the green "New issue" button at the top right.
177354
- Click the "Get started" button to add contributors.
178355
- Add a title, e.g., `Feature: Add @GITHUB-USERNAME as a contributor`. <br> Change "@GITHUB-USERNAME" to your GitHub username.
179-
- Complete the form. You can refer to the example in each textarea to fill them in, as shown in the screenshot below with the red line.
356+
- Complete the form. Read the instructions under each input label and fill in the textareas using the example shown in the screenshot below with the red line.
357+
358+
![guestbook issue form](../_assets/images/guestbook-issue-form.png)
180359

181-
![guestbook issue form](../_assets/images/guestbook-issue-form.png)
182360
- Click the "Submit new issue" button.
361+
183362
2. Fork the [guestbook repository](https://github.com/open-sauced/guestbook).
184363
3. Clone your forked repository to your computer.
185364
4. Run `npm install` to install the dependencies.
@@ -211,9 +390,9 @@ You'll need to have these tools donwloaded and installed on your local machine:
211390
git push -u origin branch-name
212391
```
213392

214-
11. Go to your forked repository on GitHub. Create a pull request with the title `feat: Add <@github-username> as a contributor` and fill in all areas in the pull request form.
393+
11. Go to your forked repository on GitHub. Create a pull request with the title `feat: Add <@github-username> as a contributor` and fill in all areas in the pull request template. Read the [Fill In a Pull Request Template](#fill-in-a-pull-request-template) section to help you complete the template.
215394

216-
!> Your pull request will be marked as invalid and may be closed if the form is incomplete.
395+
!> Your pull request will be marked as invalid and may be closed if the template is incomplete.
217396

218397
Congratulations on your first contribution! 🎉
219398

0 commit comments

Comments
 (0)