Skip to content

Drivers follow the Core release: remaining steps #1423

Description

@frahlg

Owner decision, 2026-09-25, after the Easee night (#1417): drivers reach users with the Core release. One version, and ftw update / ftw rollback cover the drivers. A driver fix is a pin bump in drivers/BUNDLED_SOURCE.json, shipped in the next beta. The signed channel serves installs that cannot take a new Core (1.x–3.x) and expert overrides. An override ends when a release catches up.

Why: on the home box a managed easee_cloud 1.3.2 kept running over the bundled 1.3.3 in v0.136.4-beta.1. Precedence goes by file existence, not by version, and nothing told the owner. drivers-stable (f18ceef, 2026-09-08) is older than the bundled pin (489c937).

Done in #1422:

  • a managed install retires at the first start of a new release when that release's bundled copy is at least as new;
  • ftw status lists driver versions and overrides;
  • the docs describe the model.

Remaining

  1. drivers-stable follows stable Core. Promotion is a manual dispatch today. It covers the whole catalog, needs drivers-beta to name the exact commit, and has no cadence. Proposed: when native-release.yml publishes vX stable, promote drivers-stable to the commit in that release's BUNDLED_SOURCE.json. That needs a device-drivers workflow change, because the pinned commit is usually not the current beta head.
  2. Pin bumps as PRs. bundled-driver-pin.yml only opens an issue when the pin falls behind. Let it open a PR that moves the pin, runs scripts/sync-bundled-drivers.sh and adds a changeset.
  3. Native UI. Remove the driver update, install and version controls from Settings → Devices on native installs. The API stays for experts and agents.
  4. Bugs found on the way:
    • web/update-badge.js computes beta_available with !==, so it offers an older beta as an update.
    • ChannelCatalog and InstallChannel ignore device_repository.enabled: false, and every open tab fetches the beta manifest every 3 h.
    • A managed public artifact that is missing from the signed manifest's drivers and history fails to start (driverrepo/sourceful.go). The channel history must never drop a version that is installed somewhere.
    • use_bundled returns "no bundled file declares driver easee_cloud" on the home box. The bundled source declares id = "easee-cloud", and about 25 bundled drivers spell their id differently from the channel.
    • The note in BUNDLED_SOURCE.json says channel artifacts are write-inert; drivers marked control: true keep their control path.
  5. Version and id lineage (device-drivers). Five bundled drivers carry a DRIVER.version different from their channel version, for example sdm630 at 1.1.1 against 2.0.1. The split is deliberate (tools/ftw_repository.py, "two lineages"). Now that drivers follow the release, decide whether the channel should take its version and id from the source. Until then a managed install of those five is never retired, which is the safe direction.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions