Skip to content

ci: update macOS GitHub Actions runner to macos-15#14

Draft
dominicletz wants to merge 2 commits intomainfrom
cursor/macos-runner-update-df0a
Draft

ci: update macOS GitHub Actions runner to macos-15#14
dominicletz wants to merge 2 commits intomainfrom
cursor/macos-runner-update-df0a

Conversation

@dominicletz
Copy link
Copy Markdown
Contributor

@dominicletz dominicletz commented Mar 31, 2026

Summary

  • CI: Updates the macOS job in .github/workflows/test.yml from macos-11 (deprecated) to macos-15. Asdf cache keys use the macos-15- prefix so caches are not reused across runner images.

  • Lint / compile: Fixes the Mix.ensure_application!/1 compiler warning by using Application.ensure_all_started(:public_key) (Mix no longer exposes ensure_application!/1 publicly; :public_key remains in extra_applications). Resolves Credo nested too deep findings by extracting maybe_rewrite_dep_to_approot/4 in MacOS and import_webkit_entry/2 in Linux.

Related

Outdated macOS runners and CI/lint hygiene for this repository.

Open in Web Open in Cursor 

Replace deprecated macos-11 with macos-15. Bump asdf cache keys so
builds do not reuse caches from the old image.

Co-authored-by: Dominic Letz <dominicletz@users.noreply.github.com>
@dominicletz
Copy link
Copy Markdown
Contributor Author

@cursor investigate and fix these linter errors:

warning: Mix.ensure_application!/1 is undefined or private
  lib/package/macos.ex:378: Desktop.Deployment.Package.MacOS.locate_uid/1

Generated desktop_deployment app
Checking 13 source files ...

  Refactoring opportunities                                                     
┃ 
┃ [F] → Function body is nested too deep (max depth is 2, was 4).
┃       lib/package/linux.ex:86:11 #(Desktop.Deployment.Package.Linux.import_webkit)
┃ [F] → Function body is nested too deep (max depth is 2, was 3).
┃       lib/package/macos.ex:97:9 #(Desktop.Deployment.Package.MacOS.release)

@cursor
Copy link
Copy Markdown

cursor bot commented Apr 1, 2026

Here’s what was fixed and pushed to the same branch / PR.

Compiler warning (lib/package/macos.ex)

Mix.ensure_application!/1 is not part of the public Mix API on current versions, which triggered the warning. It’s replaced with Application.ensure_all_started(:public_key), which still ensures :public_key is running before PEM work. :public_key stays listed under extra_applications in mix.exs.

Credo nesting

  • MacOS.release/1: The rewrite_deps callback no longer uses a nested if inside the anonymous function. Logic moved to maybe_rewrite_dep_to_approot/4, which calls rewrite_to_approot/4 only when should_rewrite?/2 is true (same behavior as before).
  • Linux.import_webkit/2: The for body with nested if / inner for is split into import_webkit_entry/2.

Verification

mix compile --force shows no ensure_application warning; mix credo reports no issues.

Commit 81987db is on cursor/macos-runner-update-df0a and PR #14 was updated to mention these fixes.

View PR

Open in Web Open in Cursor 

- Replace Mix.ensure_application!/1 with Application.ensure_all_started/1
  (Mix API no longer public; :public_key is in extra_applications)
- Extract maybe_rewrite_dep_to_approot/4 to flatten release/1 callback nesting
- Extract import_webkit_entry/2 to satisfy Credo in import_webkit/2

Co-authored-by: Dominic Letz <dominicletz@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.

2 participants