Problem
Registry entries currently only support branch refs:
source:
url: https://github.com/Team-Atlanta/atlantis-multilang-wo-concolic.git
ref: main
init_crs_repo() uses git fetch origin {ref} followed by git reset --hard origin/{ref}, which works for branches but fails for tags because tags are at refs/tags/{ref}, not refs/remotes/origin/{ref}.
This means CRS versions cannot be pinned to a specific release tag (e.g., 1.0.0), making experiment reproducibility harder — the CRS code can change between runs if main is updated.
Proposal
Support tag refs in the registry by detecting whether ref is a branch or tag in init_crs_repo():
# For reset, handle both cases:
# branch: git reset --hard origin/{ref}
# tag: git reset --hard {ref} (after git fetch origin tag {ref})
Or use git fetch origin --tags + git checkout {ref} which works for both branches and tags.
Benefits
- Reproducible experiments: pin to
ref: "1.0.0" instead of a moving branch
- CRS versioning aligned with
crs.yaml version field
- Safe to iterate on
main without breaking running experiments
Problem
Registry entries currently only support branch refs:
init_crs_repo()usesgit fetch origin {ref}followed bygit reset --hard origin/{ref}, which works for branches but fails for tags because tags are atrefs/tags/{ref}, notrefs/remotes/origin/{ref}.This means CRS versions cannot be pinned to a specific release tag (e.g.,
1.0.0), making experiment reproducibility harder — the CRS code can change between runs ifmainis updated.Proposal
Support tag refs in the registry by detecting whether
refis a branch or tag ininit_crs_repo():Or use
git fetch origin --tags+git checkout {ref}which works for both branches and tags.Benefits
ref: "1.0.0"instead of a moving branchcrs.yamlversionfieldmainwithout breaking running experiments