Skip to content

olive-editor: Add version 0.2.0-nightly#2564

Open
o-l-a-v wants to merge 1 commit intoScoopInstaller:masterfrom
o-l-a-v:patch-1
Open

olive-editor: Add version 0.2.0-nightly#2564
o-l-a-v wants to merge 1 commit intoScoopInstaller:masterfrom
o-l-a-v:patch-1

Conversation

@o-l-a-v
Copy link

@o-l-a-v o-l-a-v commented Nov 7, 2025

Relates to:

Changes to manifest vs. what's in Extras:

  • Changed download links to GitHub as homepage is down
  • Fixed checkver and autoupdate logic and tried to make it more robust
  • Changed to using new portable version, two less files must be persisted
  • Fixed config.xml by adding minimum content for the app not to throw an error message at first start
  • Added vcredist2022 to suggest, delete the vcredist2022 installer included in the ZIP
  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

Summary by CodeRabbit

  • Chores
    • Added package manifest configuration for Olive Editor enabling automated distribution and updates for Windows 64-bit systems. Includes dependency specifications, installation procedures, and version management integration.

@coderabbitai
Copy link

coderabbitai bot commented Nov 7, 2025

Walkthrough

A new manifest file for Olive Editor is introduced to the bucket directory. The manifest defines a Windows 64-bit portable build configuration, including version detection from GitHub releases, auto-update logic, binary specification, shortcut mapping, persistent config file handling, and pre-install/post-install cleanup steps.

Changes

Cohort / File(s) Change Summary
New Manifest
bucket/olive-editor.json
New manifest file defining Olive Editor portable build with architecture-specific download URL, version checking from GitHub API, auto-update configuration, binary entry point, shortcut mapping, and pre-install/post-install lifecycle hooks

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify the GitHub API checkver regex pattern correctly extracts version and asset filename
  • Confirm the autoupdate URL construction logic properly substitutes tag and filename placeholders
  • Validate pre-install step logic for config.xml creation and vc_redist cleanup
  • Check that the binary path and shortcut mapping are accurate for the Olive Editor portable build

Suggested labels

review-needed

Suggested reviewers

  • z-Fng

Poem

🐰 A manifest hops into the bucket with care,
Olive Editor bundled with updater's flair,
GitHub releases checked with regex delight,
Config persists while cleanup runs right!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding Olive Editor version 0.2.0-nightly manifest to the bucket.
Description check ✅ Passed The PR description includes related issues, detailed changes versus the existing manifest, and confirms completion of both checklist items required by the template.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
Contributor

github-actions bot commented Nov 7, 2025

All changes look good.

Wait for review from human collaborators.

olive-editor

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

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 78ff299 and 39746c0.

📒 Files selected for processing (1)
  • bucket/olive-editor.json (1 hunks)
🔇 Additional comments (2)
bucket/olive-editor.json (2)

34-41: Checkver logic verified—code correctly targets prerelease versions, aligning with manifest.

The GitHub API confirms prerelease, tag_name, and assets fields exist. The filter .Where{$_.'prerelease'}[0] correctly selects prerelease releases (prerelease=true), which matches the manifest version 0.2.0-nightly. Property accessor syntax works correctly with the API response, and the Windows portable asset name pattern matches existing releases. No action needed.


1-49: Verify the SHA256 checksum by downloading the file or checking with the upstream project.

URL accessibility confirmed ✓—the file exists at the GitHub release and the manifest URL matches exactly. The autoupdate template is correct and will reconstruct valid URLs using captured tag and filename. The manifest is complete with all required and recommended fields, and handles config creation, persistence, and updates properly.

However, the SHA256 checksum (b0ed9c8291093c29b01090ec49198af001c9d881c35f49ccf0f5030df994c4a5) cannot be verified programmatically since GitHub's release API does not include asset hashes. Manually verify this hash matches the actual file or contact the Olive Editor project to confirm.

" $null = Out-File -Append -FilePath $ConfigFile -Encoding 'UTF8' -InputObject $_",
" }",
"}",
"$null = Remove-Item -Path \"$dir\\vc_redist.x64.exe\""
Copy link

@coderabbitai coderabbitai bot Nov 7, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Path escaping issue and missing error handling in pre_install.

The Remove-Item command uses a double backslash in the path string ("$dir\\vc_redist.x64.exe"), which is incorrect. Additionally, if the file doesn't exist, the command will fail and block installation.

Apply this diff to fix both issues:

-        "$null = Remove-Item -Path \"$dir\\vc_redist.x64.exe\""
+        "$null = Remove-Item -Path \"$dir\vc_redist.x64.exe\" -ErrorAction SilentlyContinue"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"$null = Remove-Item -Path \"$dir\\vc_redist.x64.exe\""
"$null = Remove-Item -Path \"$dir\\vc_redist.x64.exe\" -ErrorAction SilentlyContinue"
🤖 Prompt for AI Agents
In bucket/olive-editor.json around line 24, the Remove-Item call uses an
incorrect escaped path string and lacks error handling; change it to build the
path safely (use Join-Path or concatenate with a single backslash) and avoid
failing when the file is absent by either checking Test-Path before removal or
passing -ErrorAction SilentlyContinue to Remove-Item so the pre_install step
does not block if the file doesn't exist.

Copy link
Author

Choose a reason for hiding this comment

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

Nah, it's correct. Backslash is the path separator on Windows. It must be escaped inside JSON with a backslash.

Copy link

Choose a reason for hiding this comment

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

@o-l-a-v, you're absolutely right, and I apologize for the confusion!

You are correct that in JSON, the backslash must be escaped, so \\ in the JSON string becomes a single \ after parsing. The PowerShell code will receive "$dir\vc_redist.x64.exe" which is the correct path format for Windows.

My original comment was incorrect about the path escaping. The -ErrorAction SilentlyContinue suggestion could still help if the file might be absent in some versions, but if you're confident the file always exists in this portable distribution, the current code is fine.

Thank you for the correction!


✏️ Learnings added
Learnt from: o-l-a-v
Repo: ScoopInstaller/Versions PR: 2564
File: bucket/olive-editor.json:24-24
Timestamp: 2025-11-07T10:15:21.019Z
Learning: In Scoop manifest JSON files, PowerShell commands in arrays like `pre_install` require backslashes to be escaped as `\\` in the JSON. After JSON parsing, `"$dir\\file.exe"` correctly becomes `$dir\file.exe` in PowerShell. This is proper JSON escaping, not an error.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant