github mattrobinsonsre/terrapod v0.35.2

latest release: v0.35.3
4 hours ago

Hotfix for a latent VCS-drift bug that v0.35.1's drift-gate narrowing exposed at scale. Drop-in upgrade from v0.35.x — no schema changes.

Bug Fixes

  • Drift detection for VCS-connected workspaces now uses the same VCSArchiveCache / git_fetch path that regular VCS-poll runs use instead of the raw download_archive provider API. The raw API returns a tarball wrapped in a top-level <owner>-<repo>-<sha>/ directory; the runner's chdir /workspace after extraction lands one level above the actual repo content and any workspace var-files (e.g. envs/prod-us2.tfvars) resolve as missing. Pre-v0.35.1 this latent bug was masked because the wider _is_workspace_busy gate suppressed almost every drift run; once v0.35.1 narrowed that gate, drift started firing on every drift-enabled workspace and failed immediately with Given variables file <path> does not exist. The new code path goes through git_fetch.py and produces a clean, root-level tarball — byte-identical to what every successful apply on these workspaces already uses.

Tests

  • New TestCreateDriftRunVcs::test_uses_vcs_archive_cache_not_raw_download pins the function's archive-acquisition path. Widening the busy-states gate without keeping the cache path now fails CI immediately.
  • New TestCreateDriftRunVcs::test_raw_download_archive_not_referenced is a source-introspection guard — the drift detection module is forbidden from importing _download_archive. Re-importing it accidentally fails CI.

Status

Stable — drop-in upgrade from v0.35.x. No schema changes, no API breaks.

Full Changelog: v0.35.1...v0.35.2

Don't miss a new terrapod release

NewReleases is sending notifications on new releases.