fix(ci): bump Flatpak Rust toolchain to 1.85 and stamp build version #294

Merged
james merged 1 commit from 293-flatpak-rust-toolchain into main 2026-06-26 22:24:39 +00:00
Owner

The Flatpak release job has failed on every tag (confirmed on run 737 / v0.0.1-rc.16).

Failing step + root cause

cargo build --release --locked (in apps/client/src-tauri), exit 101 — before flatpak-builder runs:

error: failed to parse manifest at `.../time-core-0.1.9/Cargo.toml`
Caused by:
  feature `edition2024` is required
  ... not stabilized in this version of Cargo (1.83.0 ...)

A transitive dep (time-core 0.1.9) declares edition = "2024"; that feature only stabilised in Cargo 1.85.0. The workflow pinned RUST_TOOLCHAIN: 1.83.0, so cargo couldn't parse the manifest, and --locked forbids resolving an older time-core.

Fix

  • Bump RUST_TOOLCHAIN1.85.0 and document why the effective floor is now 1.85 (not the rust-version = "1.77" in Cargo.toml).
  • Bundled version-stamping (the Flatpak path still shipped 0.0.0, unlike #290/#292): a new "Stamp build version" step writes the tag version into apps/client/app.json expo.version (web bundle / settings footer) and apps/client/src-tauri/tauri.conf.json version (Tauri shell) before the builds. Cargo.toml is intentionally not stamped so Cargo.lock stays clean under --locked.

Verification

  • actionlint .forgejo/workflows/release-flatpak.yml — clean
  • jq stamp dry-run on both files with 0.0.1-rc.16 → correct values
  • The 1.85 bump directly addresses the verbatim edition2024 parse error from run 737.

Note: this fix clears the cargo build; if a later step (flatpak-builder / appstream-compose) has its own latent issue, that'll surface on the next tagged run — but it was never reached before.

Closes #293

🤖 Generated with Claude Code

The Flatpak release job has failed on every tag (confirmed on run 737 / `v0.0.1-rc.16`). ## Failing step + root cause `cargo build --release --locked` (in `apps/client/src-tauri`), exit 101 — before `flatpak-builder` runs: ``` error: failed to parse manifest at `.../time-core-0.1.9/Cargo.toml` Caused by: feature `edition2024` is required ... not stabilized in this version of Cargo (1.83.0 ...) ``` A transitive dep (`time-core 0.1.9`) declares `edition = "2024"`; that feature only stabilised in **Cargo 1.85.0**. The workflow pinned `RUST_TOOLCHAIN: 1.83.0`, so cargo couldn't parse the manifest, and `--locked` forbids resolving an older `time-core`. ## Fix - Bump `RUST_TOOLCHAIN` → `1.85.0` and document why the effective floor is now 1.85 (not the `rust-version = "1.77"` in `Cargo.toml`). - **Bundled version-stamping** (the Flatpak path still shipped `0.0.0`, unlike #290/#292): a new "Stamp build version" step writes the tag version into `apps/client/app.json` `expo.version` (web bundle / settings footer) and `apps/client/src-tauri/tauri.conf.json` `version` (Tauri shell) before the builds. `Cargo.toml` is intentionally **not** stamped so `Cargo.lock` stays clean under `--locked`. ## Verification - `actionlint .forgejo/workflows/release-flatpak.yml` — clean - `jq` stamp dry-run on both files with `0.0.1-rc.16` → correct values - The 1.85 bump directly addresses the verbatim `edition2024` parse error from run 737. Note: this fix clears the cargo build; if a later step (flatpak-builder / appstream-compose) has its own latent issue, that'll surface on the next tagged run — but it was never reached before. Closes #293 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(ci): bump Flatpak Rust toolchain to 1.85 and stamp build version
Some checks failed
Commits / Conventional Commits (pull_request) Successful in 9s
PR / OSV-Scanner (pull_request) Successful in 1m24s
PR / pnpm audit (pull_request) Successful in 1m47s
PR / OpenAPI (pull_request) Successful in 1m56s
PR / Static analysis (pull_request) Successful in 1m56s
PR / Lint (pull_request) Successful in 2m10s
PR / Typecheck (pull_request) Successful in 2m19s
PR / Trivy (image) (pull_request) Successful in 47s
PR / Package age policy (soft) (pull_request) Successful in 25s
Secrets / gitleaks (pull_request) Successful in 26s
PR / Build (pull_request) Successful in 2m57s
PR / Client (web export smoke) (pull_request) Successful in 3m4s
PR / Test (sqlite) (pull_request) Successful in 3m15s
PR / Test (postgres) (pull_request) Failing after 3m35s
PR / Coverage (soft) (pull_request) Successful in 2m46s
9eeacabef0
The Flatpak release job failed on every tag at `cargo build --locked`:
a transitive dep (time-core 0.1.9) declares `edition = "2024"`, which
Cargo 1.83.0 can't parse (`feature edition2024 is required`; stabilised
in 1.85). Bump RUST_TOOLCHAIN to 1.85.0.

Also stamp the tag version into app.json (expo.version → web bundle /
settings footer) and src-tauri/tauri.conf.json (shell version) before
the build, so the Flatpak reports the real release instead of 0.0.0 —
matching release.yml / release-android.yml. Cargo.toml is left unstamped
so Cargo.lock stays clean under --locked.

Closes #293

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
james merged commit 9b482d4886 into main 2026-06-26 22:24:39 +00:00
james deleted branch 293-flatpak-rust-toolchain 2026-06-26 22:24:39 +00:00

📊 Test coverage

Patch coverage: no testable lines changed.

Overall (app/, lib/, db/, excluding UI per ADR-0019):

Metric Value Soft target
Lines 81.6% ≥ 50%
Branches 72.8% ⚠️ ≥ 75%
Functions 91.1% informational

Soft thresholds per ADR-0019. Coverage is informational and does not block merge.

<!-- coverage-comment --> ## 📊 Test coverage **Patch coverage:** no testable lines changed. **Overall** (`app/`, `lib/`, `db/`, excluding UI per ADR-0019): | Metric | Value | Soft target | |---|---|---| | Lines | 81.6% ✅ | ≥ 50% | | Branches | 72.8% ⚠️ | ≥ 75% | | Functions | 91.1% | informational | Soft thresholds per [ADR-0019](docs/adr/0019-coverage-soft-targets.md). Coverage is informational and does not block merge.
Sign in to join this conversation.
No description provided.