Summary
score-pr-checks.yml (bazel-module-name-check job) validates that
MODULE.bazel's module() name matches ^score_[a-z_]+$, but does not check
.bazelrc for the S-CORE custom Bazel registry configuration. As a result, a
repo can silently drift from the standard template without any CI signal.
This actually happened: score-crates's .bazelrc was missing the two lines
that every other module (per module_template) has:
common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/
common --registry=https://bcr.bazel.build
Without the first line, any module version with an "-score" suffix (e.g.
rules_rust@0.68.2-score) cannot be resolved, since those versions only
exist in the S-CORE registry, not the Bazel Central Registry. This went
unnoticed until it caused real build failures.
Evidence
module_template/.bazelrc (canonical template): has both registry lines.
baselibs/.bazelrc, persistency/.bazelrc: have both registry lines.
score-crates/.bazelrc: was missing both lines entirely, with no CI check
catching the discrepancy.
Suggested improvement
Extend score-pr-checks.yml with an additional check (or a new job) that
verifies .bazelrc contains the required S-CORE registry line(s), similar to
how the existing job already parses MODULE.bazel. Something like:
- name: Check .bazelrc for S-CORE registry
run: |
if [ -f ".bazelrc" ]; then
if ! grep -q "raw.githubusercontent.com/eclipse-score/bazel_registry" .bazelrc; then
echo "S-CORE Bazel registry entry missing from .bazelrc"
fi
fi
This would catch the same class of drift (a repo silently missing a
template-standard .bazelrc line) before it causes confusing "-score"
version resolution failures downstream.
Environment
- cicd-workflows @ main
- module_template @ main
- Repro case: score-crates @ main (as of 2026-08-07, before local fix)
Summary
score-pr-checks.yml(bazel-module-name-check job) validates thatMODULE.bazel's module() name matches^score_[a-z_]+$, but does not check.bazelrcfor the S-CORE custom Bazel registry configuration. As a result, arepo can silently drift from the standard template without any CI signal.
This actually happened:
score-crates's.bazelrcwas missing the two linesthat every other module (per module_template) has:
Without the first line, any module version with an "-score" suffix (e.g.
rules_rust@0.68.2-score) cannot be resolved, since those versions onlyexist in the S-CORE registry, not the Bazel Central Registry. This went
unnoticed until it caused real build failures.
Evidence
module_template/.bazelrc(canonical template): has both registry lines.baselibs/.bazelrc,persistency/.bazelrc: have both registry lines.score-crates/.bazelrc: was missing both lines entirely, with no CI checkcatching the discrepancy.
Suggested improvement
Extend
score-pr-checks.ymlwith an additional check (or a new job) thatverifies
.bazelrccontains the required S-CORE registry line(s), similar tohow the existing job already parses
MODULE.bazel. Something like:This would catch the same class of drift (a repo silently missing a
template-standard
.bazelrcline) before it causes confusing "-score"version resolution failures downstream.
Environment