Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 7 additions & 0 deletions CONTIRBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Contributing

Thank you for considering contributing to FRCSoftware.org!

FRCSoftware.org is a community driven project, and we rely on the work of volunteer contributors to write and maintain articles.

To learn more about contributing to the site and our styleguide, please visit our (contributing section)[https://frcsoftware.org/contribution/].
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,9 @@ pnpm --version # Should be 10.x or higher
| `pnpm dev` | Start local dev server at `localhost:4321` |
| `pnpm build` | Build production site to `./dist/` |
| `pnpm preview` | Preview build locally before deploying |
| `pnpm format` | Run the formatter |
| `pnpm lint` | Run the linter for Javascript files |
| `pnpm lint:md` | Run the linter for Markdown files |

## Deployment

Expand All @@ -380,9 +383,9 @@ To deploy:

## Contributing

See the [Contribution Guide](/contribution/methodsofcontributing/) on the website for details on how to contribute to FRCSoftware.org.
See the [Contribution Guide](https://frcsoftware.org/contribution/) on the website for details on how to contribute to FRCSoftware.org.

## Links

- [FRCSoftware.org](https://frcsoftware.org/)
- [GitHub Repository](https://github.com/frcsoftware/frcsoftware.github.io)
- [GitHub Repository](https://github.com/frcsoftware/frcsoftware.org)
79 changes: 0 additions & 79 deletions plan.puml

This file was deleted.

19 changes: 19 additions & 0 deletions src/content/docs/contribution/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: Contributing
description: Contributing to FRCSoftware.org
---

Thank you for considering contributing to FRCSoftware.org!

FRCSoftware.org is a community driven project, and we rely on the work of volunteer contributors to write and maintain articles.

Currently, the project is in a very early stage, where the initial content for the website is still being written.
This also includes significant discussion on the structure, philosophy, and roadmap of the website, which is all actively in development.
As such, this is a great time to get involved with the project.
The current focus is on getting stages 0, 1, and 2 complete and setting up the website and our processes for long-term success.

This is a great time to get involved with this project and have an impact.

<LinkButton href="https://discord.gg/uUugPrPZFs">
Join our development Discord
</LinkButton>
82 changes: 21 additions & 61 deletions src/content/docs/contribution/methodsOfContributing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,20 @@ import Aside from '../../../components/Aside.astro';

## Public Contribution

Anyone can create content for the website without markdown knowledge or GitHub, though it is preferred you learn how to use both to lessen the workload of other contributors.

FRCSoftware.org is just getting started, so the easiest way to propose work is by opening a GitHub issue in the main repository.
Use this template in your issue:

```
Issue/content:
Solution or Notes about the execution of the content:
When do you plan on finishing?:
Using an alternate platform or forking on Github?:
```

This helps avoid duplicate work and keeps contribution priorities clear as the project grows.

If you're given approval to start working on it, continue discussion in the issue thread so everyone can follow progress.

When you start on your work, you may choose to either:

1. Fork the repository on GitHub and submit pull requests for your work to be accepted (if you're more programming-savvy)
2. Work on an alternate platform such as Google Docs or Notion and let an internal contributor port it over to the website when you're done
When you start on your work, fork the repository on GitHub and submit pull requests for your work to be accepted.

## Setting up GitHub and VS Code For Contributing

Expand All @@ -44,83 +38,49 @@ Windows installers will almost always need to be the 64-bit version if there is
- [Node.js LTS](https://nodejs.org/)
- Download the LTS version for your OS
- Use all default options for installation
- [pnpm](https://pnpm.io/installation)
- [VSCode](https://code.visualstudio.com/)
- Download the stable build for your OS
- Use all default options for installation, except creating a desktop icon if you want
- [GitHub Desktop](https://desktop.github.com/) (Optional - you can also use git interface in VSCode)
- After installing, select "Sign in to GitHub.com"
- Sign in or sign up for a new GitHub account, then click "Authorize Desktop"
- If you choose to sign up, you must verify your account with a captcha at the end of the registration and an emailed code
- If the captcha fails, try disabling a privacy extension that might be interfering
- Set up the rest of your account (you may choose to sign up for GitHub education but that isn't required, the free version is fine)
- If it doesn't take you to the authorization page after signing up, go back to the GitHub Desktop application, press "Cancel", then select "Sign in to GitHub.com" again
- Allow your browser to open GitHub Desktop
- Click "Finish"
- A WPILib VSCode installation will work perfectly fine
- Recommended: Install a spellcheck extension to catch mistakes early

### Steps to Start Writing Contributions

**For Public Contributors:**

1. Go to the repository website
2. Click "Fork" near the top right, then click "Create Fork" on the next screen
3. Open GitHub Desktop and select "Clone a repository from the Internet..." or go to `file -> Clone repository...` in the very top left
4. Under "GitHub.com", select your forked `[username]/frcsoftware.github.io` repository and click "Clone"
5. After it clones the repository (downloads a copy of it to your computer), it will ask how you plan to use the fork.
Select "To contribute to the parent project" and click "Continue"

**For Internal Contributors (added to the main repository):**

1. Open GitHub Desktop and select "Clone a repository from the Internet..." or go to `file -> Clone repository...` in the very top left
2. Under "GitHub.com", select the main repository and click "Clone"
3. After it clones the repository (downloads a copy of it to your computer), it will ask how you plan to use the fork.
Select "To contribute to the parent project" and click "Continue"
3. Clone your fork of the repository to your computer

**How to Write and Pull Request Contributions**

1. Create a new branch by going to the "Current branch" dropdown at the top of GitHub Desktop, pressing "New branch", naming it and clicking "Create branch".
- Typically you want to make changes in branches (not main), then do what's called a "pull request" to get those changes "pulled" and merged over to the original main branch
- Name the branch something related to the overall changes you're making, e.g. "contributors-guide" or "3A-cleanup".
You should expect to delete the branch after a pull request, so keep it specific enough to your changes
- Make sure to publish the branch by clicking the button for it that shows up after you create a new branch
1. Work on your changes in a new branch in your fork of the repository.
This allows you to have multiple versions of the repository at once, for example if you are working on two separate tasks
- Make sure to publish the branch
2. Click "Open in Visual Studio Code" to open VS Code.
3. If you get a pop-up that says "Do you trust the authors of the files in this folder?", check the box next to "Trust the authors of all files in the parent folder 'GitHub'" (for no further popups when you clone repositories in the future) and click "Yes, I trust the authors".
4. Set up VS Code how you like if this is your first time running it (themes, extensions).
- The "Code Spell Checker" extension is suggested
- Enable autosave in the `file` menu by toggling it on
5. Make a set of changes.
4. Make your changes
5. Run the formatter and linter before committing
- Use `pnpm format` to run the formatter
- Use `pnpm lint` followed by `pnpm lint:md` to run the linter steps
- The formatter will apply code formatting to the docs section of the side, to maintain a consistent style
- The linter steps will perform various checks in the code to ensure basic functionality
6. Make and commit your changes

<Aside type="tip">
All the website files and folders are contained in the `src/content/docs` folder.

</Aside>

6. Whenever you reach a good point to stop where you want to save your changes to the cloud, you want to make what's called a "commit", which is where the changes are saved to the branch.
You then have to "push" any commits to get them uploaded to the cloud, otherwise they will remain local.
You can do this through VS Code or GitHub Desktop, but we'll go through GitHub Desktop to keep all version control actions centralized there.
7. Open GitHub Desktop and make sure "Changes" on the sidebar is selected.
All changes selected in the sidebar will be added to the commit (the changes are "staged" for the commit).
Type a summary of the commit (description optional) and press "Commit to \[branch\]".
8. Click the button to push the commit(s) you've made to the cloud (either up above or in the middle of the screen).
In GitHub on your fork of the repository, use the "sync" button to easily rebase your branch onto the primary frcsoftware.org repository to keep up to date with any changes that have been made since you started your branch

<Aside type="tip">
Clicking the "Fetch origin" button will fetch any commits to the current branch that anyone else has made and pushed to the cloud.

</Aside>

9. To keep your code up to date with the original repository's main branch, open the "branch" menu at the top of the screen and click "Update from main".
If some commits get pulled to your branch from main, you can push to update your branch in the cloud again.

<Aside type="tip">
Make sure to update your branch from main frequently!
If you don't, you may have to resolve big conflicts between your changes and changes someone else made to main.
If you encounter conflicts, just follow the prompts in GitHub Desktop to open the conflicts in VS Code and solve them there.
Once all conflicts are resolved, switch back to GitHub Desktop to complete the merge.

Make sure to update your branch from main frequently! If you don't, you may
have to resolve big conflicts between your changes and changes someone else
made to main.
</Aside>

10. Once you're satisfied enough with your set of changes to request to add them to the main website, and have committed all changes, checked for updates, and pushed all commits, create a pull request through the menu in the middle of GitHub Desktop.
This will bring you to the website where you can describe the changes you made and want to pull to the website and assign an issue that it will fix.
One of the internal contributors will review your pull request after you submit it and will either approve it and merge it with the main branch or make comments about things that need fixed before it can get merged.
5. Once you've completed your changes, check that you've committed everything, that your branch is up to date with main, and that everything has been pushed.
Then, create a pull request on GitHub, from your branch to the main branch of the frcsoftware.org repository.

To recap the contribution steps, do the combination of creating and publishing a branch, making changes and commits, updating from main, pushing commits, and creating a pull request.

Expand Down
7 changes: 5 additions & 2 deletions src/content/docs/contribution/roadmap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@ next: false

## Roadmap

The roadmap is a work in progress, and can currently be found in `./plan.puml` in the repository.
This page will be updated at a later date with the roadmap.
The roadmap is a work in progress, and can be found on the GitHub project.

<LinkButton href="https://github.com/orgs/frcsoftware/projects/1">
Check out the GitHub project
</LinkButton>
Loading
Loading