Skip to content

Phase 5: Update packaging structure #5

@rianjs

Description

@rianjs

What

Reorganize packaging files (Chocolatey, Winget, Homebrew) into a unified structure that supports both tools from the monorepo.

Target Structure

packaging/
├── cfl/
│   ├── chocolatey/
│   │   ├── cfl.nuspec
│   │   └── tools/
│   │       ├── chocolateyInstall.ps1
│   │       └── chocolateyUninstall.ps1
│   └── winget/
│       ├── OpenCLICollective.cfl.yaml
│       ├── OpenCLICollective.cfl.installer.yaml
│       └── OpenCLICollective.cfl.locale.en-US.yaml
└── jtk/
    ├── chocolatey/
    │   ├── jira-ticket-cli.nuspec
    │   └── tools/
    │       ├── chocolateyInstall.ps1
    │       └── chocolateyUninstall.ps1
    └── winget/
        ├── OpenCLICollective.jira-ticket-cli.yaml
        ├── OpenCLICollective.jira-ticket-cli.installer.yaml
        └── OpenCLICollective.jira-ticket-cli.locale.en-US.yaml

Workflow Updates

Update release workflows to reference new paths:

# In release-cfl.yml
- name: Update Chocolatey
  run: |
    cd packaging/cfl/chocolatey
    # ... update version, checksums
    choco pack
    choco push

- name: Update Winget
  run: |
    cd packaging/cfl/winget
    # ... update manifests

Homebrew Tap Updates

The Homebrew tap (open-cli-collective/homebrew-tap) needs formula updates:

  1. Update cfl.rb to point to new release URL pattern
  2. Update jira-ticket-cli.rb to point to new release URL pattern

Release URLs change from:

  • https://github.com/open-cli-collective/confluence-cli/releases/...
  • https://github.com/piekstra/jira-ticket-cli/releases/...

To:

  • https://github.com/open-cli-collective/atlassian-cli/releases/download/cfl-v.../...
  • https://github.com/open-cli-collective/atlassian-cli/releases/download/jtk-v.../...

Why

Consistent organization

Having all packaging in one place with parallel structure:

  • Makes it easy to add new tools (copy cfl/newcli/)
  • Keeps packaging logic near the code it packages
  • Simplifies CI/CD - one repo has everything

Maintains existing package names

Users don't need to change their install commands:

  • brew install open-cli-collective/tap/cfl still works
  • choco install cfl still works
  • winget install OpenCLICollective.cfl still works

The packages themselves don't change, just where the binaries come from.

Enables future expansion

The structure supports adding more Atlassian tools:

packaging/
├── cfl/
├── jtk/
├── btk/      # Future: Bitbucket CLI
└── trello/   # Future: Trello CLI

Acceptance Criteria

  • packaging/cfl/ contains all cfl packaging files
  • packaging/jtk/ contains all jtk packaging files
  • Release workflows reference packaging/{tool}/ paths
  • Chocolatey packages build successfully
  • Winget manifests pass validation
  • Homebrew tap formulas updated with new release URLs
  • brew install open-cli-collective/tap/cfl installs from monorepo release
  • brew install open-cli-collective/tap/jira-ticket-cli installs from monorepo release

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions