Skip to content

Fix the macOS build and macOS test failures; run cargo xtask ci on macOS - #1083

Closed
robmdunn wants to merge 4 commits into
storytold:mainfrom
robmdunn:fix/macos-build-and-ci
Closed

robmdunn wants to merge 4 commits into
storytold:mainfrom
robmdunn:fix/macos-build-and-ci

Conversation

@robmdunn

Copy link
Copy Markdown
Contributor

main didn't build on macOS, and cargo xtask ci failed there in several places that Linux and FreeBSD CI can't see.

  • Build: the macOS menu-quit path still called eframe::App::on_exit(self) after 0.5.0 crashes at startup on Windows 11 (DX12): Shader translation error 0x80070057 in egui_pipeline #812 added the gl argument.
  • Clippy (Rust 1.99): new chunks_exact_to_as_chunks lint in pipeline/src/spots.rs.
  • Bug (sidecar case): on case-insensitive volumes (the APFS and NTFS default), a.XMP answers for a.xmp, so renaming a photo moved the user's a.xmp to Trip.XMP. rename.rs now finds each sidecar's real on-disk name (MoveFs::spelling), keeps its extension case and moves it once. Regression test: sidecars_keep_their_extension_case_on_case_insensitive_volumes (fails without the fix). The fault-injection sidecar tests, which only passed on case-sensitive Linux, now pass on macOS.
  • Tests on macOS: the corpus test skips hidden files (.DS_Store). The lock test spawns true from PATH, since macOS 27 has no /bin/true. The Lightroom-folder test skips non-UTF-8 names that APFS refuses. The Export-dialog height test allows for the macOS-only "Add to Apple Photos" row (876 vs 846 pt).
  • CI: new macos.yml runs cargo xtask ci on macos-15 for pushes to main and for PRs. The corpus tests skip there because the runner has no corpus.

cargo xtask ci passes locally on macOS 27 / Rust 1.99.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

robmdunn and others added 4 commits October 11, 2026 14:29
…ntext) and Rust 1.99's chunks_exact_to_as_chunks lint

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…case on case-insensitive volumes

On APFS/NTFS a.XMP answers for a.xmp, so a rename moved the user's a.xmp to Trip.XMP (and the
sidecar fault-injection tests only passed on case-sensitive Linux).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…macOS 27 has no /bin/true), no non-UTF-8 names on APFS, Export dialog height with the Apple Photos row

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@robmdunn

Copy link
Copy Markdown
Contributor Author

Withdrawing: these fixes already have open PRs for #989: #990/#994 (on_exit), #997 (clippy 1.99), #990 (/bin/true), #1003 (non-UTF-8 on APFS), #1018 (Export dialog height), #1007 (sidecar tests), and #1052/#1031 for the sidecar case bug (#1006). The two parts nobody else covers (a corpus-test fix for .DS_Store and a macOS CI workflow) go in a smaller PR.

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