Skip to content

feat(pkg): publish an installable package on every release - #6

Merged
phmatray merged 1 commit into
mainfrom
feat/package-on-release
Sep 4, 2026
Merged

feat(pkg): publish an installable package on every release#6
phmatray merged 1 commit into
mainfrom
feat/package-on-release

Conversation

@phmatray

@phmatray phmatray commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Implements part of macarchy/macarchy-install#17 (parent: macarchy/macarchy-install#14).

Second repo to get the pattern proven in macarchy/macarchy-touchbar#12.

What ships

usr/bin/macos-dynamic-wallpaper
usr/lib/systemd/user/macos-dynamic-wallpaper.{service,timer}
usr/share/macos-dynamic-wallpaper/dynamic-wallpaper.json   ← template; pacman cannot write ~/.config
ExecStart=/usr/bin/macos-dynamic-wallpaper apply           ← repointed off %h/

Built locally on aarch64 Asahi and read back with tar -tf.

Carried over from the proving slice

  • The job hangs off release-please's release_created output, not release: [published] — that trigger never fires, because release-please creates the Release with GITHUB_TOKEN and GitHub raises no run from a GITHUB_TOKEN event.
  • pkgver is rewritten from the tag by the job, not via extra-files, which cannot parse a PKGBUILD and stops release PRs being built at all.
  • The units are repointed off %h/, with a grep to confirm — verbatim they give 203/EXEC.

Suite: 42 passed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SYBhT1xfp3MQ1w3687F4Mp

A release carried only the source zip GitHub attaches to any tag. This adds a
PKGBUILD mirroring install.sh and folds the build into release-please.yml, so a
release becomes something you can `pacman -U`. macarchy-install#17.

Built locally on the target hardware and read back with tar -tf, not assumed:
the binary, both units, the config template, licence and README.

Three things carried over from the slice that proved this pattern
(macarchy-install#16), each of which was a real failure there:

The job hangs off release-please's own `release_created` output rather than a
`release: [published]` trigger. release-please creates the Release with the
default GITHUB_TOKEN, and GitHub raises no workflow run from a GITHUB_TOKEN
event -- that trigger never fires and leaves no failed run to notice.

pkgver is rewritten from the tag by the job, not maintained through
release-please's extra-files, which cannot parse a PKGBUILD and stops release
PRs being built at all.

The shipped units say ExecStart=%h/.local/bin/… for install.sh's symlink. A
package writes nothing into $HOME, so package() repoints them at /usr/bin and
greps to confirm; verbatim they would give 203/EXEC from a package that
installed perfectly.

install.sh also seeds the config into ~/.config, which pacman cannot do: the
example ships as a template under /usr/share and the scriptlet says how to take
it and where to put the coordinates.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SYBhT1xfp3MQ1w3687F4Mp
@phmatray
phmatray merged commit c696b84 into main Sep 4, 2026
1 check passed
@phmatray
phmatray deleted the feat/package-on-release branch September 4, 2026 23:47
@github-actions github-actions Bot mentioned this pull request Sep 4, 2026
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