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
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Changelog

## 2026-11-06 — Banner width fix

- `banner` 0.2.1: centre the proverb against the visible logo width using
Unicode terminal width instead of counting ANSI escape bytes. Coloured logos
no longer widen the logo block or push the box layout to the right.

## 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 the wasm guests with their native toolchains: Rust
(`wasm-crypto`), componentize-py (`wasm-ip-geo`), Go (`wasm-pacman`) and
clang/wasm-ld (`wasm-proc`), including runtime checks against xfetch 1.0.3.

## 2026-11-06 — SDK 0.3.0 migration

- Updated the workspace to `xfetch-plugin-api` 0.3.0 and
`xfetch-guest-api` 0.3.0.
- The JSON protocol remains version 1 and the WIT remains
`xfetch:runtime@0.1.0`.
- Plugin 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
50 changes: 43 additions & 7 deletions Cargo.lock

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

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ members = [
resolver = "2"

[workspace.dependencies]
xfetch-plugin-api = { version = "0.2.0", package = "xfetch-plugin-api" }
xfetch-guest-api = { version = "0.2.0", package = "xfetch-guest-api" }
xfetch-plugin-api = { version = "0.3.0", package = "xfetch-plugin-api" }
xfetch-guest-api = { version = "0.3.0", package = "xfetch-guest-api" }
10 changes: 10 additions & 0 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Platform Compatibility

<h2>SDK compatibility</h2>

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

<p>
Platform support per plugin. <code>✓</code> = works, <code>~</code> =
works with caveats (see notes), <code>✗</code> = not supported (the plugin
Expand Down
2 changes: 1 addition & 1 deletion index.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
{
"name": "banner",
"description": "Xfetch logo-animation plugin that prints a Chinese/Japanese proverb banner under (or above) the logo",
"version": "0.2.0",
"version": "0.2.1",
"kind": "logo_animation",
"runtime": "native",
"path": "plugins/banner",
Expand Down
3 changes: 2 additions & 1 deletion plugins/banner/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
[package]
name = "xfetch-plugin-banner"
version = "0.2.0"
version = "0.2.1"
edition = "2024"
license = "MIT"
description = "Xfetch logo-animation plugin that prints a Chinese/Japanese proverb banner under (or above) the logo"

[dependencies]
console = "0.16.6"
xfetch-plugin-api = { workspace = true }
6 changes: 4 additions & 2 deletions plugins/banner/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,10 @@ without modifying the logo file.
Set `frames_path` to a text file to use its first `===`-separated frame as the
banner text instead of the built-in list.

The banner is centred to the logo width, counting CJK characters as two
columns. Requires a terminal with a CJK font (see the repo notes) and a TTY.
The banner is centred to the logo width, counting terminal display width so
ANSI colour codes are ignored. Longer banners wrap to the logo width instead
of widening the logo block, which keeps box layouts aligned. Requires a
terminal with a CJK font (see the repo notes) and a TTY.

## Proverb list

Expand Down
Loading
Loading