TRLC ships Bazel macros in trlc.bzl
# MODULE.bazel
bazel_dep(name = "trlc", version = "x.x.x")# BUILD
load("@trlc//:trlc.bzl",
"trlc_specification",
"trlc_requirements",
"trlc_requirements_test",
"trlc_specification_test")Collects .rsl schema files into a bazel target.
| Attribute | Description |
|---|---|
name |
Target name. |
srcs |
*.rsl files. |
Collects .trlc requirement files, wired to their schema and any
imported packages.
| Attribute | Description |
|---|---|
name |
Target name. |
srcs |
*.trlc files. |
spec |
Direct trlc_specification targets. |
deps |
Other trlc_requirements targets whose packages are imported. |
Runs trlc --verify. The test passes when TRLC reports no errors.
Pass a custom srcs/main to run your own Python script instead
of the built-in CLI (see TUTORIAL-API.md).
| Attribute | Description |
|---|---|
name |
Target name. |
reqs |
trlc_requirements targets to validate. |
srcs |
Override the entry-point script (optional). |
main |
Filename of the entry point (required when srcs is set). |
Like trlc_requirements_test but passes --skip-trlc-files. Use
this to check the RSL schema is consistent before any .trlc data
files exist.
See the complete working example in
api-examples/filename-check/.
Chain packages with deps when one .trlc file imports another:
# base/BUILD
trlc_specification(name = "spec", srcs = ["base.rsl"])
trlc_requirements(name = "reqs", srcs = ["base_reqs.trlc"], spec = [":spec"])
# feature/BUILD
trlc_requirements(
name = "reqs",
srcs = ["feature_reqs.trlc"],
spec = [":feature_spec"],
deps = ["//base:reqs"], # pulls in base.rsl + base_reqs.trlc
)