Welcome to the Toppings! We're excited that you're interested in contributing. Before you get started, please take a moment to read this guide, which outlines the contribution process.
Before you start contributing, ensure you have the following installed:
- Bun
- Git
- Go (for running the server locally)
- Google API Key with access to YouTube API
The project is divided into several components:
- App: Contains all the extension logic.
- Server: Contains the server written in Golang, hosted on Render.
- Docs: Contains the deployed website of the extension, built using a combination of Next.js App Router and Nextra.
- Fork the repository on GitHub.
- Clone your forked repository to your local machine.
- Change to the
app
directory.
cd app
- Install project dependencies.
bun install
- Build the extension in dev mode:
bun run dev
Note
For Firefox developement, use BROWSER=firefox
environment variable.
- Make sure you have Go installed (
go version
should display the version). - Start the server located in
server/cmd/main/main.go
. - This step is required for full functionality of the extension in local development mode.
cd server/cmd/main
go run main.go
- Change to the
docs
directory.
cd docs
- Install project dependencies.
bun install
- Run the documentation website in dev mode:
bun run dev
We welcome contributions to different parts of the project! Here are some guidelines to help you get started:
-
Create an Issue: Before creating a new issue, please check if a similar issue already exists. If it does, you can join the discussion there. If not, feel free to create a new issue. Provide clear and concise details about the bug or feature you want to address.
-
Fork the Repository: Click the "Fork" button in the top right corner of the repository to create your copy.
-
Create a Branch: Create a new branch for your changes related to the app.
git checkout -b feature/app-feature
-
Make Changes: Implement your changes in the app directory. Follow the project's coding standards and guidelines.
-
Test your Changes: Verify that your changes work as expected in the extension.
-
Commit Changes: Commit your changes with a clear and concise commit message.
git commit -m "Implement feature in app"
- Push Changes: Push your changes to your forked repository.
git push origin feature/app-feature
-
Create a Pull Request (PR): Open a PR from your forked repository to the original repository. Describe your changes in the PR.
-
Code Review: Participate in the code review process. Address any feedback or comments.
-
Merge: Once your PR is approved, it will be merged into the main project.
For contributing to the server or documentation, follow similar steps specific to those directories.
- You can contribute to any part of the project independently.
- Contributions without Go and Google API key are welcome but may limit the full functionality of the extension in local development.
All PRs should be against main
, and ideally should address an open issue, unless the change is small. Direct commits to main are blocked, and PRs require an approving review to merge into main. Toppings maintainers will review PRs when:
- An initial review has been requested
- A clear, descriptive title has been assigned to the PR
- A maintainer is tagged in the PR comments and asked to complete a review
Thank you for taking the time to contribute to our project! Your involvement helps make this project better for everyone.
- Browse issues with the "good first issue" label. These are issues we think are good for newcomers.
- Raise an issue for a feature or a bug you want to tackle
If you have any questions or need assistance, please reach out to us through GitHub issues.
Happy coding! 😊
Could these guidelines be clearer? Feel free to open a PR to help us facilitate open-source contributions!