Skip to content

ci: publish canjv to Homebrew after PyPI releases - #226

Open
rahlk wants to merge 1 commit into
mainfrom
ci/homebrew-canjv
Open

ci: publish canjv to Homebrew after PyPI releases#226
rahlk wants to merge 1 commit into
mainfrom
ci/homebrew-canjv

Conversation

@rahlk

@rahlk rahlk commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Java's PyPI wheel already installs canjv with a JVM supplied by jdk4py, but releases do not publish a Homebrew formula. Add a job after successful PyPI publication that generates a pinned uvx formula from the published wheel's URL and SHA256 and updates the shared tap, following codeanalyzer-python's approach.

The formula exposes canjv; its first invocation downloads the pinned package and JVM. The workflow retries PyPI metadata retrieval, treats unchanged formulas as a no-op, and keeps tap failures separate from publication. The README documents the Homebrew command and first-use behavior.

Closes #225.

Validation:

  • actionlint .github/workflows/release-pypi.yml, bash -n packaging/homebrew/generate_formula.sh, and git diff --check pass.
  • Generated the formula from the published 3.0.2 wheel and independently verified the downloaded wheel's SHA256 against PyPI metadata.
  • Loaded the formula with Homebrew's Ruby API, installed the launcher in a temporary directory, and verified its dependency, version pin, executable permissions, shell syntax, and argument forwarding.
  • Invoked the generated launcher against the real PyPI package: canjv --version prints 3.0.2.
  • Generator rejects malformed versions and checksums.

Release plan: ship this automation with the next release. Backfill the shared tap with the existing 3.0.2 wheel now; no new analyzer release or SDK pin bump is required. This PR does not change analyzer code or the schema.

Deployment prerequisite: ensure HOMEBREW_TAP_TOKEN is available to this repository with write access to codellm-devkit/homebrew-tap. No repository-level secret was listed; an organization secret may already provide it. The cross-repository CI push has not been exercised locally.

Propagation verdict: homebrew-tap (backfill the published 3.0.2 wheel). Sibling analyzers retain their existing packaging; SDK pins and analysis fixtures are unaffected. The analyzer README is updated; both docs-site installation guides were checked and have no existing Java Homebrew instructions to correct.

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.

Publish canjv to Homebrew after PyPI releases

1 participant