# Contributing to sublime-syntax-definition-template-tag
Open source projects like `sublime-syntax-definition-template-tag` live on your words of encouragement and contribution. Please give feedback, report issues, or submit pull requests!
Here are some guidelines to help you and everyone else.
## Local development
Install dependencies
1. Fork and clone this repo.
```sh
git clone git@github.com:/sublime-syntax-definition-template-tag.git
```
1. Change directory.
```sh
cd sublime-syntax-definition-template-tag
```
1. Use [`pnpm`](https://pnpm.io/installation) to install dependencies.
```sh
pnpm install
```
Check and fix errors
1. As you write code, please check that it meets formatting and linting rules.
```sh
pnpm lint
```
1. You can run `lint:fix` to fix errors.
```sh
pnpm lint:fix
```
Run tests
1. When you write code, please check that all tests continue to pass.
```sh
pnpm test
```
Add changeset to pull request
1. To record how a pull request affects packages, you will want to add a changeset.
The changeset provides a summary of the code change. It also describes how package versions should be updated (major, minor, or patch) as a result of the code change.
```sh
pnpm changeset
```
Publish package (for admins)
1. Generate a [personal access token](https://github.com/settings/tokens/) in GitHub, with default values for scopes (none selected).
1. Run the `release:prepare` script. This removes changesets, updates the package version (e.g. from `0.1.1` to `0.1.2`), and updates the `CHANGELOG`.
```sh
GITHUB_TOKEN= pnpm release:prepare
```
1. Review the file changes. Commit them in a branch, then open a pull request to merge the changes to the `main` branch.
```sh
git checkout -b tag-0.1.2
git add .
git commit -m "Tagged 0.1.2"
git push origin tag-0.1.2
```
1. [Create a tag](https://github.com/ijlee2/sublime-syntax-definition-template-tag/releases/new) and provide release notes. The tag name should match the package version (e.g. `0.1.2`).
1. Update the release branches. We can use branches to publish multiple Sublime syntax definitions to [Package Control](https://packagecontrol.io).
```sh
pnpm release:publish
git push origin gjs gts
```