Skip to content
This repository was archived by the owner on Feb 6, 2026. It is now read-only.

feat: add Chocolatey package for Windows distribution#74

Merged
rianjs merged 5 commits intomainfrom
feat/chocolatey-package
Jan 17, 2026
Merged

feat: add Chocolatey package for Windows distribution#74
rianjs merged 5 commits intomainfrom
feat/chocolatey-package

Conversation

@rianjs
Copy link
Collaborator

@rianjs rianjs commented Jan 17, 2026

Summary

Add Chocolatey package definition to enable Windows users to install confluence-cli via:

choco install confluence-cli

Package Structure

packaging/
├── chocolatey/
│   ├── confluence-cli.nuspec    # Package manifest
│   ├── tools/
│   │   ├── chocolateyInstall.ps1    # Download + install script
│   │   └── chocolateyUninstall.ps1  # Cleanup script
│   └── README.md                # Publishing instructions
└── homebrew/
    └── README.md                # Points to GoReleaser config

Features

  • Downloads from GitHub Releases - binaries not embedded in package
  • ARM64 support - native architecture detection via $env:PROCESSOR_ARCHITECTURE
  • Dynamic checksums - fetches checksums.txt at install time, no package updates needed per release
  • Proper shimming - only cfl.exe is shimmed, LICENSE/README excluded via .ignore files

Architecture Detection

if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64') {
    # Download windows_arm64.zip
} elseif ([Environment]::Is64BitOperatingSystem) {
    # Download windows_amd64.zip
} else {
    # Error: 32-bit not supported
}

CI Testing

Added .github/workflows/test-chocolatey.yml that runs on Windows:

  1. Builds cfl.exe locally
  2. Packs the Chocolatey package
  3. Installs locally with choco install confluence-cli -s .
  4. Verifies cfl --version works
  5. Tests uninstall removes the binary

Triggers on PRs/pushes that modify packaging/chocolatey/**.

Publishing Process

Documented in packaging/chocolatey/README.md:

  1. Update version in nuspec
  2. choco pack
  3. Test locally with choco install confluence-cli -s . --force
  4. choco push to Chocolatey Community Repository

Also Included

  • packaging/homebrew/README.md - documents that Homebrew is managed by GoReleaser
  • Updated CLAUDE.md with packaging section

Closes #71

Add Chocolatey package definition to enable Windows users to install
via `choco install confluence-cli`.

Package features:
- Downloads from GitHub Releases (not embedded)
- Native ARM64 detection with x64 fallback
- Dynamic checksum verification from checksums.txt
- Proper shimming (only cfl.exe, not LICENSE/README)

Also adds packaging/ directory structure with Homebrew README
pointing to GoReleaser config.

Fixes #71
@rianjs rianjs merged commit 6331ef2 into main Jan 17, 2026
3 checks passed
@rianjs rianjs deleted the feat/chocolatey-package branch January 17, 2026 10:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Chocolatey package distribution

1 participant