diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..ccb6478 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,52 @@ +name: Tests + +on: + pull_request: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: tests-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: cargo test + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Install stable Rust toolchain + uses: dtolnay/rust-toolchain@18f0487477426dce244608110aa2660c2893deb7 # stable + with: + components: rustfmt, clippy + + - name: Check formatting + run: cargo fmt --all --check + + - name: Run clippy + run: cargo clippy --locked --all-targets -- -D warnings + + - name: Run workspace tests + run: cargo test --workspace --locked --no-fail-fast + + catalog: + name: catalog metadata + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Validate catalog + run: python3 scripts/generate_catalog.py --check diff --git a/CHANGELOG.md b/CHANGELOG.md index 1996d09..37e00b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 2026-11-06 — CI and wasm validation + +- Added a `Tests` workflow: fmt, clippy, workspace tests and catalog + verification on pull requests and on main after merge. It does not build or + publish release artifacts. +- Validated `wasm-matrix` and `wasm-python-pulse` with their native wasm + toolchains and runtime checks against xfetch 1.0.3. + +## 2026-11-06 — SDK 0.3.0 migration + +- Updated the workspace to `xfetch-effect-api` 0.3.0. +- The JSON protocol remains version 1 and the WIT remains + `xfetch:runtime@0.1.0`. +- Effect code, manifests and catalog versions are unchanged; this is a + dependency alignment with the core 0.3.0 SDK. + ## 2026-11-03 — v1.0.2 Release train v1.0.2 (catalog schema 1, catalog_version 1.0.2). diff --git a/Cargo.lock b/Cargo.lock index c2dcfd1..9134001 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,14 +92,25 @@ version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" +[[package]] +name = "xfetch-api-common" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7a35b6c4f442aea26e73bb821978a637bd31261d80d4e97c11185876dd684c" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "xfetch-effect-api" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69820c4df7636fc23ab84a3b6cb7d3c9b58b523fbc10e0e0d733c8bc5facd009" +checksum = "0bf8aacbdb2bfeef6a3139f24528786826a0db89a3d5ba2cde47948fa9093534" dependencies = [ "serde", "serde_json", + "xfetch-api-common", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 904d0cd..5469ba9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,6 @@ members = [ resolver = "2" [workspace.dependencies] -xfetch-effect-api = { version = "0.2.0", package = "xfetch-effect-api" } +xfetch-effect-api = { version = "0.3.0", package = "xfetch-effect-api" } xfetch-effects-lib = { version = "0.2.0", path = "effects/effects-lib", package = "xfetch-effects-lib" } diff --git a/README.md b/README.md index 603b8f2..9f76b8e 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,7 @@ effects/
+ The effects in this repository target xfetch-effect-api 0.3.0.
+ The JSON protocol remains 1 and the WIT package remains
+ xfetch:runtime@0.1.0. Effects built against the previous
+ 0.2.0 SDK remain runtime-compatible.
+
+ Platform support per effect. ✓ = works, ✗ =
+ not supported.
+
| Effect | +Linux | +macOS | +Windows | +Notes | +
|---|---|---|---|---|
decrypt |
+ ✓ | ✓ | ✓ | +Pure computation over the rendered lines; no OS dependencies. | +
glitch |
+ ✓ | ✓ | ✓ | +Pure computation over the rendered lines; no OS dependencies. | +
wasm-matrix |
+ ✓ | ✓ | ✓ | +WebAssembly core module; requires a wasm-enabled xfetch build. | +
wasm-python-pulse |
+ ✓ | ✓ | ✓ | +WebAssembly component (componentize-py); requires a wasm-enabled xfetch build. | +
✓ — works on the platform.✗ — not supported; the effect is skipped and xfetch renders normally.