-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Description
Currently, users install PromptPacker either by downloading the binaries directly from GitHub Releases or by running curl | bash / irm | iex scripts. While convenient, native package managers offer a much better developer experience for installation, tracking, and seamless updates.
Why it matters
Publishing to standard package managers lowers the barrier to entry, increases trust (as many corporate environments block raw script executions), and allows users to update PromptPacker effortlessly using their system's native commands (e.g., brew upgrade promptpacker).
Proposed Solution
Integrate GoReleaser into the GitHub Actions release workflow. GoReleaser is the industry standard for Go projects and can automate the creation of .deb files, Snapcraft packages, and Homebrew formulas every time a new GitHub Release is cut.
Tasks
1. GoReleaser Setup
-[ ] Add a .goreleaser.yaml configuration file to the project root.
- Update the GitHub Actions release workflow to trigger GoReleaser on tag creation.
2. Homebrew (macOS / Linux)
-[ ] Create a custom tap repository (e.g., immazoni/homebrew-tap).
- Configure GoReleaser to automatically generate and push the
promptpacker.rbformula to the tap upon release. - Stretch Goal: Submit to
homebrew-coreonce the tool meets their popularity requirements.
3. Winget (Windows)
- Automate or document the process for submitting a manifest to the
microsoft/winget-pkgsrepository on new releases (can be automated via GitHub Actions likevedantmgoyal2009/winget-releaser).
4. APT / Debian (.deb)
- Use GoReleaser's
nfpm(Not FPM) module to generate.deband.rpmpackages. - Attach these packages to the GitHub Releases page.
- Optional: Host a dedicated APT repository (e.g., via Cloudsmith, Gemfury, or GitHub Pages) so users can
apt-get install promptpacker.
5. Snapcraft (Linux)
- Configure the
snapcraftsection in.goreleaser.yaml. - Register the
promptpackername on the Snap Store. - Provide GoReleaser with the necessary Snap Store credentials in GitHub Secrets to auto-publish.
Updated Installation UX (Goal)
# macOS
brew install immazoni/tap/promptpacker
# Windows
winget install promptpacker
# Linux (Snap)
sudo snap install promptpacker
# Linux (APT/Debian)
sudo dpkg -i promptpacker_linux_amd64.deb