Skip to content

chore: installation#148

Open
lvndry wants to merge 5 commits intomainfrom
installation
Open

chore: installation#148
lvndry wants to merge 5 commits intomainfrom
installation

Conversation

@lvndry
Copy link
Owner

@lvndry lvndry commented Feb 4, 2026

Description

Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 📚 Documentation
  • ♻️ Refactoring
  • ⚡ Performance
  • ✅ Tests

Checklist

  • Code follows project style guidelines
  • Tests added/updated and passing
  • Documentation updated (if needed)

@gemini-code-assist
Copy link

Summary of Changes

Hello @lvndry, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly overhauls the Jazz CLI's installation and release infrastructure. It introduces new shell scripts for direct binary installation and uninstallation, alongside a Homebrew formula, making the CLI more accessible and easier to manage for users. Furthermore, it establishes a clear, documented release process, leveraging GitHub Actions for automation, and updates the project's main documentation to reflect these improvements.

Highlights

  • Enhanced Installation and Uninstallation: Introduced dedicated shell scripts (install.sh and uninstall.sh) for robust binary installation and comprehensive uninstallation of the Jazz CLI, including platform detection, checksum verification, and package manager fallbacks/cleanup.
  • Homebrew Support: Added a Homebrew formula (jazz.rb) and a corresponding README.md to enable easier installation, updating, and management of the Jazz CLI for macOS and Linux users via Homebrew.
  • Documented Release Process: A new RELEASE.md document outlines the official release guide for the Jazz CLI, detailing prerequisites, automated release steps via GitHub Actions (binary builds, checksums, GitHub releases, npm publish), and manual alternatives.
  • Improved Compilation Script: The compile.ts script was updated to dynamically detect or allow specification of the target platform and architecture, facilitating multi-platform binary builds.
  • Documentation Updates and Cleanup: The README.md was refined for clarity in the quick start guide, and the TODO.md was cleaned up by removing numerous completed tasks, providing a more current overview of pending work.
Changelog
  • README.md
    • Updated quick start section headings for clarity (e.g., "Install Jazz" instead of "1. Install the CLI").
    • Refined wording in the quick start guide.
    • Added a blank line for better formatting in an example.
  • TODO.md
    • Removed numerous completed tasks across various sections (CLI & User Experience, Agent Runtime & Automation, CLI Feature Depth & Docs, Integrations).
    • Streamlined the remaining tasks to reflect current priorities.
  • docs/RELEASE.md
    • Added a new document detailing the Jazz CLI release guide.
    • Outlined prerequisites, automated and manual release processes, troubleshooting, and post-release steps.
    • Specified required GitHub secrets for automated releases.
  • scripts/compile.ts
    • Implemented platform and architecture detection for targeted binary compilation.
    • Modified the build command to dynamically include the target platform.
    • Removed outdated comments regarding default target platforms.
  • scripts/homebrew/README.md
    • Added a new README for the Homebrew tap, providing user and maintainer instructions.
    • Detailed installation, update, and uninstall commands for Homebrew users.
    • Explained how to create and update the Homebrew formula for maintainers.
  • scripts/homebrew/jazz.rb
    • Added a new Homebrew formula for the Jazz CLI.
    • Configured download URLs and placeholder SHA256 checksums for macOS (arm64, x64) and Linux (arm64, x64) binaries.
    • Defined installation logic and a basic test.
  • scripts/install.sh
    • Added a new shell script for robust binary installation of the Jazz CLI.
    • Includes platform detection, binary download, checksum verification, and installation to common paths.
    • Features a fallback mechanism to npm/bun/pnpm installation if binary installation fails.
    • Provides checks for existing installations and user prompts.
  • scripts/uninstall.sh
    • Added a new shell script for comprehensive uninstallation of the Jazz CLI.
    • Locates and removes the Jazz binary, offers to clean up user data, and checks for package manager installations (npm, bun, Homebrew) for complete removal.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/release.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly improves the installation and release process for the Jazz CLI. It introduces a comprehensive installation script, an uninstallation script, a Homebrew formula, and detailed release documentation. The changes are well-executed and robust, considering different platforms, architectures, and installation methods. I've found a couple of minor areas for improvement. In TODO.md, there's a small typo. In the new Homebrew formula scripts/homebrew/jazz.rb, the install method can be refactored to be more concise. Overall, this is a great set of changes that will make it much easier for users to install and for maintainers to release Jazz.

Comment on lines 28 to 31
bin.install "jazz-darwin-arm64" => "jazz" if Hardware::CPU.arm? && OS.mac?
bin.install "jazz-darwin-x64" => "jazz" if Hardware::CPU.intel? && OS.mac?
bin.install "jazz-linux-arm64" => "jazz" if Hardware::CPU.arm? && OS.linux?
bin.install "jazz-linux-x64" => "jazz" if Hardware::CPU.intel? && OS.linux?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The install method is a bit repetitive with four separate bin.install lines. You can refactor this to be more concise and idiomatic for a Homebrew formula by determining the platform and architecture dynamically. This avoids repeating the installation logic for each platform/architecture combination and makes the formula easier to maintain.

    os_tag = OS.mac? ? "darwin" : "linux"
    arch_tag = Hardware::CPU.arm? ? "arm64" : "x64"
    bin.install "jazz-#{os_tag}-#{arch_tag}" => "jazz"

@lvndry lvndry changed the title installation chore: installation Feb 4, 2026
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.

1 participant