blob: 196f138860b99ecdaf2bce054bcb16f3b7353acf [file] [log] [blame] [view] [edit]
Want to contribute? Great! First, read this page (including the small print at the end).
## Formatting
Starlark files should be formatted by buildifier.
We suggest using a pre-commit hook to automate this.
First [install pre-commit](https://pre-commit.com/#installation),
then run
```shell
pre-commit install
```
Otherwise the Buildkite CI will yell at you about formatting/linting violations.
### Code reviews and other contributions.
**All submissions, including submissions by project members, require review.**
We use GitHub's code review system to suggest changes, then merge the changes
to master when the PR is green and reviewed. The changes will then be in the
next release.
## Releasing
Releases are automated on a cron trigger.
The new version is determined automatically from the commit history, assuming the commit messages follow conventions, using
https://github.com/marketplace/actions/conventional-commits-versioner-action.
If you do nothing, eventually the newest commits will be released automatically as a patch or minor release.
This automation is defined in .github/workflows/tag.yaml.
Rather than wait for the cron event, you can trigger manually. Navigate to
https://github.com/bazel-contrib/rules_nodejs/actions/workflows/tag.yaml
and press the "Run workflow" button.
If you need control over the next release version, for example when making a release candidate for a new major,
then: tag the repo and push the tag, for example
```sh
% git fetch
% git tag v1.0.0-rc0 origin/main
% git push origin v1.0.0-rc0
```
Then watch the automation run on GitHub actions which creates the release.