Skip to content
This repository was archived by the owner on Apr 29, 2024. It is now read-only.

feat: Add new chapter on practical application #35

Merged
merged 36 commits into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
811e420
Add new chapter
BekahHW Jan 19, 2024
667a27a
Add a starter idea
BekahHW Jan 22, 2024
7ff0c9a
Add issue templates
BekahHW Jan 22, 2024
c553f4f
Update title
BekahHW Jan 22, 2024
efc6cbc
Add section on writing first issue
BekahHW Jan 22, 2024
e288853
Add images
BekahHW Jan 22, 2024
89d29bb
Updates
BekahHW Feb 19, 2024
967000f
Clean up
BekahHW Feb 19, 2024
4b599f2
Fix merge conflicts
BekahHW Feb 19, 2024
d1d1290
fix: punctuations and adjust wording
adiati98 Feb 21, 2024
dea57c9
Merge branch 'main' into feat/get-practical
BekahHW Mar 11, 2024
2e2b83f
Fix coc formatting
BekahHW Mar 11, 2024
7b9b38b
Remove unused asset
BekahHW Mar 11, 2024
c8e554d
Make the bug report section clearer
BekahHW Mar 11, 2024
ec49e5f
Fix up template sections
BekahHW Mar 11, 2024
3b9da89
fix: format and a broken link
adiati98 Mar 11, 2024
693e9c1
fix: unordered list format
adiati98 Mar 11, 2024
f33c3a6
Add a template for contributing guide
BekahHW Mar 14, 2024
4e797e5
Fix typo
BekahHW Mar 14, 2024
79dd86a
Add more detail to feature section
BekahHW Mar 14, 2024
f6103e6
Use code block to make directions clearer
BekahHW Mar 14, 2024
d7f0903
Fix formatting
BekahHW Mar 14, 2024
372908d
Replace insight page with workspace
BekahHW Mar 14, 2024
4951e75
Merge changes
BekahHW Mar 14, 2024
e0e3988
Remove code block formatting
BekahHW Mar 25, 2024
45f607d
Add Readme template
BekahHW Mar 25, 2024
7fbab50
Add a section about license
BekahHW Mar 25, 2024
08ab48b
Fix headings
BekahHW Mar 25, 2024
88bd262
fix: capitalize README
adiati98 Mar 25, 2024
ca5aae3
fix: wording and punctuations for clarity
adiati98 Mar 25, 2024
fb5ebe7
fix: indentation and add syntax highlight
adiati98 Mar 25, 2024
d4875ba
Standardize headings
BekahHW Mar 28, 2024
b104d95
Add checkboxes
BekahHW Mar 28, 2024
7852ee4
Remove Chapter numbers and add getting practical
BekahHW Mar 28, 2024
aec10f3
fix: small wording fixes
adiati98 Mar 28, 2024
380ae66
fix: update titles on README to follow the title of each chapter inst…
adiati98 Mar 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions _layouts/sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@
- [Building and Nurturing Community](/building-community.md)
- [Effective Communication and Collaboration](/communication-and-collaboration.md)
- [Maintaining Code Quality and Documentation](/maintaining-code-quality.md)
- [Let's Get Practical](/getting-practical.md)

Binary file added assets/gifs/set-up-repo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/create-issue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/feature-form.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/pizza-install.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
257 changes: 257 additions & 0 deletions getting-practical.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
# Let's Get Practical: Starting Your Project

Now that you've gone through the course and understand what it takes to be a successful maintainer, let's get practical and start your first open source project as a maintainer!

## Prerequisites

You'll need to have the following:

- [Visual Studio Code (VS Code)](https://code.visualstudio.com/)
- A [GitHub Account](https://github.com)

## Choosing Your Project

Sometimes the hardest part is deciding what you're going to work on. Here are some general ideas to get you started:
- Identify a problem or need in the open source community.
- Think about a topic you're passionate about that others might be interested in as well.
- Think about a problem that you've had to solve that others can benefit from.

Don't think too hard about it now. You can always go back and update things later. For now, if you need a place to get started, let's create a repository about your favorite open source resources.

## Create Your Repository

We're going to walk through the steps to set up your project in GitHub. This isn't the only way to get started with a project, but it's the way we're going to demonstrate.

- Go to [GitHub](https://github.com) and sign in.
- Click on the "+" icon in the upper right corner and select "New repository."
- Enter a repository name, description, and choose whether the repository should be public or private.
- Initialize the repository with a README file and add a license.
- Click "Create repository."

![setting up a repo](./assets/gifs/set-up-repo.gif)

If you're using our starter idea, you could use the following:

- Name: favorite-open-source-resources
- Description: A markdown file of resources I've found to be most helpful.

## Adding Repository Documentation

Now that you have the repository, you can either edit it directly in GitHub or clone the project and work on it locally. We previously learned about how to create good READMEs, Contributing Guides, and Code of Conducts in [How to Set Up Your Project](how-to-setup-your-project.md/how-to-setup-your-project.md). If you need a reminder, take a look back at that chapter.

## Set Up Contributing Guidelines

Your project will likely have similar contribution guidelines to other projects. You can use the following steps to create your own guidelines, and we'll share the OpenSauced Contributing Guidelines below as an example. Feel free to use those guidelines and update as you see fit for your project.

- Create a new file named `CONTRIBUTING.md` in the root of your repository.
- Outline the process for submitting issues and pull requests.
- Include coding standards, style guides, or any specific requirements.
- Mention how contributors can ask for help or clarification.
- If you need help getting started, check out the [OpenSauced Contributing Guidelines](https://docs.opensauced.pizza/contributing/introduction-to-contributing/).

## Set Up a Code of Conduct

It's important to have a code of conduct to ensure that everyone feels welcome and safe in your project. Here's how to set up a code of conduct:

- Create a new file named `CONTRIBUTING.md` in the root of your repository.
- Copy and paste the code of conduct you'd like to use. We recommend using the [Contributor Covenant](https://www.contributor-covenant.org/).
- Make sure you attribute the code of conduct to the original author.
- Add a link to the code of conduct in your README and CONTRIBUTING files.

## Issue Forms, Pull Request Templates, and Labels

Creating good issues and using labels will help to create a strong project. Before creating your first issue, start by creating issue templates to make the process of submitting an issue clear to your contributors.

### Creating Issue Forms

In this section, we're going to create an issue template for a bug report. You can create templates for other types of issues as well, such as feature requests, questions, or documentation requests. Below are the steps to create the template. After the steps, we'll give you what we use at OpenSauced. Feel free to copy and paste that information into your own repository and update it as needed.

- Create a new folder named `.github` in the root of your repository.
- Within that folder, create a new folder named `ISSUE_TEMPLATE`.
- In the `.github/ISSUE_TEMPLATE` directory, create a new file named `bug_report.yml`.
- Add a title and description to the template.
- Add a checklist of steps to reproduce the bug.
- Add a section for the expected behavior and actual behavior.
- Add a section for screenshots, if applicable.
- Add a section for additional context, if applicable.

Here's what we use at OpenSauced:

```yml
name: πŸ› Bug report
description: Create a bug report to help us improve Open Sauced πŸ•
title: "Bug: "
labels: [πŸ‘€ needs triage, πŸ› bug]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Describe how to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true
- type: dropdown
attributes:
multiple: true
label: Browsers
description: Select the browsers where the issue can be reproduced (that you know of).
options:
- "Chrome"
- "Firefox"
- "Safari"
- "Edge"
- "Opera"
- "Other (add additional context)"
- type: input
id: context
attributes:
label: Additional context (Is this in dev or production?)
description: Add any other context about the problem or helpful links here.
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://docs.opensauced.pizza/contributing/code-of-conduct/)
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: checkboxes
id: contribution
attributes:
label: Contributing Docs
description: If you plan on contributing code please read - [Contribution Guide](https://docs.opensauced.pizza/contributing/introduction-to-contributing/)
options:
- label: I agree to follow this project's Contribution Docs
required: false
```

Now let's follow the same process and make a feature request template.

- In the `.github/ISSUE_TEMPLATE` directory, create a new file named `feature_request.yml`.
- Add a title and description to the template.
- Add a checklist of steps to reproduce the bug.
- Add a section for the expected behavior and actual behavior.
- Add a section for screenshots, if applicable.
- Add a section for additional context, if applicable.

Here's what we use at OpenSauced:

```yml
name: πŸš€ Feature request
description: Suggest an idea for this project πŸ’‘
title: "Feature: "
labels: [πŸ‘€ needs triage, πŸ’‘ feature]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: dropdown
attributes:
multiple: false
label: Type of feature
description: Select the type of feature request, the lowercase should also be the PR prefix.
options:
- "πŸ• Feature"
- "πŸ› Fix"
- "πŸ“ Documentation"
- "🎨 Style"
- "πŸ§‘β€πŸ’» Refactor"
- "πŸ”₯ Performance"
- "βœ… Test"
- "πŸ€– Build"
- "πŸ” CI"
- "πŸ“¦ Chore"
- "⏩ Revert"
validations:
required: true
- type: textarea
attributes:
label: Current behavior
description: Is your feature request related to a problem? Please describe.
validations:
required: true
- type: textarea
attributes:
label: Suggested solution
description: Describe the solution you'd like.
- type: input
id: context
attributes:
label: Additional context
description: Add any other context about the problem or helpful links here.
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://docs.opensauced.pizza/contributing/code-of-conduct/)
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: checkboxes
id: contribution
attributes:
label: Contributing Docs
description: If you plan on contributing code please read - [Contribution Guide](https://docs.opensauced.pizza/contributing/introduction-to-contributing/)
options:
- label: I agree to follow this project's Contribution Docs
required: false
```

### Writing Your First Issue

- In your repository, click on the "Issues" tab and then the "New issue" button
![create issue](./assets/images/create-issue.png)
- Select the type of issue you want to create. In this example, we'll select Feature Request.
- Write your issue. If you're following along the example, we'll write a feature request for a new resource:
> **Type of feature:** πŸ• Feature
> **Current behavior:** I'd like to see a new resource for #100DaysOfOSS.
> **Suggested solution:** Add new resource that introduces people to open source through [#100DaysOfOSS](https://docs.opensauced.pizza/community/100-days-of-oss/).
> **Code of Conduct:** I agree to follow this project's Code of Conduct.
> **Contributing Docs:** I agree to follow this project's Contribution Docs.
- Once you've completed the issues, click "Submit new issue."

![feature-form.png](./assets/images/feature-form.png)

## Promote Your Project

Now that you have your project set up, it's time to promote it! Here are some ideas to get you started:
- Share your project on social media, forums, and relevant communities.
- Write blog posts or tutorials about your project.
- Present your project at meetups, conferences, or online webinars.
- Create a Highlight on OpenSauced to showcase your project.
- Share your project with friends, family, and colleagues.
- Ask for feedback from your network.

## Recognize All Contributions

In order to maintain a healthy project where contributors feel valued, it's important to recognize contributions. Here are some ways to do that:
- Use tools like the [All Contributors](https://allcontributors.org) bot to acknowledge different types of contributions.
- Highlight contributors in your README or on your project's website.
- Create a Highlight on OpenSauced to showcase contributors.
- Thank contributors publicly for their work.

## Monitor

Once your project is up and running, it's important to monitor its health and activity. Here are some ways to do that:

- Use tools like [OpenSauced Repository Insights](https://docs.opensauced.pizza/features/insights/) to monitor the project's activity.
- Set up notifications for new issues and pull requests.
- Solicit feedback from users and contributors using discussions or surveys.
- Reflect on the project's direction and make adjustments as necessary.

Congratulations on creating your first project! Remember, these steps are guidelines; the key to a healthy open source project is to foster an open, inclusive, and collaborative environment.