v0.2.54
THE VERSION IN SERVICE
A fast follow with one job: the Sling engine DVT installs is now pinned to the exact version the 110-transition ring campaign proved — and the pin is enforced, not assumed. Hours after 0.2.53 shipped, upstream's three-day-old Sling v1.6.0 — released with an empty changelog — walked into a live environment through the old uncapped version floor and stalled a first sync on a 100MB engine fetch. That's the second uncapped-floor disease in two releases (a Cython regression was the first), so the fix is now doctrine: pin what's proven, track upstream actively, and adopt new releases at the speed of proof — changelog review, then the battery, then the pin moves.
CHANGED
- ▸The Sling wrapper requirement went from a floor (>=1.5.15) to an exact pin on the ring-proven version, held in one place. New environments install it; environments carrying any other version — newer or older — get a visible correction planned and applied by dvt sync, with the reconciliation confirming it line for line.
- ▸Upstream cadence is now a stated law: dbt-core and Sling for dvt-core, dbt-adapters upstream for DVT's adapters — tracked actively, evaluated deliberately (changelog, then the cross-engine battery), and adopted in ordinary gated releases. Progress at the speed of proof, never at the speed of surprise.
FIXED
- ▸Sync's plan reconciliation now credits the wrapper correction on the fast path: an environment whose engine was already cached completed the correction but reported it 'planned but NOT done' — the deed is recorded whichever path succeeds.
Get it: pip install dvt-core==0.2.54 · wheels on PyPI for macOS (arm64 + x86_64) and Linux x86_64, Python 3.10–3.14 — the full platform matrix.