Skip to content

ci: run on the oldest supported Rust, in COSMIC's fonts - #1

Merged
lkbddh merged 2 commits into
mainfrom
ci/toolchain
Oct 4, 2026
Merged

lkbddh merged 2 commits into
mainfrom
ci/toolchain

Conversation

@lkbddh

@lkbddh lkbddh commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

What was wrong

The first ci run on main failed before it checked anything: cargo-fmt was not installed for the toolchain the job uses. The job sets RUSTUP_TOOLCHAIN=1.93, so that rust-toolchain.toml's stable does not apply, but dtolnay/rust-toolchain@1.93 installed 1.93.1 with rustfmt and clippy. Rustup then installed a bare 1.93 for the job, without those components.

With that fixed, one layout test still failed on CI alone. The runner has neither of COSMIC's interface fonts, Open Sans and Noto Sans Mono, and its fallback font wraps "Use Signpost" in the smallest settings window.

What this does

Each job installs 1.93 itself with rustup toolchain install. The installed toolchain is then the one RUSTUP_TOOLCHAIN names, and stays so when 1.93 gets another patch release: validate gets rustfmt and clippy, and the release workflow's deb job gets the minimal profile it needs to build.

The runner installs fonts-open-sans and fonts-noto-mono, so the layout tests measure text in the fonts libcosmic uses by default and COSMIC ships. The layout code and the test's assertions are unchanged.

Verification

Lane Command Result
ci, main before validate on e175fb2 failed: cargo-fmt not installed for 1.93
ci, this PR validate on 66792a6 toolchain installed; 685 passed, 1 failed: no_text_is_cut_off_in_the_smallest_window_or_the_opening_one ("Use Signpost" wrapped)
ci, this PR validate on 24a8c99 passed: rustc 1.93.1, 686 passed, staged install and .deb checks OK
release, this PR deb and flatpak jobs on 24a8c99 passed; publish skipped, as it runs on tags only
local RUSTUP_TOOLCHAIN=1.93 just validate on the same tree 686 passed, staged install OK

Reproduce

  1. On a machine with Open Sans and Noto Sans Mono installed, run RUSTUP_TOOLCHAIN=1.93 just validate
  2. In the validate job log, rustup toolchain install reports 1.93-x86_64-unknown-linux-gnu installed, the toolchain RUSTUP_TOOLCHAIN names

Check by hand
CI and packaging only: Signpost itself does not change.

Deploy and rollback

Merging changes .github/workflows/ci.yml and the release workflow's deb job, and nothing in the app or in stored data. The release workflow's first real use is the v0.1.0 tag. A revert is clean and brings back the failing validate.

Customer-facing: no

lkbddh added 2 commits October 3, 2026 23:01
The jobs name their toolchain 1.93, which overrides rust-toolchain.toml, but the action installed 1.93.1 with
rustfmt and clippy. Rustup then fetched a bare 1.93 for the jobs, so `cargo fmt` was missing and the first run of
`ci` failed. Each job now installs 1.93 itself, with the components it needs.
The layout tests measure text in the fonts COSMIC uses, Open Sans and Noto Sans Mono. The runner had neither, and
its fallback font is wide enough to wrap "Use Signpost" in the smallest settings window, so one test failed on CI
alone.
@lkbddh lkbddh changed the title ci: install the oldest supported Rust under the name the jobs use ci: run on the oldest supported Rust, in COSMIC's fonts Oct 4, 2026
@lkbddh
lkbddh merged commit 316a629 into main Oct 4, 2026
5 checks passed
@lkbddh
lkbddh deleted the ci/toolchain branch October 4, 2026 05:32
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