From 11002010dc6e7bc47ce254f4b40bad75d3a34257 Mon Sep 17 00:00:00 2001 From: Tom Main Date: Tue, 28 Jul 2026 19:52:46 -0400 Subject: [PATCH 1/6] Prepare Cell Render v0.2.0 --- .github/workflows/ci.yml | 38 ++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 2 ++ VERSION_CHECKLIST.md | 24 ++++++++++++------------ build.zig.zon | 2 +- 4 files changed, 53 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..cb42cc8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,38 @@ +name: CI + +on: + pull_request: + push: + branches: [main] + +permissions: + contents: read + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + zig: + name: Zig 0.16 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + + - uses: mlugg/setup-zig@v2 + with: + version: 0.16.0 + + - name: Check formatting + run: zig fmt --check $(git ls-files '*.zig') + + - name: Run tests + run: zig build test --summary all + + - name: Build + run: zig build --summary all + + - name: Smoke test the CLI + run: | + zig build run -- --synthetic gradient --width 16 --height 4 --mode density --color none + zig build run -- --input testdata/diagonal.ppm --width 1 --height 1 --mode partition --partition quadrant --color none diff --git a/CHANGELOG.md b/CHANGELOG.md index 66648d1..816fc8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## v0.2.0 - 2026-07-28 + ### Library - Added a **Mermaid `mindmap`** frontend (`src/diagram/mermaid/mindmap.zig`): an diff --git a/VERSION_CHECKLIST.md b/VERSION_CHECKLIST.md index e30a3c8..f96173e 100644 --- a/VERSION_CHECKLIST.md +++ b/VERSION_CHECKLIST.md @@ -1,6 +1,6 @@ -# v0.1.0 Tag Checklist +# v0.2.0 Tag Checklist -Use this before cutting the first public tag. +Use this before cutting the v0.2.0 public tag. ## Required Checks @@ -15,18 +15,18 @@ zig build run -- --input testdata/diagonal.ppm --width 1 --height 1 --mode parti ## Release Notes -- Raw RGBA core API. -- Density, half-block, quadrant, and Braille output. -- Ordered dithering. -- Streaming ANSI writer. -- Synthetic CLI inputs. -- PPM/PAM fixture input outside core. -- Synthetic benchmark command. +- Semantic Mermaid rendering for flowcharts, sequences, state, class, ER, C4, + architecture, card, and mindmap diagrams. +- Shared `CellCanvas` terminal drawing substrate. +- Sextant and octant sub-cell image partitions. +- Floyd-Steinberg dithering and ANSI 16/256-color output. +- Real-font headless visual review with `glyphshot`. +- Automated quality corpus and visual-gallery tooling. ## Pre-Tag Review - Confirm `build.zig.zon` version. -- Confirm `CHANGELOG.md` has the intended v0.1.0 section. +- Confirm `CHANGELOG.md` has the intended v0.2.0 section. - Confirm no decoder is exported from `src/root.zig`. - Confirm benchmark numbers are refreshed or explicitly marked as historical. - Confirm GitHub remote is correct. @@ -34,7 +34,7 @@ zig build run -- --input testdata/diagonal.ppm --width 1 --height 1 --mode parti ## Tag Commands ```sh -git tag -a v0.1.0 -m "v0.1.0" +git tag -a v0.2.0 -m "v0.2.0" git push origin main -git push origin v0.1.0 +git push origin v0.2.0 ``` diff --git a/build.zig.zon b/build.zig.zon index 73153d3..0fbf7cf 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,6 +1,6 @@ .{ .name = .image_to_ascii, - .version = "0.1.0", + .version = "0.2.0", .fingerprint = 0x55f66561244cdf41, // Changing this has security and trust implications. .minimum_zig_version = "0.16.0", .dependencies = .{ From 663f59e1db277bda5beb131d83899215c26fb840 Mon Sep 17 00:00:00 2001 From: Tom Main Date: Tue, 28 Jul 2026 20:07:54 -0400 Subject: [PATCH 2/6] Serialize Zig tests on hosted runners --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb42cc8..18945d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,9 @@ jobs: run: zig fmt --check $(git ls-files '*.zig') - name: Run tests - run: zig build test --summary all + # Zig 0.16 can exhaust or crash the compiler when this test graph is + # compiled concurrently on the two-core hosted Linux runner. + run: zig build test -j1 --summary all - name: Build run: zig build --summary all From 453f82c54118709eb3421c3c117493c23daefed9 Mon Sep 17 00:00:00 2001 From: Tom Main Date: Tue, 28 Jul 2026 20:10:05 -0400 Subject: [PATCH 3/6] Run hosted tests in ReleaseSafe mode --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18945d9..2ce84d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,9 +27,9 @@ jobs: run: zig fmt --check $(git ls-files '*.zig') - name: Run tests - # Zig 0.16 can exhaust or crash the compiler when this test graph is - # compiled concurrently on the two-core hosted Linux runner. - run: zig build test -j1 --summary all + # Zig 0.16's x86_64 Linux Debug compiler crashes while compiling the + # CLI test root; ReleaseSafe preserves runtime checks and test coverage. + run: zig build test -Doptimize=ReleaseSafe -j1 --summary all - name: Build run: zig build --summary all From 98b633496a9c602e507b21a309394100587e14da Mon Sep 17 00:00:00 2001 From: Tom Main Date: Tue, 28 Jul 2026 20:13:11 -0400 Subject: [PATCH 4/6] Build release-safe binary in Linux CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ce84d8..838e6d5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: run: zig build test -Doptimize=ReleaseSafe -j1 --summary all - name: Build - run: zig build --summary all + run: zig build -Doptimize=ReleaseSafe --summary all - name: Smoke test the CLI run: | From fec99d2be8cb74781110c5f8d694514733a7bd56 Mon Sep 17 00:00:00 2001 From: Tom Main Date: Tue, 28 Jul 2026 20:14:46 -0400 Subject: [PATCH 5/6] Smoke-test release-safe CLI in Linux CI --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 838e6d5..0c53c33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,5 +36,5 @@ jobs: - name: Smoke test the CLI run: | - zig build run -- --synthetic gradient --width 16 --height 4 --mode density --color none - zig build run -- --input testdata/diagonal.ppm --width 1 --height 1 --mode partition --partition quadrant --color none + zig build run -Doptimize=ReleaseSafe -- --synthetic gradient --width 16 --height 4 --mode density --color none + zig build run -Doptimize=ReleaseSafe -- --input testdata/diagonal.ppm --width 1 --height 1 --mode partition --partition quadrant --color none From 856edbc4a1fea16dc48d45d050c289f84d46955b Mon Sep 17 00:00:00 2001 From: Tom Main Date: Tue, 28 Jul 2026 20:15:04 -0400 Subject: [PATCH 6/6] Smoke-test the built Cell Render artifact --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c53c33..5fe3721 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,5 +36,5 @@ jobs: - name: Smoke test the CLI run: | - zig build run -Doptimize=ReleaseSafe -- --synthetic gradient --width 16 --height 4 --mode density --color none - zig build run -Doptimize=ReleaseSafe -- --input testdata/diagonal.ppm --width 1 --height 1 --mode partition --partition quadrant --color none + ./zig-out/bin/cell-render --synthetic gradient --width 16 --height 4 --mode density --color none + ./zig-out/bin/cell-render --input testdata/diagonal.ppm --width 1 --height 1 --mode partition --partition quadrant --color none