Skip to content

Conversation

@sosukesuzuki
Copy link
Member

What does this PR do?

Attempt to fix stack precommit crash on Windows

oven-sh/WebKit#128

How did you verify your code works?

@robobun
Copy link
Collaborator

robobun commented Jan 8, 2026

Updated 6:01 PM PT - Jan 8th, 2026

@sosukesuzuki, your commit b7d5d33 has 5 failures in Build #34331 (All Failures):


🧪   To try this PR locally:

bunx bun-pr 25891

That installs a local version of the PR into your bun-25891 executable, so you can run:

bun-25891 --bun

@sosukesuzuki sosukesuzuki marked this pull request as ready for review January 9, 2026 01:04
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 9, 2026

Walkthrough

Updates the default WebKit version in CMake configuration from commit hash 863778130931e0081a688f48e8479b8ee61b9507 to 1d0216219a3c52cb85195f48f19ba7d5db747ff7. This default is used when WEBKIT_VERSION is not explicitly set during build configuration.

Changes

Cohort / File(s) Summary
WebKit version configuration
cmake/tools/SetupWebKit.cmake
Updated default WEBKIT_VERSION to new commit hash; affects version prefix and downstream WebKit download logic

Possibly related PRs

Suggested reviewers

  • Jarred-Sumner
  • dylan-conway
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title describes fixing a crash on Windows, which aligns with the PR objective of fixing a stack precommit crash on Windows.
Description check ✅ Passed The description includes both required template sections but lacks specific details about how the code was verified to work.

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


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

Copy link
Contributor

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
cmake/tools/SetupWebKit.cmake (1)

1-6: Consider using a CACHE STRING for WEBKIT_VERSION instead of option() (BOOL) to avoid surprising -DWEBKIT_VERSION=<hash> behavior.
This is configuration hygiene and makes the CMake cache/UI reflect the actual intent (a commit hash string).

Proposed change
-option(WEBKIT_VERSION "The version of WebKit to use")
+set(WEBKIT_VERSION "" CACHE STRING "The version of WebKit to use (e.g. a commit hash)")
 option(WEBKIT_LOCAL "If a local version of WebKit should be used instead of downloading")

 if(NOT WEBKIT_VERSION)
   set(WEBKIT_VERSION 1d0216219a3c52cb85195f48f19ba7d5db747ff7)
 endif()
🤖 Fix all issues with AI agents
In @cmake/tools/SetupWebKit.cmake:
- Around line 4-6: The WEBKIT_VERSION bump in SetupWebKit.cmake references
release autobuild-1d0216219a3c52cb85195f48f19ba7d5db747ff7 but the Windows ARM64
asset (bun-webkit-windows-arm64.tar.gz) is missing; either publish that asset to
the release or update the build/configuration to explicitly skip Windows ARM64.
Locate the WEBKIT_VERSION usage in SetupWebKit.cmake and: 1) if Windows ARM64 is
supported, ensure the release contains bun-webkit-windows-arm64.tar.gz and
update any download lists to include it; or 2) if not supported, add/adjust
platform filtering logic and documentation to exclude windows-arm64 (and make
any CI/build scripts that enumerate artifacts skip that platform). Also run or
request a macOS aarch64 integration test
(test/integration/next-pages/test/dev-server.test.ts) against this commit before
merging to confirm no regressions.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fbf47d0 and b7d5d33.

📒 Files selected for processing (1)
  • cmake/tools/SetupWebKit.cmake

Comment on lines 4 to 6
if(NOT WEBKIT_VERSION)
set(WEBKIT_VERSION 863778130931e0081a688f48e8479b8ee61b9507)
set(WEBKIT_VERSION 1d0216219a3c52cb85195f48f19ba7d5db747ff7)
endif()
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

WEBKIT_VERSION="1d0216219a3c52cb85195f48f19ba7d5db747ff7"
TAG="autobuild-${WEBKIT_VERSION}"

# 1) Check if the tag exists and list asset names
echo "=== Checking release tag: ${TAG} ==="
gh api "repos/oven-sh/WebKit/releases/tags/${TAG}" --jq '
  "tag=\(.tag_name)\nassets=\n" + (.assets | sort_by(.name) | map(" - " + .name) | join("\n"))
' 2>&1 || {
  echo "ERROR: Unable to fetch release info. Tag may not exist or API call failed."
  exit 1
}

# 2) Quick sanity check: ensure at least the "base" triplet assets exist.
echo ""
echo "=== Checking for expected assets ==="
EXPECTED=(
  "bun-webkit-windows-amd64.tar.gz"
  "bun-webkit-windows-arm64.tar.gz"
  "bun-webkit-macos-amd64.tar.gz"
  "bun-webkit-macos-arm64.tar.gz"
  "bun-webkit-linux-amd64.tar.gz"
  "bun-webkit-linux-arm64.tar.gz"
)
ASSETS="$(gh api "repos/oven-sh/WebKit/releases/tags/${TAG}" --jq '.assets[].name' 2>&1 || echo "")"

if [ -z "$ASSETS" ]; then
  echo "ERROR: Could not retrieve asset list."
  exit 1
fi

missing=0
for e in "${EXPECTED[@]}"; do
  if echo "$ASSETS" | grep -qxF "$e"; then
    echo "✓ Found: $e"
  else
    echo "✗ MISSING: $e"
    missing=$((missing+1))
  fi
done

if [ $missing -gt 0 ]; then
  echo ""
  echo "WARNING: $missing expected assets are missing from the release."
  exit 1
else
  echo ""
  echo "SUCCESS: All expected assets are present."
  exit 0
fi

Repository: oven-sh/bun

Length of output: 1466


Verify Windows ARM64 asset availability and update release or build configuration.

The release autobuild-1d0216219a3c52cb85195f48f19ba7d5db747ff7 exists, but bun-webkit-windows-arm64.tar.gz is missing while Linux and macOS include both amd64 and arm64 variants. If Windows ARM64 is a supported build target, this will break downloads. Either publish the missing asset to the release or clarify in the build configuration that Windows ARM64 is not supported and adjust accordingly.

Also investigate whether the reported macOS aarch64 integration test failure (test/integration/next-pages/test/dev-server.test.ts) correlates with this WebKit bump; consider testing this commit on macOS aarch64 runners before merge.

🤖 Prompt for AI Agents
In @cmake/tools/SetupWebKit.cmake around lines 4 - 6, The WEBKIT_VERSION bump in
SetupWebKit.cmake references release
autobuild-1d0216219a3c52cb85195f48f19ba7d5db747ff7 but the Windows ARM64 asset
(bun-webkit-windows-arm64.tar.gz) is missing; either publish that asset to the
release or update the build/configuration to explicitly skip Windows ARM64.
Locate the WEBKIT_VERSION usage in SetupWebKit.cmake and: 1) if Windows ARM64 is
supported, ensure the release contains bun-webkit-windows-arm64.tar.gz and
update any download lists to include it; or 2) if not supported, add/adjust
platform filtering logic and documentation to exclude windows-arm64 (and make
any CI/build scripts that enumerate artifacts skip that platform). Also run or
request a macOS aarch64 integration test
(test/integration/next-pages/test/dev-server.test.ts) against this commit before
merging to confirm no regressions.

@Jarred-Sumner Jarred-Sumner merged commit 3842a5e into main Jan 9, 2026
52 of 55 checks passed
@Jarred-Sumner Jarred-Sumner deleted the fix-windows-stack-precommit-crash branch January 9, 2026 02:12
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.

4 participants