First of all, thanks for thinking of contributing to this project! 👏
Following these guidelines helps to communicate that you respect the time of the maintainer and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
Please note we have a code of conduct, please follow it in all your interactions with the project.
Feel free to open a ticket with your bug report.
In case you've encountered a bug, please make sure:
- You are using the latest version.
- You have read the documentation first, and double-checked your configuration.
- In your issue description, please include:
- What you expected to see, and what happened instead.
- Your operating system and other environment information.
- As much information as possible, such as the command and configuration used.
- Interesting logs from a verbose and/or debug run.
- All steps to reproduce the issue.
Feature requests are also welcome. Describe the feature, why you need it, and how it should work. Please provide as much detail and context as possible.
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.
Pull requests are welcome! If you never created a pull request before, here are some tutorials:
-
Use the present tense ("Add feature" not "Added feature")
-
Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
-
Limit the first line to 72 characters or less
-
Reference issues and pull requests liberally after the first line
All Typescript code is linted with ESLint and Prettier.
(These are mainly notes for the maintainer, if you are contributing a PR you won't need to worry about this)
The release process is driven by release-it. First you create a draft
GitHub release locally by using release-it
, then you publish the release through the GitHub web UI.
To create a draft release:
-
On your local computer, checkout the
main
branch. -
Update the changelog, ensuring you add an
## [Unreleased]
section. -
Run
npm run release
with the options you want, then follow the prompts. The two most useful options are--dry-run
and--preRelease=alpha
(or whatever the pre-release version is). Note that you need to add--
before any release-it arguments.
Example:
npm run release -- --dry-run --preRelease=alpha
The release-it settings are configured to create a draft release on GitHub. Once the release is published within GitHub,
an automated workflow publishes the package to the npm
repository.
Note: in order to run the release process, you need to set up the RELEASEMGMT_GITHUB_API_TOKEN
environment variable
on your local computer. This should contain a GitHub PAT with the appropriate permissions - see the
release-it documentation for more
details.