To build with remote execution enabled, add the following to .bazelrc.user:
build --config=remote
build --remote_header=x-buildbuddy-api-key=YOUR_TOKEN
Build and test:
$ bazel test //...
$ bazel test //zig/tests/integration_tests
$ cd e2e/workspace; bazel test //...
Follow conventional commits in pull-request titles and descriptions. These messages will be picked up by the release automation when generating the changelog.
Starlark files should be formatted by buildifier. We suggest using a pre-commit hook to automate this. First install pre-commit, then run
pre-commit installOtherwise later tooling on CI may yell at you about formatting/linting violations.
Some targets are generated from sources.
Currently these are bzl_library targets and filegroup targets.
Furthermore, the API documentation is generated, and certain flags need to be
generated for integration testing purposes.
Run bazel run //util:update to keep them up-to-date.
You'll commonly find that you develop in another Bazel module, such as some other ruleset that depends on rules_zig, or in a nested module 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_module=rules_zig=$(pwd)"
echo "common $OVERRIDE" >> ~/.bazelrcThis means that any usage of @rules_zig on your system will point to this folder.
- Determine the next release version, following semver (could automate in the future from changelog)
- Tag the repo and push it (or create a tag in GH UI)
- Watch the automation run on GitHub actions