# Contribution guidelines When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. This avoids extra work for both you and us. You must follow the [commit message guidelines](#commit-message-guidelines). ## Pull Request Process 1. Fork the repo and create your branch from `main`. 1. Implement your changes. 1. If applicable to your changes, add, remove or update tests. 1. If applicable to your change, update the readme accordingly. 1. Run the tests and make sure they pass using `npm run test`. This will also run the linter. 1. Create a new pull request! ## We use the MIT licence You can read our licence [here](https://github.com/scriptcoded/sql-highlight/blob/master/LICENSE). ## License By contributing, you agree that your contributions will be licensed under its MIT License. ## Commit message guidelines > These guidelines were taken from the [semantic-release contribution guidelines](https://github.com/semantic-release/semantic-release/blob/master/CONTRIBUTING.md#commit-message-guidelines) ### Atomic commits If possible, make [atomic commits](https://en.wikipedia.org/wiki/Atomic_commit), which means: - a commit should contain exactly one self-contained functional change - a functional change should be contained in exactly one commit - a commit should not create an inconsistent state (such as test errors, linting errors, partial fix, feature with documentation etc...) A complex feature can be broken down into multiple commits as long as each one maintains a consistent state and consists of a self-contained change. ### Commit message format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ```commit ():