Skip to content

esi pins fastly ^0.12, which blocks the fastly 0.13 upgrade #1122

Description

@aram356

The esi crate declares fastly = "^0.12". EdgeZero moves to fastly 0.13 (stackpop/edgezero#366), and both land in trusted-server-adapter-fastly, so the graph carries two incompatible copies of the same types:

fastly 0.13.1  <- edgezero-adapter-fastly
fastly 0.12.1  <- esi 0.7.2

crates/trusted-server-adapter-fastly/src/esi_assembly.rs passes fastly::http::Response and Request across that boundary, so it fails to compile:

error[E0308]: mismatched types
   --> crates/trusted-server-adapter-fastly/src/esi_assembly.rs:96:9
error[E0631]: type mismatch in closure arguments
   --> crates/trusted-server-adapter-fastly/src/esi_assembly.rs:124:65

ESI is unconditional in that adapter (not feature-gated), so it cannot be sidestepped.

The fix is one line, upstream

esi needs no source changes. Cloning fastly/esi at v0.7.2 and changing only the manifest range:

-fastly = "^0.12"
+fastly = "^0.13"

cargo check -p esi --target wasm32-wasip1 passes clean. With that patched in locally, the entire trusted-server workspace compiles, including the Fastly adapter.

Status upstream

  • fastly/esi main still reads fastly = "^0.12".
  • Published esi 0.7.2 declares ^0.12 (confirmed via the crates.io dependency API).
  • No open PR addresses it. fastly/esi#60 is the v0.7.1 to v0.7.2 release bump and touches only the workspace version and lockfile.

Options

  1. Open a one-line PR against fastly/esi and wait for a release.
  2. Carry the fix on the existing stackpop/esi fork and reference it from [patch.crates-io] until upstream releases. Note the fork's main is behind upstream (missing v0.7.1 and v0.7.2), so it should branch from upstream v0.7.2.

Surfaced by #1124 / PR #1123, which now carries a temporary [patch.crates-io] pointing at the fork branch. This issue stays open until the range bump is released upstream and that patch can be dropped.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions