Skip to content

Bundled executable and installation#13

Merged
bjester merged 4 commits intomainfrom
bundled
Feb 16, 2026
Merged

Bundled executable and installation#13
bjester merged 4 commits intomainfrom
bundled

Conversation

@bjester
Copy link
Owner

@bjester bjester commented Feb 16, 2026

Summary

  • Adds install helper for copying or linking itself to appropriate places
  • Adds new build for bundled executable

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @bjester, 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 enhances the gh-worktree project's usability by introducing a dedicated installation command and enabling the creation of a bundled executable. These changes streamline the process for users to set up the tool, whether as a GitHub CLI extension or a standalone binary, making it more accessible and easier to distribute.

Highlights

  • New Installation Command: Introduced a new install command to simplify the setup process for gh-worktree, allowing users to easily install it as a GitHub CLI extension or a standalone binary.
  • Bundled Executable Build: Enabled the creation of a bundled executable using PyInstaller, which streamlines distribution and allows the application to run without a Python environment.
  • Updated Documentation: The README.md has been updated with comprehensive installation instructions for various deployment methods, including as a gh extension, standalone, with aliasing, and from source.
  • Build System and Dependency Integration: Integrated PyInstaller into the Makefile for automated builds and updated pyproject.toml and uv.lock to manage its dependencies.
Changelog
  • Makefile
    • Refactored build target to orchestrate wheel, PEX, and PyInstaller builds
    • Added new dist/gh-worktree target for PyInstaller executable
    • Added clean target for build artifacts
    • Introduced install target to run the new installation command
  • README.md
    • Expanded the "Installation" section with detailed steps for GitHub CLI extension, standalone binary, aliasing, and building from source
  • gh-worktree.spec
    • Added PyInstaller spec file for bundling the application into a single executable
  • pyproject.toml
    • Incremented project version from 0.2.0 to 0.2.1
    • Added pyinstaller to development dependencies
  • src/gh_worktree/commands/install.py
    • Created a new InstallCommand class to handle copying or linking the executable to target paths
    • Implemented logic for installing as a GitHub CLI extension or to the user's PATH
    • Included interactive prompts for installation choices
  • src/gh_worktree/main.py
    • Imported and registered the new InstallCommand with the main application
  • uv.lock
    • Updated gh-worktree package version
    • Added new dependencies required by pyinstaller (e.g., altgraph, macholib, pefile, pyinstaller, pyinstaller-hooks-contrib, pywin32-ctypes, setuptools)
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/build.yml
    • .github/workflows/release.yml
Activity
  • No specific activity (comments, reviews, progress updates) was provided in the context for this pull request.
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.

@github-actions
Copy link

github-actions bot commented Feb 16, 2026

🎉 Build Assets are ready!

Type File Checksum
Wheel gh_worktree-0.2.1-py3-none-any.whl 2fca040f371de8c5b78baa6e74f123adf7ba3567a0575917839b474d95dd73ff
PEX gh-worktree.pex 9a01b051ed29ca1308be2257631a0aa89575ce224a5f0067bd0260e61ae6923e
Binary gh-worktree c085903bb91cc6964fd8a5fc7c9e5cb76b8c19bcea9b8cd5d00a4b569955f6ad

Copy link
Contributor

@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 introduces a new install command to make the tool easily installable as a gh extension or a standalone command, along with the necessary build infrastructure using PyInstaller. The changes are well-structured, adding a new command module and updating the Makefile and pyproject.toml appropriately. I've identified a few areas for improvement in the installation script, primarily concerning the robustness of path detection and file linking logic, to ensure it works reliably across different user environments. My suggestions aim to fix a bug in the --force option and make the installation process more resilient.

@bjester bjester merged commit ae07b45 into main Feb 16, 2026
10 checks passed
@bjester bjester deleted the bundled branch February 16, 2026 22:45
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