tomato·bazeldocs v0 · latest
Docs/Reference/Modules/rules_tomato

rules_tomato

fastverk foundation module — fastverk_* macros + the dependency BOM + shared .bazelrc

Latest0.1.2
Versions3
CategoryBazel rules
MaintainersMatt Marshall
Registryhttps://registry.tbzl.dev/modules/rules_tomato/
Sourcegithub.com/tomato-bazel/rules_tomato
MODULE.bazelstarlark
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: wraps rules_mdbook’s mdbook_book and stages @brand//mdbook:theme at the book’s theme/, 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.

AtomResolved hereElsewhere
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#

rules_tomato in the registry graph — what it depends on (left) and what depends on it (right).

Depends on

Used by (1 in the registry)

Versions#

3 published versions, newest first. Each resolves to an immutable, integrity-checked archive.

VersionIntegrity (sha256)Source archive
0.1.2 latest RvRAvefUrt78mIrb… tag archive ↗
0.1.1 1hrLUs4NRfOvRYs9… tag archive ↗
0.1.0 droCNNYIuTD6zsQO… tag archive ↗

← All modules