rules_tomato
fastverk foundation module — fastverk_* macros + the dependency BOM + shared .bazelrc
| Latest | 0.1.2 |
|---|---|
| Versions | 3 |
| Category | Bazel rules |
| Maintainers | Matt Marshall |
| Registry | https://registry.tbzl.dev/modules/rules_tomato/ |
| Source | github.com/tomato-bazel/rules_tomato |
bazel_dep(name = "rules_tomato", version = "0.1.2")
View source & releases on GitHub ↗
The tomato-bazel foundation module — conventions + coordination on the
“how to build one target / one repo” axis. (Its sibling, rules_ci, owns the
project-orchestration axis: tomato_project + release/versioning.)
Three things:
1. Convention macros — //tomato:defs.bzl
-
tomato_mdbook— a brand-themed mdBook in one call: wrapsrules_mdbook’smdbook_bookand stages@brand//mdbook:themeat the book’stheme/, so every docs site is branded by construction.load("@rules_tomato//tomato:defs.bzl", "tomato_mdbook") tomato_mdbook(name = "site") # globs src/**/*.md, themes with @brand, -> site.tar.gz(More to follow:
tomato_rust_library, etc.)
2. The dependency BOM — //bom/versions.json
The canonical third-party + constellation versions. It’s a manifest (data),
not transitive bazel_deps — so consuming rules_tomato doesn’t drag the
whole constellation into your graph. The rels deps ratchet (implemented in bazel-registry//tools/rels) audits
every repo’s MODULE.bazel against it and, with --write, bumps drifting pins up
(forward-only — repos ahead of the BOM are reported, never downgraded). rels deps exits non-zero on behind-drift (the CI gate). This is how ~60 repos stay in
sync without a monorepo (first run: 38 pins behind across 20 repos — bazel_skylib
1.7.1→1.8.2, platforms 0.0.10→1.0.0, rules_shell 0.4.1→0.6.1, …).
3. The shared .bazelrc — //bazelrc:common.bazelrc
The registry chain + flags, in one place, so they stop drifting. Repos
try-import it (the ratchet syncs a vendored copy).
Status
v0.0.1 — macros + BOM + shared bazelrc scaffolded; //tomato:defs builds. The
rels deps ratchet against the BOM is implemented (bazel-registry//tools/rels).
Next: dogfood tomato_mdbook in fastverk/docs, add tomato_rust_library.
Conformance#
No gate findings. 8 contested atoms. See how gating works or the full report.
Contested atoms
Third-party modules where this module resolves a different version than others do. Not a violation of anything this module did — it is the actionable form of a registry-level convergence finding, and the sentence a maintainer can act on.
| Atom | Resolved here | Elsewhere |
|---|---|---|
apple_support | 1.24.2 | 2.2.0 ×1 |
bazel_skylib | 1.8.2 | 1.9.0 ×2 |
nlohmann_json | 3.6.1 | 3.12.0.bcr.1 ×1 |
protobuf | 33.4 | 34.0.bcr.1 ×2 |
rules_jvm_external | 6.7 | 6.8 ×4 |
rules_python | 1.7.0 | 2.0.1 ×1 |
rules_swift | 3.1.2 | 3.6.1 ×1 |
upb | 0.0.0-20220923-a547704 | 0.0.0-20230516-61a97ef ×1 |
Dependencies#
Depends on
Used by (1 in the registry)
Versions#
3 published versions, newest first. Each resolves to an immutable, integrity-checked archive.
| Version | Integrity (sha256) | Source archive |
|---|---|---|
0.1.2 latest | RvRAvefUrt78mIrb… | tag archive ↗ |
0.1.1 | 1hrLUs4NRfOvRYs9… | tag archive ↗ |
0.1.0 | droCNNYIuTD6zsQO… | tag archive ↗ |