bazel-lib/CONTRIBUTING.md

1.5 KiB

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 (>= v3.2.0), then run

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.

Using this as a development dependency of other rules

You'll commonly find that you develop in another WORKSPACE, such as some other ruleset that depends on bazel_lib, or in a nested 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:

OVERRIDE="--override_repository=bazel_lib=$(pwd)/bazel_lib"
echo "build $OVERRIDE" >> ~/.bazelrc
echo "query $OVERRIDE" >> ~/.bazelrc

This means that any usage of @aspect_bazel_lib on your system will point to this folder.

Releasing

  1. Make sure your git state is at the right place (something like git fetch; git checkout origin/main)
  2. Determine the next release version, following semver (could automate in the future from changelog)
  3. git tag -a v1.2.3 (will open an editor to put release notes)
  4. git push --tags
  5. Watch the automation run on GitHub actions
  6. Update the release page with auto-generated release notes