Skip to content

feat(registry): support pinning CRS versions by tag #147

@0xdkay

Description

@0xdkay

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions