bazel-lib/CONTRIBUTING.md

48 lines
1.5 KiB
Markdown
Raw Normal View History

2021-11-08 14:20:26 +00:00
# How to Contribute
## 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 later tooling on CI may yell at you about formatting/linting violations.
## Updating BUILD files
Some targets are generated from sources.
Currently this is just the `bzl_library` targets.
Run `bazel run //:gazelle` to keep them up to date.
2021-11-08 14:20:26 +00:00
## Using this as a development dependency of other rules
You'll commonly find that you develop in another WORKSPACE, such as
2021-11-08 14:40:36 +00:00
some other ruleset that depends on bazel_lib, or in a nested
2021-11-08 14:20:26 +00:00
WORKSPACE in the integration_tests folder.
To always tell Bazel to use this directory rather than some release
artifact or a version fetched from the internet, run this from this
directory:
```sh
2021-11-08 14:40:36 +00:00
OVERRIDE="--override_repository=bazel_lib=$(pwd)/bazel_lib"
2021-11-08 14:20:26 +00:00
echo "build $OVERRIDE" >> ~/.bazelrc
echo "query $OVERRIDE" >> ~/.bazelrc
```
2021-11-08 14:40:36 +00:00
This means that any usage of `@aspect_bazel_lib` on your system will point to this folder.
2021-11-10 18:41:16 +00:00
## Releasing
2021-11-11 15:02:50 +00:00
1. Make sure your git state is at the right place (something like `git fetch; git checkout origin/main`)
1. Determine the next release version, following semver (could automate in the future from changelog)
1. `git tag -a v1.2.3` (will open an editor to put release notes)
1. `git push --tags`
2021-11-10 18:41:16 +00:00
1. Watch the automation run on GitHub actions
1. Update the release page with auto-generated release notes