Skip to content

fix(release): macOS build without SwiftPM, ext tester from a pure-Dart package - #1484

Merged
ZhuchkaTriplesix merged 1 commit into
mainfrom
hotfix/0.4.19-release
Oct 11, 2026
Merged

ZhuchkaTriplesix merged 1 commit into
mainfrom
hotfix/0.4.19-release

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Hotfix for the failed 0.4.19 Release run (https://github.com/QueryaHub/Querya-Desktop/actions/runs/38149049982). Cut from the commit the 0.4.19 tag points at, so pubspec.yaml still says 0.4.19+2.

What failed

Build Linux, Build Windows and the E2E tests passed. Five jobs failed, which skipped Publish GitHub Release, Publish APT + DNF and Publish AUR. Both causes are new since 0.4.18, which built with Flutter 3.41.6 and had no tester jobs:

  1. Build macOS: Error: Xcode failed to resolve Swift Package Manager dependencies: target 'refresh_rate' in package 'refresh_rate' is outside the package root. Flutter 3.47 turns Swift Package Manager on, and the vendored third_party/refresh_rate/macos/refresh_rate/Package.swift points its target at ../Classes.
  2. Build querya-ext-tester (linux-x64, windows-x64, macos-x64, macos-arm64): 'dart compile' does not support build hooks, use 'dart build' instead. Packages with build hooks: objective_c, sqlite3.

Fix

  • pubspec.yaml: flutter: config: enable-swift-package-manager: false, so macOS builds use CocoaPods as before (the plugin has a podspec).
  • scripts/ci/build_ext_tester.sh and release.yml: the tester is pure Dart (its import closure is lib/core/extensions and package:path), so it is compiled from a throwaway package named querya_desktop that holds only that directory and depends on path; no build hooks in its graph. The querya-mcp bridge already works the same way.

Checked

  • Ran the script locally: it builds a 6.9 MB executable in about 2 s; --help prints Usage: querya-ext-tester, and an empty directory fails with manifest.json not found, which are the two things the workflow's smoke test greps for.
  • Not checked: the macOS build (needs a macOS runner). The CocoaPods path is what 0.4.18 used.

After merging

The 0.4.19 tag has no GitHub Release yet, so it can be moved to the fix commit and the Release workflow re-run (decision pending). main then needs merging back into dev.

…t package

The 0.4.19 Release run failed in two places, both new since 0.4.18 (the
Flutter pin moved from 3.41.6 to 3.47.1 and the tester jobs were added):

- Build macOS: Flutter 3.47's Swift Package Manager integration cannot
  resolve the vendored refresh_rate plugin ('target refresh_rate is outside
  the package root': Package.swift points at ../Classes). The app opts out
  of SwiftPM, so macOS builds use CocoaPods as before.
- Build querya-ext-tester (4 platforms): 'dart compile' does not support
  build hooks, and the app's graph has sqlite3 and objective_c. The tester
  is pure Dart, so scripts/ci/build_ext_tester.sh compiles it from a
  throwaway package that holds lib/core/extensions and depends on path.
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit fbfd502 into main Oct 11, 2026
13 checks passed
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