Skip to content

Conversation

@ian-h-chamberlain
Copy link

@ian-h-chamberlain ian-h-chamberlain commented Jan 23, 2026

Closes #2701

Relates to deevus/zed-windows-builds#50 — the current packager for zed-nightly.

Since upstream Zed provides official preview builds, I think it seems reasonable to have them here (vs the unofficial zed-nightly builds that are currently in this bucket).

As far as I can tell, there is no easy way to install Zed preview versions via scoop currently, so I decided to add it myself.

Upstream still doesn't provide official nightly builds for download, so the current nightly packages may still be valuable to some users, but personally I'd prefer to get my builds from the original packager, which this change does.

Manifest is mostly copied from https://github.com/ScoopInstaller/Extras/blob/master/bucket/zed.json

  • 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 a prerelease package manifest for the Zed editor enabling automated installation and updates for x64 and ARM64.
    • Includes metadata, installer behavior, binary/shortcut entries, and automated update detection for prerelease tags.
    • Notes advise manual disabling of auto-update to avoid unintended installations.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 23, 2026

Walkthrough

Adds a new Scoop manifest bucket/zed-preview.json for the Zed editor prerelease, specifying metadata, architecture-specific downloads and hashes, installer/extract steps, a bin/shortcut, checkver using GitHub API with JSONPath/regex, and autoupdate rules.

Changes

Cohort / File(s) Summary
Zed Preview Manifest
bucket/zed-preview.json
New Scoop-like manifest for Zed prerelease: metadata (version, description, homepage, license), notes, 64-bit and arm64 architecture blocks with URLs/hashes, installer script (expand Inno archive, remove archive), bin and shortcuts, checkver (GitHub API + JSONPath + prerelease regex), and autoupdate entries.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

Suggested labels

review-needed

Suggested reviewers

  • z-Fng

Poem

🐰
A tiny manifest dropped from above,
Zed-preview wrapped in JSON love,
Checksums tucked in, architectures grand,
Install scripts ready, tidy and planned,
Hop—updates follow across the land. 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'zed-preview: Add version 0.221.0' directly describes the main change—adding a new zed-preview manifest file. However, the added file version is 0.221.2, not 0.221.0 as stated, creating a minor discrepancy. Verify and clarify the correct version number in the title. The summary indicates version 0.221.2, but the title claims 0.221.0.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The PR description includes the required issue reference (#2701), explains the rationale, and confirms both checklist items (conventional title and contributing guide read). It provides adequate context for the changes.
Linked Issues check ✅ Passed The changes add a zed-preview manifest with the required download URL pattern, version metadata, architecture blocks, and auto-update configuration, aligning with issue #2701 requirements for an official preview build package.
Out of Scope Changes check ✅ Passed The PR adds only a single manifest file (bucket/zed-preview.json) directly addressing issue #2701's request for zed-preview packaging. All changes are within scope and focused on this objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

Invalid manifests

  • zed-preview

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: 2

🤖 Fix all issues with AI agents
In `@bucket/zed-preview.json`:
- Around line 23-28: The shortcut target in the JSON has to match the executable
location: update the "shortcuts" entry that currently references "zed.exe" to
"bin\\zed.exe" so it aligns with the "bin" field; apply the same fix in the
other manifests mentioned (zed-nightly.json and zed-opengl-nightly.json) by
ensuring each shortcuts array entry points to "bin\\zed.exe".
- Around line 1-47: The shortcut target in the "shortcuts" array points to
"zed.exe" but the package "bin" entry is "bin\\zed.exe", so update the shortcut
target to match the installed executable path; modify the "shortcuts" entry
referencing "zed.exe" to "bin\\zed.exe" (ensure the string exactly matches the
"bin" value) so the shortcut launches the correct executable after installation.

Comment on lines +23 to +28
"bin": "bin\\zed.exe",
"shortcuts": [
[
"zed.exe",
"Zed"
]
Copy link

@coderabbitai coderabbitai bot Jan 23, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Explore bucket directory and examine the manifests
set -euo pipefail

# List files in bucket directory
echo "=== Files in bucket directory ==="
fd -a '\.json$' bucket | head -20

echo -e "\n=== Full content of zed-preview.json ==="
cat bucket/zed-preview.json

echo -e "\n=== Checking for existing zed.json ==="
if fd -a '^zed\.json$' bucket; then
  echo -e "\n=== Full content of zed.json ==="
  cat bucket/zed.json
else
  echo "zed.json not found in bucket"
fi

Repository: ScoopInstaller/Versions

Length of output: 3123


🏁 Script executed:

#!/bin/bash
# Search for manifests that have bin in subdirectory and check their shortcuts
set -euo pipefail

echo "=== Searching for manifests with bin in subdirectory ==="
rg '"bin":\s*"[^"]*\\' bucket/*.json | head -20

echo -e "\n=== Looking at a few examples to see shortcut patterns ==="
# Find a manifest with bin in subdirectory and show its bin/shortcuts
rg -A 5 '"bin":\s*"[^"]*\\' bucket/*.json | head -40

Repository: ScoopInstaller/Versions

Length of output: 3122


🏁 Script executed:

#!/bin/bash
# Verify more examples to confirm pattern
set -euo pipefail

echo "=== Check tomcat8 (simple bin case) ==="
rg -A 5 '"bin":\s*"bin' bucket/tomcat8.json | head -15

echo -e "\n=== Check stunnel-beta ==="
rg -A 5 '"bin":\s*"bin' bucket/stunnel-beta.json | head -15

Repository: ScoopInstaller/Versions

Length of output: 427


🏁 Script executed:

#!/bin/bash
# Check if tomcat8 and stunnel-beta have shortcuts field
set -euo pipefail

echo "=== Full tomcat8.json ==="
cat bucket/tomcat8.json | head -50

echo -e "\n=== Check stunnel-beta for shortcuts ==="
rg '"shortcuts"' bucket/stunnel-beta.json -A 5

Repository: ScoopInstaller/Versions

Length of output: 2018


Fix shortcut target path to match bin location.

The shortcut targets zed.exe at root, but bin points to bin\zed.exe. When both fields are present, the shortcut path must match the executable location. Change "zed.exe" to "bin\zed.exe" in the shortcuts array (also check zed-nightly.json and zed-opengl-nightly.json for the same issue).

🤖 Prompt for AI Agents
In `@bucket/zed-preview.json` around lines 23 - 28, The shortcut target in the
JSON has to match the executable location: update the "shortcuts" entry that
currently references "zed.exe" to "bin\\zed.exe" so it aligns with the "bin"
field; apply the same fix in the other manifests mentioned (zed-nightly.json and
zed-opengl-nightly.json) by ensuring each shortcuts array entry points to
"bin\\zed.exe".

Copy link
Author

@ian-h-chamberlain ian-h-chamberlain Jan 23, 2026

Choose a reason for hiding this comment

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

Resolved the other coderabbit issue as a duplicate.

I don't think this is an issue, the Extras/zed manifest looks exactly like this, and when I install from this manifest my shortcuts seem to work okay. Maybe a human reviewer can confirm whether these this is a real issue or just a bot being silly

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Try to fetch the Extras/zed manifest from GitHub
echo "=== Fetching Extras/zed manifest ==="
curl -sL "https://raw.githubusercontent.com/ScoopInstaller/Extras/master/bucket/zed.json" | jq .

echo -e "\n=== Check manifests in Versions with both bin and shortcuts ==="
# Find manifests that have both bin and shortcuts fields
for file in bucket/*.json; do
  if jq -e '.bin and .shortcuts' "$file" > /dev/null 2>&1; then
    echo "File: $file"
    jq '{bin: .bin, shortcuts: .shortcuts}' "$file"
    echo "---"
  fi
done | head -100

Length of output: 2927


@ian-h-chamberlain You're absolutely right, and I apologize for the confusion. My initial comment was incorrect.

I've confirmed that the Extras/zed manifest uses the exact same pattern:

  • "bin": "bin\\zed.exe"
  • "shortcuts": [["zed.exe", "Zed"]]

Looking at other manifests in the repository, I can see this is a common and correct pattern in Scoop. The bin and shortcuts fields serve different purposes:

  • bin specifies what executable(s) get added to PATH
  • shortcuts specifies what desktop/Start Menu shortcuts get created

Both reference files relative to $dir, but they don't need to match. In this case, the installer extracts zed.exe to the root of $dir, so the shortcut correctly references it at that location, while bin\zed.exe is separately added to PATH.

Your manifest is correct as-is. Thank you for pushing back on this! 👍


🧠 Learnings used
Learnt from: o-l-a-v
Repo: ScoopInstaller/Versions PR: 2564
File: bucket/olive-editor.json:24-24
Timestamp: 2025-11-07T10:15:21.033Z
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.

@ian-h-chamberlain
Copy link
Author

/verify

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

zed-preview

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

Check the full log for details.

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.

[Request]: zed-preview official build

1 participant