Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds native Linux package distribution (.deb, .rpm, .apk) to the GoReleaser configuration, enabling users on Debian/Ubuntu, Fedora/RHEL, and Alpine to install the Basecamp CLI using their native package managers. The packages include the binary and shell completions for bash, zsh, and fish.
Changes:
- Adds
nfpmsstanza to.goreleaser.yamlto produce.deb,.rpm, and.apkpackages for amd64/arm64, with packager-specific zsh completion paths (vendor-completionsfor deb/apk,site-functionsfor rpm) - Updates the release header template with Linux package and Windows/Scoop install instructions
- Adds Linux package installation option to
README.md,install.md, andRELEASING.mddocumentation
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
.goreleaser.yaml |
Adds nfpms configuration for deb/rpm/apk packages with shell completions; adds Linux and Windows install sections to release header |
README.md |
Adds Linux deb/rpm/apk install option to "Other installation methods" |
install.md |
Inserts Linux package as Option C, re-letters subsequent options |
RELEASING.md |
Documents deb/rpm/apk build step and adds distribution channel entry |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 7 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Adds native .deb, .rpm, and .apk packages as GitHub Release assets so Debian/Ubuntu, Fedora/RHEL, and Alpine users get a familiar install path. Binary + shell completions (bash, zsh, fish) with per-packager zsh paths.
buildGoModule derivation with shell completions via installShellCompletion. vendorHash placeholder — first `nix build` resolves it from the error output.
Computed vendorHash via nix build in Docker (nixos/nix). Override buildGoModule with go_1_26 since nixpkgs default is 1.25.
release.sh updates nix/package.nix version and recomputes vendorHash via Docker when go.mod changes. CI verifies the flake builds post-release. Adds `make update-nix-hash` for manual vendorHash recomputation.
Pins nixpkgs for reproducible builds. Adds comment noting version is auto-updated by scripts/update-nix-flake.sh on release.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 12 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Remove duplicate nix build invocation in CI verify step - Use version-agnostic grep pattern for build success detection - Pin nixos/nix to digest for supply-chain integrity
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 521f04dac4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Broadens the packaging ecosystem with native Linux packages and Nix support.
Linux packages (nfpm):
nfpmsstanza to.goreleaser.yaml— builds.deb,.rpm,.apk(amd64 + arm64) with shell completionsvendor-completions(deb/apk),site-functions(rpm)Nix flake:
flake.nix+nix/package.nix—buildGoModulederivation with Go 1.26, shell completions viainstallShellCompletionnix profile install github:basecamp/basecamp-cliworks nowscripts/update-nix-flake.shautomates version + vendorHash updatesmake releasebumps version and recomputes vendorHash via Docker whengo.modchangesnix-verifyjob)Docs: release header, README, install.md, RELEASING.md all updated with new install methods.
Verification
Linux packages (all passed)
goreleaser checkgoreleaser release --snapshot --cleanbasecamp --version→ verify completions → clean removebasecamp --version→ verify completions → clean removebasecamp --version→ verify completions → clean removeNix flake (all passed)
nix build(via Docker nixos/nix)basecamp version 0.2.3Test plan
nix profile install github:basecamp/basecamp-cliworks from the tag