Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -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
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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).
Expand Down
15 changes: 13 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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" }

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ effects/
<div align="left">
<ul>
<li><a href="https://github.com/xfetch-cli/xfetch/blob/main/docs/EFFECTS.md">Effects (xfetch docs)</a></li>
<li><a href="https://github.com/xfetch-cli/effects/blob/main/docs/compatibility.md">Platform Compatibility</a></li>
<li><a href="https://github.com/xfetch-cli/api/blob/main/docs/effect-sdk.md">Effect SDK</a></li>
<li><a href="https://github.com/xfetch-cli/api/blob/main/docs/protocol.md">Protocol Reference</a></li>
<li><a href="https://github.com/xfetch-cli/api/blob/main/docs/examples.md">Examples</a></li>
Expand Down
56 changes: 56 additions & 0 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Platform Compatibility

<h2>SDK compatibility</h2>

<p>
The effects in this repository target <code>xfetch-effect-api 0.3.0</code>.
The JSON protocol remains <code>1</code> and the WIT package remains
<code>xfetch:runtime@0.1.0</code>. Effects built against the previous
<code>0.2.0</code> SDK remain runtime-compatible.
</p>

<p>
Platform support per effect. <code>✓</code> = works, <code>✗</code> =
not supported.
</p>

<table>
<thead>
<tr>
<th>Effect</th>
<th>Linux</th>
<th>macOS</th>
<th>Windows</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>decrypt</code></td>
<td>✓</td><td>✓</td><td>✓</td>
<td>Pure computation over the rendered lines; no OS dependencies.</td>
</tr>
<tr>
<td><code>glitch</code></td>
<td>✓</td><td>✓</td><td>✓</td>
<td>Pure computation over the rendered lines; no OS dependencies.</td>
</tr>
<tr>
<td><code>wasm-matrix</code></td>
<td>✓</td><td>✓</td><td>✓</td>
<td>WebAssembly core module; requires a wasm-enabled xfetch build.</td>
</tr>
<tr>
<td><code>wasm-python-pulse</code></td>
<td>✓</td><td>✓</td><td>✓</td>
<td>WebAssembly component (componentize-py); requires a wasm-enabled xfetch build.</td>
</tr>
</tbody>
</table>

<h2>Legend</h2>

<ul>
<li><code>✓</code> — works on the platform.</li>
<li><code>✗</code> — not supported; the effect is skipped and xfetch renders normally.</li>
</ul>
Loading