Problem
The Vela version is declared in three places that can drift apart, and currently do: fbcode/executorch/backends/arm/PACKAGE (internal override, 5.0.0._git_0f8edf7), backends/arm/requirements-arm-ethos-u.txt (5.1.0), and oss/pyproject.toml. Nothing keeps them consistent, so a silent mismatch is a latent "works here, breaks there."
What to do
Add a soft lint that checks the three pins against each other. It must be advisory, never blocking — the patched-5.0-vs-vanilla-5.1 gap is intentional today, and there are transient windows during an in-flight DiffTrain import where the files legitimately disagree. Normalize the two version grammars (Buck 5.0.0._git_… / v2026.05.0 vs pip 5.1.0 / 2026.5.0) and encode the allowed internal-vs-OSS exception (with a documented reason and tracking task). Because arm/PACKAGE is visible in open source, its drift from the OSS pin is also the natural signal that a Meta engineer should start an import — wire that as a notification.
Steps
Done when
The three pins cannot silently diverge without a warning, and an intended divergence is documented rather than flagged as an error.
Notes
Many other internal consumers also pin Vela (see D109589808); converging all of them onto one shared pin is a separate migration, out of scope here.
Problem
The Vela version is declared in three places that can drift apart, and currently do:
fbcode/executorch/backends/arm/PACKAGE(internal override,5.0.0._git_0f8edf7),backends/arm/requirements-arm-ethos-u.txt(5.1.0), andoss/pyproject.toml. Nothing keeps them consistent, so a silent mismatch is a latent "works here, breaks there."What to do
Add a soft lint that checks the three pins against each other. It must be advisory, never blocking — the patched-5.0-vs-vanilla-5.1 gap is intentional today, and there are transient windows during an in-flight DiffTrain import where the files legitimately disagree. Normalize the two version grammars (Buck
5.0.0._git_…/v2026.05.0vs pip5.1.0/2026.5.0) and encode the allowed internal-vs-OSS exception (with a documented reason and tracking task). Becausearm/PACKAGEis visible in open source, its drift from the OSS pin is also the natural signal that a Meta engineer should start an import — wire that as a notification.Steps
arm/PACKAGEdiverges from the OSS pin.Done when
The three pins cannot silently diverge without a warning, and an intended divergence is documented rather than flagged as an error.
Notes
Many other internal consumers also pin Vela (see D109589808); converging all of them onto one shared pin is a separate migration, out of scope here.