Conversation
Add a FreeBSD distribution channel alongside crates.io, npm, and the AUR.
The release matrix already builds and uploads `*-unknown-freebsd`
tarballs, so this reuses them (mirroring the AUR `runner-run-bin`
package) rather than recompiling:
- freebsd/runner: a prebuilt port (package `runner-bin`, amd64 + aarch64)
that installs the `runner` + `run` binaries from the GitHub release
tarballs plus bash, zsh, fish, and pwsh completions into the canonical
${LOCALBASE} autoload dirs. Checked-in Makefile/distinfo are a v0.12.0
reference snapshot (real checksums); CI overwrites them per release.
- .github/scripts/publish/freebsd-prepare.sh: bumps DISTVERSION and
regenerates distinfo (per-arch SHA256 + SIZE) from the release's
published .sha256 assets and asset metadata. amd64 is mandatory; the
experimental aarch64 build is skipped with a warning when absent.
Strict semver guard before any sed runs.
- .github/workflows/freebsd-release.yml: on release:published (and manual
workflow_dispatch + dry-run) builds the port the canonical way inside a
FreeBSD VM (make stage check-plist package) against a blobless sparse
checkout of the ports Mk/ tree, then attaches runner-freebsd-amd64.pkg
(+ .sha256) to the release. Third-party uses: pinned to commit SHAs.
- Docs: README install section (`pkg add` one-liner), freebsd/README.md,
and CHANGELOG.
Since FreeBSD has no AUR-style push-to-git remote, the installable
artifact is the .pkg on the GitHub release: `pkg add <url>`.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
runner | f7eebfe | Commit Preview URL Branch Preview URL |
Sep 28 2026, 10:30 AM |
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
🚫 Excluded labels (none allowed) (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Goal: an installable FreeBSD package. Already on master: FreeBSD x86_64 and aarch64 binaries on every release (linked against the FreeBSD 12 libc since #154), FreeBSD support in Carries over: the port Makefile,
Open decision: a self-hosted |
Move the FreeBSD changelog entries under Unreleased.
Adds a FreeBSD distribution channel alongside crates.io, npm, and the AUR.
The release matrix already builds and uploads
*-unknown-freebsdtarballs, so this reuses them (mirroring the AURrunner-run-binpackage) rather than recompiling.What's here
freebsd/runner/{Makefile,distinfo,pkg-descr}runner-bin(amd64 + aarch64): installsrunner/run+ bash/zsh/fish/pwsh completions into the canonical${LOCALBASE}autoload dirs. Checked-in values are a real v0.12.0 reference snapshot; CI overwrites them per release..github/scripts/publish/freebsd-prepare.shDISTVERSIONand regeneratesdistinfo(per-archSHA256+SIZE) from the release's published.sha256assets + asset metadata. amd64 is mandatory; the experimental aarch64 build is skipped with a warning when absent. Strict semver guard before anysedruns..github/workflows/freebsd-release.ymlrelease: published(and manualworkflow_dispatch+dry-run) builds the port the canonical way inside a FreeBSD VM (make stage check-plist package) against a blobless sparse checkout of the portsMk/tree, then attachesrunner-freebsd-amd64.pkg(+.sha256) to the release. Third-partyuses:pinned to commit SHAs.freebsd/README.md/ CHANGELOGpkg addone-liner.Design notes
-binparallel)..pkgon the GitHub release:pkg add https://github.com/kjanat/runner/releases/latest/download/runner-freebsd-amd64.pkg(version-less asset name →latest/downloadalways resolves).aarch64is the tier-3experimentalbuild, so it's skipped-with-warning if its asset is missing;amd64(tier-2) is mandatory.Validation done locally
freebsd-prepare.sh: bash syntax + both paths (full + aarch64-missing) tested with a stubbedgh— Makefile bump and distinfo regen are byte-correct.dprint checkclean; all Makefile recipe lines are real tabs.make stage check-plist package, so plist drift in either direction fails the build (can't silently ship a broken completions split).Couldn't verify locally
The actual
make packageruns inside a FreeBSD VM. Before a real release, run Actions →freebsd-release→ Run workflow with atag+dry-runticked to exercise the full VM build (fetch / stage / check-plist / package) without uploading.Generated by Claude Code