Skip to content

wranglerVersion is pinned to 3 in three release workflows with no owner but a code comment #331

Description

@FrameAutomata

Follow-up to #329, which pins wranglerVersion: "3" at all three Cloudflare deploy sites.

Why the pin exists

cloudflare/wrangler-action@v4 changed its default Wrangler CLI from 3 to 4. Neither website/package.json nor docs/package.json depends on wrangler (verified: zero hits in either package-lock.json), so the action's default is literally what deploys tracewayapp.com, the docs, and the chart index.

#329's purpose was moving off the Node 20 action runtime. Taking v4 unpinned would have carried a CLI major bump into that, on a production deploy path no PR label can exercise — so the pin holds the CLI where it is and the runtime moves alone. That was the right call for that PR and is the wrong thing to leave forever.

The problem with leaving it

The pin's exit condition is prose in three code comments. Wrangler 3 is already superseded, and unowned version state in this repo is exactly what #326 was about — it drifts until it becomes an annotation.

What "done" looks like

Not simply deleting the pin. The deeper fix for two of the three sites is making wrangler a devDependency of website/ and docs/: both workflows already run npm ci in the right working-directory and pass workingDirectory: to the action, and the action prefers a pre-installed wrangler when given no version input — so the deployed CLI becomes lockfile-pinned and Dependabot-trackable (see #330) instead of resolved at deploy time.

That covers 2 of 3. release-helm.yml:87 invokes the action with no workingDirectory and has no npm project anywhere near it (helm/ holds only the chart), running pages deploy deploy --project-name traceway-charts. Inventing a package.json purely to host one dependency would be worse than the pin; that site should keep an explicit wranglerVersion.

Validation

Wrangler 4's breaking changes need checking against website/wrangler.toml (a Worker with main, [assets], and [observability.traces]) and docs/wrangler.toml (assets-only). All three workflows are release-triggered, so this needs a workflow_dispatch dry run — release-helm.yml first, since it publishes only a chart index.

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