Skip to content

Commit 84f2320

Browse files
authored
fix(ci): ASCII-only formula heredoc (#32)
1 parent 3f306dc commit 84f2320

3 files changed

Lines changed: 15 additions & 16 deletions

File tree

.github/workflows/update-homebrew.yml

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,17 @@ jobs:
6363
6464
depends_on :macos
6565
depends_on arch: :arm64
66-
# Immich 2.7.x pins engines.node = 24.x and sharp@0.34.5
67-
# native addons break on node 25 (brew's default `node`
68-
# formula). node@22 is the closest LTS with an arm64
69-
# bottle that satisfies Immich's range. Pin explicitly —
70-
# the accelerator's find_node() looks under
71-
# /opt/homebrew/opt/node@22/bin/node.
66+
# node@22 is the keg-only LTS that satisfies Immich's
67+
# engines.node pin. The default node formula tracks
68+
# mainline (currently 25.x) which breaks sharp's native
69+
# addons with NODE_MODULE_VERSION mismatches.
7270
depends_on "node@22"
7371
depends_on "vips"
7472
depends_on "libpq"
7573
depends_on "python@3.11"
76-
# GNU gzip for `gzip --rsyncable`. Apple's BSD gzip
77-
# doesn't support that flag, and Immich's database-
78-
# backup service pipes pg_dump stdout through it. Without
79-
# GNU gzip the pg_dump_shim falls back to stripping
80-
# --rsyncable (output is valid but loses rsync-friendly
81-
# block boundaries) — installing it is the honest
82-
# default that matches upstream Immich's behavior.
74+
# GNU gzip for gzip --rsyncable. Apple's BSD gzip does
75+
# not support that flag, and Immich's database-backup
76+
# service pipes pg_dump stdout through it.
8377
depends_on "gzip"
8478
8579
def install
@@ -88,7 +82,7 @@ jobs:
8882
(libexec/"ml").install Dir["*"]
8983
end
9084
# Wrapper uses the ML venv Python so the CLI inherits its
91-
# third-party deps (fastapi, uvicorn required by the
85+
# third-party deps (fastapi, uvicorn - required by the
9286
# dashboard and already pinned in ml/requirements.txt).
9387
# Prevents ModuleNotFoundError on fresh installs where
9488
# Homebrew's python3.11 has no extra packages. (Issue #17.)
@@ -110,7 +104,7 @@ jobs:
110104
def post_install
111105
# ML venv in post_install avoids Homebrew dylib fixup on
112106
# Rust-compiled Python extensions (pydantic_core, tokenizers).
113-
# The CLI wrapper also runs through this venv its existence
107+
# The CLI wrapper also runs through this venv - its existence
114108
# is load-bearing for every subcommand, not just ML.
115109
ml_dir = libexec/"ml"
116110
system Formula["python@3.11"].opt_bin/"python3.11", "-m", "venv", ml_dir/"venv"

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 1.4.7 — 2026-04-17
4+
5+
### Fixes
6+
- **Homebrew formula failed to install on every release since v1.4.4 (#31)**. The CI workflow that generates the formula used a bash heredoc containing backticks and em-dashes. Backticks triggered command substitution on the runner, em-dashes got mangled through the locale. Brew's Ruby installer rejected the resulting invalid UTF-8. Replaced with plain ASCII.
7+
38
## 1.4.6 — 2026-04-16
49

510
### Fixes

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.4.6
1+
1.4.7

0 commit comments

Comments
 (0)