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 2af9953..855612f 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-night-mode`, `wasm-lang-labels` and `wasm-updates-footer` + 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-extension-api` 0.3.0. +- The JSON protocol remains version 1 and the WIT remains + `xfetch:runtime@0.1.0`. +- Extension 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 f048b84..8be529d 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-extension-api" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0d4e7f50b3cc65e4ad5a6556354975e24429c430a8df06ff665709ed383cab" +checksum = "756a1b3e0f36eb3b2c549253a8a5298480a1da02e61a8433e4cbafa9913dca2f" dependencies = [ "serde", "serde_json", + "xfetch-api-common", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 46a34ed..969a722 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,5 @@ members = [ resolver = "2" [workspace.dependencies] -xfetch-extension-api = { version = "0.2.0", package = "xfetch-extension-api" } +xfetch-extension-api = { version = "0.3.0", package = "xfetch-extension-api" } diff --git a/docs/compatibility.md b/docs/compatibility.md index 4b5f36c..45d347d 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -1,5 +1,15 @@ # Platform Compatibility +
+ The extensions in this repository target
+ xfetch-extension-api 0.3.0. The JSON protocol remains
+ 1 and the WIT package remains
+ xfetch:runtime@0.1.0. Extensions built against the previous
+ 0.2.0 SDK remain runtime-compatible.
+
Platform support per extension. ✓ = works, ✗ =
not supported.