Skip to content

Conversation

@matiasdaloia
Copy link
Collaborator

@matiasdaloia matiasdaloia commented Nov 4, 2025

Summary by CodeRabbit

  • New Features

    • Installation scripts now support non-interactive mode, enabling automated deployments without user interaction.
  • Bug Fixes

    • Resolved installation script errors affecting macOS and Linux platforms.
    • Fixed DMG installer behavior and release packaging.
    • Improved input handling in the installation process.

@matiasdaloia matiasdaloia self-assigned this Nov 4, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 4, 2025

Warning

Rate limit exceeded

@matiasdaloia has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 0 minutes and 50 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 0fed080 and dd32ceb.

📒 Files selected for processing (5)
  • .github/workflows/release.yml (7 hunks)
  • CHANGELOG.md (2 hunks)
  • scripts/install-linux.sh (1 hunks)
  • scripts/install-macos.sh (2 hunks)
  • scripts/lib/common.sh (1 hunks)

Walkthrough

The release workflow introduces centralized versioning using APP_NAME and APP_VERSION environment variables, replacing direct git tag queries across all packaging steps. Installation scripts add non-interactive mode detection to use defaults instead of prompting. The confirm function in common.sh now supports non-interactive execution by reading from /dev/tty or using defaults.

Changes

Cohort / File(s) Summary
Release workflow versioning
.github/workflows/release.yml
Introduces APP_NAME and APP_VERSION environment variables; replaces inline git tag retrieval across macOS DMG creation, Windows, Linux, and Homebrew Cask packaging steps. Updates DMG naming, signing paths, and artifact references to use centralized APP_VERSION variable.
Non-interactive installation support
scripts/install-linux.sh, scripts/install-macos.sh
Adds detection for non-interactive mode via stdin TTY check; logs informational messages when running without a terminal. MacOS script redirects user input to /dev/tty for choice prompts.
Interactive prompt handling
scripts/lib/common.sh
Modifies confirm() function to detect non-interactive mode; uses default value without prompting when stdin is not a TTY. Reads from /dev/tty in interactive mode with fallback to default; adjusts prompt display to show [Y/n] or [y/N] based on default value.
Changelog update
CHANGELOG.md
Adds new version [0.9.1] dated 2025-11-04 with entries for installation script and DMG installer fixes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • scripts/lib/common.sh — The confirm() function logic changes require careful verification of non-interactive detection, /dev/tty fallback behavior, prompt display logic, and edge cases where /dev/tty is unavailable.
  • .github/workflows/release.yml — Variable substitution consistency across multiple step templates (DMG, Windows, Linux, Cask) should be verified to ensure all git tag references are properly replaced.
  • scripts/install-*.sh — Non-interactive mode detection and the stdin TTY check behavior in both scripts should be cross-verified for consistency.

Poem

🐰 With versions now centered, no more scattered tags,
APP_VERSION flows through each platform's bags!
Non-interactive runs? We handle with grace—
/dev/tty reads input from its rightful place,
Release automation hops forward with pace! 🚀

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title mentions 'permissions windows install script' but the changeset includes substantial modifications to release workflow automation, non-interactive mode support across multiple install scripts, and changelog updates. The actual main changes are centralized versioning in the release workflow and non-interactive installation support, not just Windows permissions. Update the title to accurately reflect the primary changes, such as 'chore: add non-interactive mode support and centralize versioning in release workflow' or similar, which better captures the scope of changes across multiple files.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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: 186
  • Detected files undeclared: 0
  • Detected files declared: 186
  • 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: 183
  • Detected files undeclared: 0
  • Detected files declared: 183
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/release.yml (1)

98-99: DMG symlink addition requires error handling.

The ln -s command creates a symlink without checking if it already exists or if the command succeeds. If a directory named Applications already exists in dmg_contents/, or if permissions prevent symlink creation, the DMG will be created without the symlink, but no error will be raised.

Consider adding error handling or using -f flag to overwrite if needed:

- ln -s /Applications dmg_contents/Applications
+ ln -sf /Applications dmg_contents/Applications || log_warn "Failed to create Applications symlink"

However, verify that this symlink behavior aligns with create-dmg tool expectations.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c325266 and e5cd53e.

📒 Files selected for processing (4)
  • .github/workflows/release.yml (1 hunks)
  • scripts/install-linux.sh (1 hunks)
  • scripts/install-macos.sh (2 hunks)
  • scripts/lib/common.sh (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
scripts/install-macos.sh (2)
scripts/lib/common.sh (1)
  • log_info (15-17)
scripts/install.sh (1)
  • log_info (19-21)
scripts/install-linux.sh (2)
scripts/lib/common.sh (1)
  • log_info (15-17)
scripts/install.sh (1)
  • log_info (19-21)
⏰ 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 (4)
scripts/install-linux.sh (1)

144-148: Non-interactive mode detection is well-placed and clear.

This check properly detects piped execution and logs appropriately to stderr. The integration with the updated confirm() function in common.sh ensures user prompts will use defaults without blocking.

scripts/lib/common.sh (1)

172-194: Non-interactive mode handling in confirm() is well-designed.

The implementation properly handles three scenarios:

  1. Non-interactive (piped stdin) → uses default without prompting
  2. Interactive with /dev/tty available → reads from terminal, allowing prompts even with redirected stdin
  3. Interactive without /dev/tty → gracefully falls back to default

The prompt format clearly indicates the default option ([Y/n] vs [y/N]), and the response normalization at line 193 correctly treats empty input as accepting the default. This integration with the installer scripts' non-interactive detection creates a cohesive flow.

scripts/install-macos.sh (2)

238-240: Non-interactive default to Homebrew is a reasonable UX choice.

The script properly detects non-interactive execution and defaults to Homebrew installation, which is simpler and more suitable for automated/CI environments. The logging is consistent with the Linux installer. However, ensure this behavior is documented for users who pipe the script but want direct installation.


259-259: Correct use of /dev/tty for interactive user input.

Redirecting the read command to /dev/tty ensures the script can capture terminal input even when stdin is redirected (e.g., from a pipe). This is the correct idiom and prevents the piped script content from being consumed as user input.

@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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5cd53e and 0879a24.

📒 Files selected for processing (1)
  • .github/workflows/release.yml (7 hunks)
⏰ 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 (1)
.github/workflows/release.yml (1)

101-108: DMG creation references will fail due to APP_VERSION issue.

The DMG volume naming and artifact path reference ${{ env.APP_VERSION }} (line 108), which is dependent on the critical issue identified above. Once APP_VERSION is fixed, this refactoring looks good—it improves maintainability by centralizing version references.

@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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0879a24 and 0fed080.

📒 Files selected for processing (1)
  • CHANGELOG.md (2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
CHANGELOG.md

43-43: Multiple headings with the same content

(MD024, no-duplicate-heading)

⏰ 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). (2)
  • GitHub Check: unit_tests
  • GitHub Check: integration-tests
🔇 Additional comments (2)
CHANGELOG.md (2)

38-42: ✓ [0.9.1] entry structure and content are correct.

The new version entry for [0.9.1] follows the Keep a Changelog format properly, with correct date (2025-11-04) and a concise summary of the fixes. The placement above [0.9.0] is appropriate. Once the duplicate section is removed, this entry will be valid.


197-197: ✓ Changelog link correctly added.

The comparison link for [0.9.1] is properly formatted and points to the correct range (v0.9.0...v0.9.1).

@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: 184
  • Detected files undeclared: 0
  • Detected files declared: 184
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

fix: prevent installation scripts from
   hanging when piped from curl

fix: macos dmg installer

fix: macos dmg installer

chore: update changelog

fix: app version env variable in release workflow

chore: update changelog
@matiasdaloia matiasdaloia force-pushed the chore/mdaloia/add-execution-permissions-installation-scripts branch from d4d28aa to dd32ceb Compare November 4, 2025 10:20
@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: 181
  • Detected files undeclared: 0
  • Detected files declared: 181
  • 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: 177
  • Detected files undeclared: 0
  • Detected files declared: 177
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

@matiasdaloia matiasdaloia merged commit 27f0dc4 into main Nov 4, 2025
6 checks passed
@matiasdaloia matiasdaloia deleted the chore/mdaloia/add-execution-permissions-installation-scripts branch November 4, 2025 10:24
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.

2 participants