Skip to content

Conversation

@matiasdaloia
Copy link
Collaborator

@matiasdaloia matiasdaloia commented Nov 4, 2025

Summary by CodeRabbit

  • New Features

    • Added comprehensive uninstall instructions across platforms in documentation.
  • Bug Fixes

    • Streamlined installation scripts for Linux, macOS, and Windows with improved automation and reduced user prompts.
    • Consolidated macOS installation guidance into primary documentation.
    • Simplified WebView2 Runtime installation to automatic process on Windows.
  • Documentation

    • Updated installation references and added uninstalling guidance.
    • Released version 0.9.2.

@matiasdaloia matiasdaloia self-assigned this Nov 4, 2025
@matiasdaloia matiasdaloia added the enhancement New feature or request label Nov 4, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 4, 2025

Walkthrough

This PR consolidates installation documentation into INSTALLATION.md, adds uninstalling instructions across platforms, and streamlines installation scripts by removing interactive prompts and introducing centralized sudo handling via a new setup_sudo() function in the common library.

Changes

Cohort / File(s) Summary
Documentation consolidation
CHANGELOG.md, INSTALLATION.md, README.md
Added version 0.9.2 changelog entry. Consolidated macOS installation guidance into INSTALLATION.md with comprehensive uninstalling sections (macOS, Windows, Linux). Updated README to reference INSTALLATION.md and added Uninstalling subsection.
Removed platform-specific documentation
INSTALL_MACOS.md
Removed macOS-specific installation guide (content migrated to INSTALLATION.md).
Installation scripts — simplification
scripts/install-linux.sh, scripts/install-macos.sh, scripts/install-windows.ps1
Removed all interactive prompts for dependencies and desktop entries. Replaced conditional flows with single, direct installation paths. Unified sudo handling via $SUDO variable. macOS script now proceeds unconditionally with direct DMG installation (removed Homebrew path). Windows script auto-installs WebView2 Runtime without user confirmation.
Common library — sudo abstraction
scripts/lib/common.sh
Added new public function setup_sudo() for centralized privilege elevation. Modified confirm() to use defaults in non-interactive mode. Simplified check_permissions() to be informational. Updated function exports to include setup_sudo.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Focus areas:
    • Verify sudo handling logic in setup_sudo() and its integration across all three platform-specific scripts
    • Confirm removal of interactive prompts doesn't break expected user workflows (dependency installation, WebView2 setup)
    • Validate that the consolidated installation flow works on macOS without Homebrew option and Linux without desktop entry creation
    • Check that non-interactive confirm() changes in common.sh don't inadvertently skip critical checks

Possibly related PRs

Suggested labels

documentation

Poem

🐰 One manual grew, now wisely split in two,
With uninstall steps fresh and platform-wide view!
No more "press enter" — straight forward we go,
Sudo abstraction makes privileges flow.
From Homebrew tangles, we've neatly broke free! 🎉

Pre-merge checks and finishing touches

✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: add uninstall instructions' accurately describes the primary change: adding comprehensive uninstall documentation to INSTALLATION.md across multiple platforms.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/mdaloia/install-scripts-remove-interactive-mode

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1431494 and 2017419.

📒 Files selected for processing (8)
  • CHANGELOG.md (2 hunks)
  • INSTALLATION.md (2 hunks)
  • INSTALL_MACOS.md (0 hunks)
  • README.md (2 hunks)
  • scripts/install-linux.sh (4 hunks)
  • scripts/install-macos.sh (5 hunks)
  • scripts/install-windows.ps1 (1 hunks)
  • scripts/lib/common.sh (4 hunks)
💤 Files with no reviewable changes (1)
  • INSTALL_MACOS.md
🧰 Additional context used
🧬 Code graph analysis (3)
scripts/lib/common.sh (1)
scripts/install.sh (2)
  • log_error (27-29)
  • abort (31-34)
scripts/install-macos.sh (1)
scripts/lib/common.sh (2)
  • log_info (15-17)
  • setup_sudo (84-103)
scripts/install-linux.sh (1)
scripts/lib/common.sh (3)
  • log_warn (19-21)
  • log_info (15-17)
  • setup_sudo (84-103)
🪛 Shellcheck (0.11.0)
scripts/lib/common.sh

[warning] 100-100: SUDO appears unused. Verify use (or export if used externally).

(SC2034)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (13)
scripts/install-windows.ps1 (1)

211-235: LGTM! Non-interactive WebView2 installation.

The automatic WebView2 installation flow is well-implemented with clear informational messages and appropriate error handling. The warning message on failure helps users understand why the application might not work.

scripts/install-linux.sh (2)

46-97: LGTM! Centralized privilege elevation for dependencies.

The consistent use of $SUDO across all package managers is clean and maintainable. The message change to "Dependencies check complete" is more accurate since some dependencies may not be available on all systems.


100-157: Installation flow is clean and non-interactive.

The setup_sudo() call at the beginning properly initializes privilege elevation for subsequent operations. The streamlined, non-interactive flow aligns well with the PR objectives.

scripts/lib/common.sh (3)

82-103: Excellent centralized privilege elevation implementation.

The setup_sudo() function is well-designed with proper root detection, sudo availability checks, and clear error messages. The logic correctly handles both privileged and unprivileged execution contexts.

Note on static analysis warning: The shellcheck warning about $SUDO being unused is a false positive. The variable is exported (line 268) and used by scripts that source this library (e.g., install-linux.sh, install-macos.sh).


212-222: Appropriate deprecation of permission checking.

The update to check_permissions() correctly reflects its new informational role, with setup_sudo() handling actual privilege elevation. Using log_debug is appropriate since this is now advisory.


192-209: No internal code depends on interactive confirm() behavior.

The codebase contains no calls to the confirm() function. The function is defined in scripts/lib/common.sh (lines 192-209) and exported (line 270), but search across the codebase reveals no invocations of it. The change to always return the default value will not break any internal code.

However, since the function is exported, external scripts or child processes may potentially call it. The documented comments indicate this behavioral change is intentional for non-interactive curl | bash installations and the function signature is preserved for backward compatibility.

scripts/install-macos.sh (2)

32-40: Good placement of privilege elevation setup.

Calling setup_sudo() early in the installation flow ensures $SUDO is properly configured before any privileged operations. The styled header improves user experience.


95-130: Consistent privilege elevation across all operations.

All privileged operations correctly use the $SUDO variable, ensuring consistent behavior whether running as root or using sudo. The pattern is clean and maintainable.

CHANGELOG.md (1)

10-16: Changelog entry is well-formatted and accurate.

The version 0.9.2 entry correctly documents the addition of uninstall instructions and installation script fixes. It follows Keep a Changelog format and aligns with the PR changes.

README.md (1)

66-66: Documentation links properly updated.

The consolidation of macOS installation documentation into INSTALLATION.md and the addition of the Uninstalling section improve user experience. The link updates are consistent with the broader documentation reorganization.

Also applies to: 99-101

INSTALLATION.md (3)

56-56: Table of Contents correctly updated.

The Uninstalling section is properly added to the TOC with appropriate anchor linking.


274-302: macOS uninstall instructions are comprehensive and accurate.

The instructions properly cover both Homebrew and manual installations, with correct commands for removing all components. The optional config cleanup is appropriately documented.


304-372: Windows and Linux uninstall instructions are thorough.

Both platforms have comprehensive removal steps covering all installed components. The dual methods for Windows PATH removal (GUI and PowerShell) cater to different user preferences. The warning about not removing shared system dependencies on Linux is important and well-placed.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

SCANOSS SCAN Completed 🚀

  • Detected components: 3
  • Undeclared components: 0
  • Declared components: 3
  • Detected files: 180
  • Detected files undeclared: 0
  • Detected files declared: 180
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

SCANOSS SCAN Completed 🚀

  • Detected components: 3
  • Undeclared components: 0
  • Declared components: 3
  • Detected files: 182
  • Detected files undeclared: 0
  • Detected files declared: 182
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

@matiasdaloia matiasdaloia merged commit e0695f6 into main Nov 4, 2025
5 of 6 checks passed
@matiasdaloia matiasdaloia deleted the fix/mdaloia/install-scripts-remove-interactive-mode branch November 4, 2025 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants