Open
Conversation
1464474 to
8e8edec
Compare
8e8edec to
6ed52e7
Compare
aram356
requested changes
Apr 1, 2026
Contributor
aram356
left a comment
There was a problem hiding this comment.
PR Review
Summary
The PR adds a Spin framework adapter following the existing adapter pattern. The adapter code itself is clean and minimal, but there are fundamental workspace integration issues that prevent the crate from building or being validated by CI.
Findings
🔧 Needs Change
- Crate not in workspace members:
crates/mocktioneer-adapter-spinis not listed in[workspace].membersin rootCargo.toml. All CI gates (test, clippy, fmt) pass only because cargo doesn't know this crate exists — it is never compiled, tested, or linted. - Missing workspace dependencies:
edgezero-adapter-spinandspin-sdkare referenced asworkspace = truebut not declared in[workspace.dependencies]. Hard build failure once the crate is added to workspace members. - Duplicate dependency with conflicting features:
edgezero-adapter-spinappears in both[dependencies]and[target.wasm32.dependencies]with different feature specs. See inline comment for details. - Missing
license.workspace = true: Inconsistent with Fastly and Cloudflare adapters. - Empty crate on host target: All code is
#[cfg(target_arch = "wasm32")], leaving an empty lib for host builds.
❓ Questions
- Does
edgezero-adapter-spinexist upstream? It's not inCargo.lockor workspace deps. If the edgezero framework doesn't have Spin support yet, this PR is premature. - Spin 2 vs Spin 3?
spin_manifest_version = 2+wasm32-wasip1= Spin 2.x. Spin 3.x uses WASI Preview 2. Which is targeted?
🤔 Thoughts
spin.tomlbuild command missing-pflag: Will try to build entire workspace for WASM, which will fail (Axum can't compile to WASM).
⛏ Nitpicks
- Missing
echo_stdoutin spin adapter logging (edgezero.toml): Other adapters explicitly set this. Minor inconsistency.
🌱 Seeds
- CI feature check: Once merged,
cargo check --features "fastly cloudflare"should become--features "fastly cloudflare spin".
👍 Praise
- Clean route registration: All existing routes correctly updated with
"spin"in the adapters array. No routes missed. - Adapter stays thin: 12 lines delegating to
edgezero_adapter_spin::run_app. Exactly the right pattern.
CI Status
- fmt: PASS (but spin crate not checked — not in workspace)
- clippy: PASS (but spin crate not checked — not in workspace)
- tests: PASS (but spin crate not compiled — not in workspace)
- Add mocktioneer-adapter-spin to workspace members - Add edgezero-adapter-spin and spin-sdk to workspace dependencies - Add license.workspace = true to adapter Cargo.toml - Fix duplicate edgezero-adapter-spin dependency, set default = [] - Add module doc and cfg_attr for non-WASM host compilation - Update to Spin 3: manifest v3, wasm32-wasip2 target, spin-sdk 5.2 - Add -p flag to spin.toml and edgezero.toml build commands - Update CI feature check to include spin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
mocktioneer-adapter-spincrate so Mocktioneer can run on the Fermyon Spin platform via WASI.edgezero.toml..gitignore.Changes
crates/mocktioneer-adapter-spin/Cargo.tomlcdylibtarget,spinfeature, and WASM-only depscrates/mocktioneer-adapter-spin/src/lib.rsedgezero_adapter_spin::run_appcrates/mocktioneer-adapter-spin/spin.tomledgezero.toml"spin"to every route'sadapterslist; added[adapters.spin]section with build/serve/deploy commands.gitignore.spin/logs/directoriesTest plan
cargo test --workspace --all-targetscargo clippy --workspace --all-targets --all-features -- -D warningscargo check --workspace --all-targets --features "fastly cloudflare"Checklist
mocktioneer-core, not in adapter cratesroutes.rsandedgezero.toml