42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
# How to contribute to SillyTavern
|
|
|
|
## Setting up the dev environment
|
|
|
|
1. Required software: git and node.
|
|
2. Recommended editor: Visual Studio Code.
|
|
3. You can also use GitHub Codespaces which sets up everything for you.
|
|
|
|
## Getting the code ready
|
|
|
|
1. Register a GitHub account.
|
|
2. Fork this repository under your account.
|
|
3. Clone the fork onto your machine.
|
|
4. Open the cloned repository in the code editor.
|
|
5. Create a git branch (recommended).
|
|
6. Make your changes and test them locally.
|
|
7. Commit the changes and push the branch to the remote repo.
|
|
8. Go to GitHub, and open a pull request, targeting the upstream branch.
|
|
|
|
## Contribution guidelines
|
|
|
|
1. Our standards are pretty low, but make sure the code is not too ugly:
|
|
- Run VS Code's autoformat when you're done.
|
|
- Check with ESLint by running `npm run lint`, then fix the errors.
|
|
- Use common sense and follow existing naming conventions.
|
|
2. Create pull requests for the staging branch, 99% of contributions should go there. That way people could test your code before the next stable release.
|
|
3. You can still send a pull request for release in the following scenarios:
|
|
- Updating README.
|
|
- Updating GitHub Actions.
|
|
- Hotfixing a critical bug.
|
|
4. Project maintainers will test and can change your code before merging.
|
|
5. Write at least somewhat meaningful PR descriptions. There's no "right" way to do it, but the following may help with outlining a general structure:
|
|
- What is the reason for a change?
|
|
- What did you do to achieve this?
|
|
- How would a reviewer test the change?
|
|
6. Mind the license. Your contributions will be licensed under the GNU Affero General Public License. If you don't know what that implies, consult your lawyer.
|
|
|
|
## Further reading
|
|
|
|
1. [How to write UI extensions](https://docs.sillytavern.app/for-contributors/writing-extensions/)
|
|
2. [How to write server plugins](https://docs.sillytavern.app/for-contributors/server-plugins)
|