+239
−50
Loading
Responds to prompt 1.1 feedback and resolves open questions Q4 and Q5.
- §2: document the single-dash hostname pattern (bl\d+[a-z]?-<machine>);
multi-dash names like ref-l-vtwin1 are explicitly invalid.
- §4.5 (new): "create if missing, never mutate" rule for the controls
user and slowcontrols_developers group. Pins canonical UID=88888 /
GID=43647 on fresh VMs but leaves existing non-canonical IDs alone
(e.g., bl4b-vtwin1 today has 166/55121) to avoid chown storms and
orphaning running processes with ruid=166.
- §6.3 step 2: replace the grep-based RELEASE aggregator (which would
miss $(SUPPORT)-style variable refs) with a GNU-make helper
epics/dump-deps.mk. Uses make as the make-syntax interpreter, so
$(VAR) expansion "just works" without reinventing a parser or needing
EPICS base built (msi is unavailable pre-build).
- §6.3 step 3 (new): per-path classifier table for git-release.sh flags.
-e and --das3 are mutually exclusive; the classifier picks exactly
one branch per unique /home/controls/... path. Notes the latent bug
in share/scripts/dependencies.sh which passes --das3 on *common*
paths but has no -e branch for *epics* paths; fix lives in our own
build_modules.sh, not upstream.
- §6.3 step 8: move the existing 'git-release.sh -r --all --das3 nED
rel2.4.10_20241203' line out of the top-level provision target into
epics-modules so it runs after all transitive deps exist. No behavior
change for non-vtwin roles because epics-modules is ROLE-gated.
- §9 (verify) check 0: assert user/group existence and membership by
name, emit NOTE for non-canonical IDs, still pass. Check 7: flag-only
PS71/PS72 TCP 4571 collision (bootstrap never mutates beamline repo).
- §11.1: add epics/dump-deps.mk to deliverables; §5.2 tree updated.
- §12 Q4, Q5: resolved inline.
- §13 step 0 (new): validate the aggregator dry-run on this machine
before touching any live state — catches classifier/dump-deps bugs
while they're cheap.
- Appendix B: add dry-run cheat-sheet lines for dump-deps.mk,
build_modules.sh --show-only, and the ID-guard sanity check.
Co-Authored-By:
Claude Opus 4.6 (1M context) <noreply@anthropic.com>