Skip to content

Conversation

@stuffbucket
Copy link
Owner

Updating the package generation to a semantic versioning strategy since the packages call homebrew anyhow.

  • Packages are smart wrappers that run brew install stuffbucket/tap/lima
  • The actual software version comes from the formula at install time
  • Packages stay valid across minor/patch updates (2.0.0 → 2.0.1 → 2.0.3)

When the packages do need to be redone we will need to run scripts on a mac box to regenerate the packages. This saves on CI runner minutes.

claude and others added 14 commits November 8, 2025 20:38
This fixes the fundamental CI pipeline issues by decoupling package versions
from formula versions.

Key Changes:
- Package filenames now use major version only:
  * stuffbucket-homebrew-1.pkg (was 1.0.0)
  * stuffbucket-lima-2.pkg (was 2.0.0-beta.0.1)
  * stuffbucket-vscode-lima-0.pkg (was 0.0.1)

- Packages are wrappers that run `brew install` to get latest formula version
- No need to rebuild packages for minor/patch version updates
- Only rebuild when major version changes or installer logic changes

Benefits:
- Eliminates version mismatch issues between packages and formulas
- Reduces maintenance burden - packages remain valid across minor updates
- Simplifies CI - no need to rebuild on every formula update

CI Updates:
- Updated publish-installers.yml to expect major-versioned filenames
- Added helpful error messages when packages are missing
- Updated release.yml to find major-versioned packages
- Added documentation about when to rebuild packages

Documentation:
- Updated README.md to reflect new package naming
- Updated pkgs/README.md with build requirements and versioning explanation
- Added clear guidance on when packages need to be rebuilt

Note: Packages must be built on macOS using pkgbuild/productbuild.
Run `pkgs/build-all.sh` on macOS to generate the new packages.
Untap existing tap before re-tapping from local checkout to avoid
'remote mismatch' error when the tap is already registered with
the GitHub URL.
Homebrew audit requires SHA256 checksums for all downloaded files.
This was causing the CI formula tests to fail.
This eliminates distributed state issues and simplifies maintenance.

Changes:
- Updated vscode-lima formula to install from marketplace instead of .vsix
- Extension ID: stuffbucket-co.lima-manager
- Removed vscode-lima from .pkg installers (only homebrew + lima now)
- Created install.sh convenience script for one-command setup
- Updated all documentation to reflect new approach

Benefits:
- Extension auto-updates through VS Code
- No need to rebuild packages for extension updates
- No SHA256 sync issues between repos
- Simpler CI - only 2 packages to track
- Standard distribution model for VS Code extensions

Formula now installs a helper script that uses marketplace:
  brew install stuffbucket/tap/vscode-lima
  vscode-lima-install  # Runs: code --install-extension stuffbucket-co.lima-manager

Note: This requires the extension to be published to VS Code Marketplace first.
The VS Code extension is now distributed exclusively via the VS Code
Marketplace (stuffbucket-co.lima-manager), so the .pkg installer is
no longer needed.

This completes the migration to marketplace-based distribution.
Add explicit cleanup step to untap repository before the Homebrew
action's post-cleanup runs. This prevents the 'cannot remove directory'
error that was causing the workflow to fail in cleanup.
The brew untap command doesn't always remove the physical directory.
Add explicit rm -rf commands to forcefully remove the tap directories
before the Homebrew action's post-cleanup script runs.
The cleanup was working but the action's post.sh was failing because
the directory no longer existed. Create an empty directory after cleanup
so post.sh has something to remove without errors.
The action's post.sh uses 'rm' (not 'rm -rf'), expecting a file not
a directory. Create an empty file at the tap path so post.sh can
successfully remove it without errors.
The formula was an unnecessary wrapper now that the extension is
published to the VS Code Marketplace. Users can install directly with:
  code --install-extension stuffbucket-co.lima-manager

Changes:
- Removed Formula/vscode-lima.rb
- Updated install.sh to call 'code --install-extension' directly
- Updated README.md to remove formula references
- Extension is now documented as a separate section, not a formula

This simplifies the distribution model - Lima via Homebrew, extension
via VS Code Marketplace.
Changes:
- Removed vscode-lima references from pkg-check-versions
- Deprecated pkg-sync-versions target (no longer needed)
- Updated help text to reflect 2-package structure
- Added note about VS Code extension being on marketplace
- Simplified version checking to show only relevant packages

The Makefile now reflects the current architecture:
- 2 packages: homebrew + lima
- VS Code extension via marketplace
- Major-versioned packages
@stuffbucket stuffbucket merged commit 5ce9584 into main Nov 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants