Skip to content

[Feature] Distribute PromptPacker via Homebrew, Winget, APT, and Snap #11

@ImmaZoni

Description

@ImmaZoni

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.rb formula to the tap upon release.
  • Stretch Goal: Submit to homebrew-core once the tool meets their popularity requirements.

3. Winget (Windows)

  • Automate or document the process for submitting a manifest to the microsoft/winget-pkgs repository on new releases (can be automated via GitHub Actions like vedantmgoyal2009/winget-releaser).

4. APT / Debian (.deb)

  • Use GoReleaser's nfpm (Not FPM) module to generate .deb and .rpm packages.
  • 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 snapcraft section in .goreleaser.yaml.
  • Register the promptpacker name 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions