Skip to content

feat(tools): #467 lazygit opt-in installer - #502

Merged
primetimetank21 merged 1 commit into
developfrom
feat/467-lazygit-tool
Jul 13, 2026
Merged

feat(tools): #467 lazygit opt-in installer#502
primetimetank21 merged 1 commit into
developfrom
feat/467-lazygit-tool

Conversation

@primetimetank21

Copy link
Copy Markdown
Owner

feat(tools): #467 lazygit opt-in installer

Closes #467

Files Added / Modified

File Change
scripts/linux/tools/lazygit.sh New installer: tarball primary (no apt), macOS brew
scripts/windows/tools/lazygit.ps1 New installer: winget (JesseDuffield.lazygit), scoop fallback
scripts/windows/setup.ps1 Wire lazygit into ToolRegistry (NOT DefaultTools)
.tool-versions Pin lazygit 0.63.0
tests/fixtures/stub-tools/{linux,windows}/lazygit.{sh,ps1} Test stubs
tests/test_lazygit_installer.sh Parity test (bash)
tests/test_lazygit_installer_pwsh.ps1 Parity test (PowerShell)

Opt-in Wiring

lazygit is NOT added to DEFAULT_TOOLS (Linux) or $DefaultTools (Windows).
Linux: directory auto-discovery. Windows: explicit $ToolRegistry entry only.
Selectable via --only=lazygit (Linux/macOS) or -Only 'lazygit' (Windows).

Version Pinned

lazygit 0.63.0 -- verified latest stable from
https://api.github.com/repos/jesseduffield/lazygit/releases/latest
(published 2026-07-04).

Linux asset naming confirmed (lowercase, no leading v):

  • lazygit_0.63.0_linux_x86_64.tar.gz
  • lazygit_0.63.0_linux_arm64.tar.gz

Binary at archive root (no subdirectory). macOS: brew install lazygit.

No git config applied -- lazygit works out of the box with no global config changes.

Tests (TDD -- RED then GREEN)

RED (pre-implementation):

  • T_lazygit_in_list FAIL (lazygit.ps1 not registered in ToolRegistry)
  • T_lazygit_version_pin FAIL (not in .tool-versions yet)
  • T_lazygit_not_default PASS (correctly opt-in even before implementation)
  • T_lazygit_optin_stub PASS (stub-dir dynamic registry picks up new stub)

GREEN (post-implementation):

  • PowerShell suite: 4/4 PASS (run locally, confirmed)
  • Bash suite: RED confirmed by code-analysis (no WSL on this Windows machine);
    tests cover discovery, not-default, version-pin, and stub opt-in.
    shellcheck: CLEAN on all new .sh files.

Existing test_setup_flags_pwsh.ps1: 36/36 PASS (no regressions).
PSScriptAnalyzer (lazygit.ps1): 0 issues.
PSScriptAnalyzer (CI paths setup.ps1 x2): 0 issues.

Pattern Used

Follows the proven opt-in tool pattern from delta (#466, PR #501).
Skill: .squad/skills/dev-setup-optin-tool/SKILL.md.

Key differences from delta:

  • Tarball-primary (no apt-first) because Ubuntu PPA lags significantly.
  • No git config step (lazygit works out of the box).
  • No Set-*GitConfig / apply_*_git_config function needed.

- scripts/linux/tools/lazygit.sh: GitHub release tarball primary (Ubuntu PPA
  lags); brew for macOS. Version-aware idempotent install.
  Asset: lazygit_<ver>_linux_{x86_64,arm64}.tar.gz (no leading v; lowercase).
  Binary at archive root; installed to ~/.local/bin.
- scripts/windows/tools/lazygit.ps1: winget (JesseDuffield.lazygit), scoop
  fallback. Install-Lazygit (no git config needed -- lazygit works out of box).
- scripts/windows/setup.ps1: lazygit wired into ToolRegistry only (NOT
  DefaultTools) -- opt-in, selectable via -Only 'lazygit'.
- .tool-versions: pin lazygit 0.63.0 (verified latest stable, 2026-07-04).
- tests/fixtures/stub-tools/{linux,windows}/lazygit.{sh,ps1}: stubs for seam.
- tests/test_lazygit_installer.sh + tests/test_lazygit_installer_pwsh.ps1:
  parity pair -- opt-in discovery, not-default, version-pin, optin-stub.
  RED: 2/4 pwsh FAIL pre-impl. GREEN: 4/4 pwsh PASS post-impl.
  Bash RED confirmed by code-analysis (no WSL). shellcheck CLEAN.

Closes #467

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@primetimetank21
primetimetank21 merged commit da69d13 into develop Jul 13, 2026
10 checks passed
@primetimetank21
primetimetank21 deleted the feat/467-lazygit-tool branch July 13, 2026 01:21
primetimetank21 added a commit that referenced this pull request Jul 25, 2026
- scripts/linux/tools/lazygit.sh: GitHub release tarball primary (Ubuntu PPA
  lags); brew for macOS. Version-aware idempotent install.
  Asset: lazygit_<ver>_linux_{x86_64,arm64}.tar.gz (no leading v; lowercase).
  Binary at archive root; installed to ~/.local/bin.
- scripts/windows/tools/lazygit.ps1: winget (JesseDuffield.lazygit), scoop
  fallback. Install-Lazygit (no git config needed -- lazygit works out of box).
- scripts/windows/setup.ps1: lazygit wired into ToolRegistry only (NOT
  DefaultTools) -- opt-in, selectable via -Only 'lazygit'.
- .tool-versions: pin lazygit 0.63.0 (verified latest stable, 2026-07-04).
- tests/fixtures/stub-tools/{linux,windows}/lazygit.{sh,ps1}: stubs for seam.
- tests/test_lazygit_installer.sh + tests/test_lazygit_installer_pwsh.ps1:
  parity pair -- opt-in discovery, not-default, version-pin, optin-stub.
  RED: 2/4 pwsh FAIL pre-impl. GREEN: 4/4 pwsh PASS post-impl.
  Bash RED confirmed by code-analysis (no WSL). shellcheck CLEAN.

Closes #467

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

Install lazygit as an opt-in tool

2 participants