🎉 First off, thanks for taking the time to contribute! 🎉
The following is a set of guidelines for contributing to Chorus. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This project and everyone participating in it are governed by the Code of Conduct. By participating, you are expected to uphold this code.
- Star this repo. It's quick and aids in discoverability! 🌠
- Reporting Bugs. Draw attention to quirks or misbehaviours in functionality. If something seems off or doesn't work like it used, please report it so it can be fixed for all users.
- Suggest Enhancements. Feature missing that you would like introduced? File a suggestion and you might get your wish. Your wish could saves other users' wishes. There are only a finite ammount of Djinns in the world! 🪄 🧞
- CodeBase Contribution. You want to add new features, fix bugs, update documentation, designs, assets such as videos/images, etc? I heard a resounding YES! No backsies. 😄
Any form of contribution (except for stars), as long as they are unique, will be recognized by having the user's github profile included in the all-contributors list and in the README contributors wall.
This section guides you through submitting a bug report for Chorus. Following these guidelines helps maintainers, and the community understand your report 📝, reproduce the behavior 💻, and find related reports 🔎.
When you are creating a bug report, please include as much detail as possible.
Bugs are tracked as GitHub issues.
Explain the problem and include additional details to help reproduce the problem:
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible. Don't just say what you did, but explain how you did it.
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
- Explain which behavior you expected to see instead and why.
Include details about your environment.
This section guides you through submitting an enhancement suggestion for Chorus. Following these guidelines helps maintainers and the community understand your suggestion 📝 and find related suggestions 🔎.
When you are creating an enhancement suggestion, please include as much detail as possible.
Enhancement suggestions are tracked as GitHub issues.
Create an issue on that repository and provide the following information:
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Explain why this enhancement would be useful to most users.
Please feel free to contribute to this open source project. First timers are more than welcome. Unsure where to begin contributing to Chorus? You can start by looking through these good-first-issue
and help-wanted
issues:
- Good first issue - issues which should only require a small amount of code and/or effort. Extra help readily available, especially for first time contributors to codebase.
- Help wanted - issues which should be a bit more involved than
Good first issue
issues, but guidance will be provided all the same.
Take a look at the open issues under the issues tab. If you identify a bug, or would like to implement a feature that isn't posted under the issues, please feel free to submit a new issue, for which steps are outlined above. Also, if you see anything that needs to be updated in the README file, you're more than welcome to update it. For issues you want to work on please assign yourself to it, or just mention in a comment under the issue that you have claimed it.
- Fork the project.
- Clone your fork.
- Make sure you are in the right directory:
cd chorus
. - Add an
upstream
remote for keeping your local repository up-to-date:git remote add upstream git@github.com:cdrani/chorus.git
- Install pnpm
- Run
pnpm install
to install the project dependencies.
- Run
pnpm watch
to start your dev environment. This will create adist
folder that will be watched for changes to reload the extension. - Open browser tab to
[browser]://extensions
. For ex.chrome://extensions
,brave://extensions
,edge://extensions
. Most chromium browsers will have a similar pattern. - Toggle
Developer mode
switch ON. - Click
Load unpacked
(or similar) button. - Find and select the
dist
folder. - Open
open.spotify.com
tab. Pin tab for easy access. - Hack!
Possible, but I suggest using a chromium-based browser. However...
- Run
pnpm watch
to start your dev environment. This will create adist
folder that will be watched for changes to reload the extension. - In the dist folder, make this change:
- "background": {
- "type": "module",
- "service_worker": "background.js"
- }
+ "background": {
+ "type": "module",
+ "scripts": [
+ "background.js"
+ ]
+ },
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "chorus@cdrani.dev",
+ "strict_min_version": "112.0"
+ }
+ }
- Open browser tab to
about:debugging
. - Click
This Firefox
from left panel. - Click
Load temporary Add-on
button. - Select
manifest.json
fromdist
folder. - Accept permissions. Pin tab for easy access.
- Hack!
-
Make sure you are on the
develop
branch, and you have pulled the latest changes.git checkout develop && git pull upstream develop
-
Install any new dependencies:
pnpm install
. -
Create a new branch off of the
develop
branch.git checkout -b [NEW BRANCH NAME]
Branch naming conventions:
fix/[BRANCH]
for bug fixes,feat/[BRANCH]
for new features,doc/[BRANCH]
for changes to documents. The[BRANCH]
portion should be kebab case. For example, if you want to update the README.md file, your branch could be calleddoc/update-readme
. -
Make changes and fix any warnings and/or errors that arise in the console.
-
Commit your changes:
git add . && git commit -m [YOUR COMMIT MESSAGE]
.The subject of a commit message (the first line) should be 72 characters or less. If you need more room for a longer explanation of your changes, you can add a blank line below the subject and write a commit body. The commit message should be in present-imperative tense ("update README.md" rather than "updates" or "updated").
-
Push your branch to your fork:
git push -u origin [BRANCH NAME]
. -
Open a new PR against the
develop
branch from your fork using the GitHub user interface.