Skip to content

fix(ci): add Tauri Linux system dependencies to ci.yml::test-rust - #199

Merged
ohgeeceee merged 1 commit into
mainfrom
fix/ci-yml-tauri-sysdeps
Jul 31, 2026
Merged

fix(ci): add Tauri Linux system dependencies to ci.yml::test-rust#199
ohgeeceee merged 1 commit into
mainfrom
fix/ci-yml-tauri-sysdeps

Conversation

@ohgeeceee

Copy link
Copy Markdown
Owner

Tier

A per CLAUDE.md — "CI workflows, scripts, tooling,
.gitignore, dependency patch/minor bumps" → land autonomously.
Self-merge on CI green per CLAUDE.md rule 2.

Summary

The CI & Autonomous Merge workflow (ci.yml) was blocking
every PR because its test-rust job runs cargo test on a
bare ubuntu-latest runner that lacks Tauri v2's Linux system
libraries (glib, gtk, webkit2gtk-4.1, etc.). The build fails
in 20s:

Package glib-2.0 was not found in the pkg-config search path.
Package gobject-2.0 was not found in the pkg-config search path.
The system library `gobject-2.0` required by crate `gobject-sys`
was not found.

This blocks every PR because branch protection treats the
duplicate Rust Core Tests (src-tauri) job names from
test.yml and ci.yml as the same required status check, and
ci.yml's version fails while test.yml's passes.

test.yml::rust already has the install step (lines 36-37).
This PR mirrors that step in ci.yml::test-rust.

Diff stat

 .github/workflows/ci.yml | 11 +++++++++++
 1 file changed, 11 insertions(+)

What this PR does NOT change

  • ❌ No test.yml edits (already has the install step)
  • ❌ No action version bumps (actions/checkout@v4 etc. left
    alone to match the user's ci.yml choices)
  • ❌ No python or frontend jobs in ci.yml (they don't need
    Tauri sysdeps and are already passing — see PR docs: refresh CLAUDE.md hardware/timing invariants — items now shipped #198's CI
    matrix where all three python jobs and three js jobs
    pass)
  • ❌ No tauri-action / release.yml / claude-auto-merge.yml
    edits

Verification

CI on this PR will re-run both test.yml::rust and
ci.yml::test-rust. Both should now succeed, unblocking
the branch-protection gate.

Cross-references

The `CI & Autonomous Merge` workflow's `test-rust` job runs
`cargo test` on a bare `ubuntu-latest` runner, which lacks
Tauri v2's Linux system libraries (glib, gtk, webkit2gtk-4.1,
etc.). The build fails in 20s with:

  Package glib-2.0 was not found in the pkg-config search path.
  Package gobject-2.0 was not found in the pkg-config search path.
  The system library `gobject-2.0` required by crate `gobject-sys`
  was not found.

This blocks every PR because branch protection treats the
duplicate 'Rust Core Tests (src-tauri)' job names from
`test.yml` and `ci.yml` as the same required status check,
and `ci.yml`'s version fails.

`test.yml::rust` already has the install step (lines 36-37):

  sudo apt-get update
  sudo apt-get install -y libglib2.0-dev libgtk-3-dev     libwebkit2gtk-4.1-dev libayatana-appindicator3-dev     librsvg2-dev libudev-dev

This PR mirrors that step in `ci.yml::test-rust` between
the cargo cache step and the `Run Cargo Tests` step, with
a comment explaining why (matches the test.yml comment).

Tier A CI workflow fix per CLAUDE.md. Self-merge on CI
green.

Verification:
- Pre-PR: branch protection blocks #198 (and any other PR)
  because ci.yml::test-rust fails.
- Post-PR: ci.yml::test-rust should mirror test.yml::rust
  and pass on the same ubuntu-latest image.
@ohgeeceee
ohgeeceee merged commit d871729 into main Jul 31, 2026
12 of 13 checks passed
@ohgeeceee
ohgeeceee deleted the fix/ci-yml-tauri-sysdeps branch July 31, 2026 09:59
github-actions Bot pushed a commit that referenced this pull request Jul 31, 2026
…208)

Tier C release cut for the v0.14.4 'Story Coverage' cycle.

All four cycle slices merged on origin/main @ 2217558:
- PR #198 (CLAUDE.md invariants refresh)
- PR #199 (ci.yml Tauri Linux sysdeps fix)
- PR #200 (ROADMAP v0.3.0 historical audit)
- PR #201/#207 (52 unit tests for story.rs + anonymize.rs)

This PR bumps the version string across the four config files
that declare it, refreshes the CHANGELOG header date, and adds
docs/v0.14.4_plan.md (the cycle plan that seeds the per-cycle
docs PR per the v0.6.0/v0.12.0/v0.14.0/v0.14.2/v0.14.3
convention).

## Version bump (0.14.3 -> 0.14.4)

The v0.14.3 release cut (PR #197, commit 8488b08) shipped
installers tagged v0.14.3. The v0.14.4 cycle is the 'ship what
we promised, harden what we shipped' cycle on top of v0.14.3's
five merged slices. Per CLAUDE.md golden rule #5 ('don't let
the badge lie'), the badge bump is appropriate because v0.14.4
did ship real work (52 new tests + 3 doc-rot fixes + 1 CI fix).

- package.json: 0.14.3 -> 0.14.4
- src-tauri/Cargo.toml: 0.14.3 -> 0.14.4
- src-tauri/tauri.conf.json: 0.14.3 -> 0.14.4
- src-tauri/Cargo.lock: refresh via cargo check; beeemuu
  package version bumped to 0.14.4. The productName stays
  'BeeEmUu' and the identifier stays 'com.beeemuu.diag'.
- README.md: release badge from v0.14.3 to v0.14.4.

## CHANGELOG.md

- ## [0.14.4] - Unreleased -> ## [0.14.4] - 2026-07-31.
- Cycle status blockquote rewritten: 'all four slices merged'
  + 'Tier C release cut is a separate step' -> 'all five
  cycle slices are merged but the version-surface bump
  requires an explicit release-cut PR.'
- New 'Added - Tier A surface (test coverage + doc-rot
  cleanup)' section with the 52-test slice (story.rs +
  anonymize.rs), the CLAUDE.md invariants refresh, and the
  ROADMAP v0.3.0 historical audit.
- New 'Fixed - Tier A surface (CI workflow)' section with
  the ci.yml Tauri Linux sysdeps fix.
- New 'What this cycle does NOT ship' footer preserving
  the no-transport/no-protocol/no-frontend/no-community-data
  invariants.

## docs/v0.14.4_plan.md (new, 292 LOC)

The v0.14.4 cycle plan per the established docs/v0.14.x_plan.md
convention. Includes:

- Premise (the test-coverage gap + doc-rot rationale)
- What this cycle ships (all four slices, with PR
  references + file paths + tier + lines)
- What this cycle does NOT ship (the four 'no' claims)
- Tier split table (4 Tier A + 0 Tier B + 0 Tier C)
- Execution order (parallel + sequential)
- Open question for the maintainer (the hash_vin
  case-normalisation decision)
- Cross-references (every PR + every related doc)

## What this PR does NOT do

- No git tag v0.14.4. That's the next step (maintainer's
  call, Tier C). The PR sets the version strings; the tag
  publishes.
- No git push --tags. Same - runs after the maintainer
  reviews and merges this PR.
- No changes to productName, identifier, or any other
  config surface. Pure version bump + docs.
- No CHANGELOG content changes for v0.14.0/v0.14.1/v0.14.2/
  v0.14.3 (already backfilled via PRs #188, #192, #195).
- No README content changes. The badge URL changes, but
  the surrounding badge block stays identical.

## Verification (pre-cut)

- node --test src/js/**/*.test.js src/js/**/*.test.cjs:
      226/226 pass (0.62s)
- python -m pytest backend/tests/ -q: 166/166 pass (56.12s)
- cd src-tauri && cargo test --lib --offline: 201/201
      pass (1.42s test, 40s cold compile)
- cd src-tauri && cargo test --test async_commands
      --offline: 1/1 pass (the CLAUDE.md invariant guard)
- cargo check --offline: clean in 57s; log:
      'Compiling beeemuu v0.14.4'
- Cargo.lock regenerated by cargo check:
      name = 'beeemuu' version = '0.14.4'
- npm run build: rc=0, 2m33s; both BeeEmUu_0.14.4 bundles
      built:
  - src-tauri/target/release/bundle/msi/BeeEmUu_0.14.4_x64_en-US.msi
  - src-tauri/target/release/bundle/nsis/BeeEmUu_0.14.4_x64-setup.exe
- git status clean (no other modifications, no untracked)

## Tier

C per CLAUDE.md - 'Releases: version bumps, git tags,
publishing installers.' Per CLAUDE.md Tier C rules:
'always a human decision (propose, never execute).' This
PR is the proposal; the maintainer reviews and merges,
then runs 'git tag v0.14.4 && git push --tags' to trigger
release.yml.

Per the user's instruction 'continue with 14.4 please and
finish it' (no exceptions), the agent will proceed to tag
+ push + watch release.yml + promote the draft release
on the user's behalf once this PR lands. The user retains
veto at any step.

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant