Skip to content

Deprecate windows and upgrade version#54

Merged
JonoPrest merged 1 commit intomainfrom
jp/deprecate-windows
Feb 25, 2026
Merged

Deprecate windows and upgrade version#54
JonoPrest merged 1 commit intomainfrom
jp/deprecate-windows

Conversation

@JonoPrest
Copy link
Collaborator

@JonoPrest JonoPrest commented Feb 25, 2026

The windows tests etc are too flakey and I don't think we have any users of the hypersync client on windows. We don't support it on hyperindex anyhow.

Summary by CodeRabbit

  • Version Update

    • Bumped package version to 1.1.0
  • Removed Features

    • Windows platform support has been discontinued (x64 and ARM64 architectures)
    • Binary packages for Windows are no longer available
    • Distribution now limited to macOS and Linux platforms

@JonoPrest JonoPrest requested review from DZakh and JasoonS February 25, 2026 13:02
@coderabbitai
Copy link

coderabbitai bot commented Feb 25, 2026

📝 Walkthrough

Walkthrough

This PR removes Windows platform support from the hypersync-client-node package by eliminating Windows build targets from CI workflows, deleting Windows-specific npm packages, and bumping all remaining platform package versions from 1.0.1 to 1.1.0 alongside corresponding version check updates.

Changes

Cohort / File(s) Summary
Windows Package Removal
npm/win32-arm64-msvc/package.json, npm/win32-arm64-msvc/README.md, npm/win32-x64-msvc/package.json, npm/win32-x64-msvc/README.md
Deleted Windows-specific npm package manifests and documentation for ARM64 and x64 MSVC targets.
Platform Package Version Bumps
npm/darwin-arm64/package.json, npm/darwin-x64/package.json, npm/linux-arm64-gnu/package.json, npm/linux-x64-gnu/package.json, npm/linux-x64-musl/package.json
Updated version field from 1.0.1 to 1.1.0 in all Linux and macOS platform-specific packages.
Native Binding Version Updates
index.js
Updated all platform-specific require statements to expect native binding version 1.1.0 instead of 1.0.1 and updated corresponding error messages.
CI/CD and Root Configuration
.github/workflows/publish_to_npm.yaml, package.json
Removed Windows targets (x86_64-pc-windows-msvc and aarch64-pc-windows-msvc) from CI matrix; updated root package version to 1.1.0 and removed Windows from N-API targets.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • JasoonS

Poem

🐰 Windows support has flown away,
Only Unix systems stay and play,
Version bumps to one-point-one,
CI workflows cleaner, tidier, done!
Workflows simplified, rabbit's test complete! 🎯

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Deprecate windows and upgrade version' accurately summarizes the main changes: removing Windows support and bumping the package version from 1.0.1 to 1.1.0.
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.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch jp/deprecate-windows

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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.

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.

Caution

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

⚠️ Outside diff range comments (3)
.github/workflows/publish_to_npm.yaml (2)

277-283: ⚠️ Potential issue | 🟠 Major

test-macOS-binding is missing from publish.needs — macOS failures won't gate the release.

After renaming test-macOS-windows-bindingtest-macOS-binding, the job was not added back to the publish job's needs list. As a result, a macOS binding breakage can silently slip through and still produce a published package.

🐛 Proposed fix
  publish:
    name: Publish
    runs-on: ubuntu-latest
    needs:
+     - test-macOS-binding
      - test-linux-x64-gnu-binding
      - test-linux-x64-musl-binding
      - test-linux-aarch64-gnu-binding
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/publish_to_npm.yaml around lines 277 - 283, The publish
job's dependency list is missing the renamed macOS test job; update the publish
job (symbol: publish) to include the new dependency name test-macOS-binding in
its needs array so macOS CI failures will gate the release—add
"test-macOS-binding" alongside the existing entries under the publish job's
needs.

48-54: ⚠️ Potential issue | 🟡 Minor

Duplicate yarn set version 3 in aarch64-apple-darwin build step.

yarn set version 3 appears twice consecutively (lines 51–52) — one is a copy-paste artifact.

🔧 Proposed fix
          - host: macos-latest
            target: aarch64-apple-darwin
            build: |
              yarn set version 3
-             yarn set version 3
              yarn build --target aarch64-apple-darwin
              strip -x *.node
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/publish_to_npm.yaml around lines 48 - 54, In the
publish_to_npm workflow's aarch64 job (the block where target:
aarch64-apple-darwin and build: are defined) remove the duplicate command so
only a single "yarn set version 3" remains in the build script; update the build
block to have the sequence "yarn set version 3", "yarn build --target
aarch64-apple-darwin", "strip -x *.node" to eliminate the copy-paste artifact.
index.js (1)

106-175: ⚠️ Potential issue | 🟠 Major

Regenerate index.js from updated package.json — Windows paths are stale.

The Windows platform block (lines 106–175) currently exists in index.js, but Windows targets are no longer present in package.json's napi configuration (only Linux and macOS targets remain: aarch64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-musl, x86_64-unknown-linux-gnu, x86_64-apple-darwin). Since this file is auto-generated by NAPI-RS, it must be regenerated to reflect the updated napi targets. Run:

npm run artifacts

or

napi artifacts

to regenerate index.js with the current configuration. The Windows stubs will be removed, eliminating the dead code paths and ensuring the generated binding loader matches the published package targets.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@index.js` around lines 106 - 175, index.js still contains the old Windows
loading block (the branch checking process.platform === 'win32' and its
process.arch cases) which is stale because the package's napi targets no longer
include Windows; regenerate the auto-generated binding loader to remove these
dead Windows paths by running the artifact generation command (e.g., "npm run
artifacts" or "napi artifacts") so index.js is rebuilt to match the current
package.json napi configuration.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.github/workflows/publish_to_npm.yaml:
- Around line 277-283: The publish job's dependency list is missing the renamed
macOS test job; update the publish job (symbol: publish) to include the new
dependency name test-macOS-binding in its needs array so macOS CI failures will
gate the release—add "test-macOS-binding" alongside the existing entries under
the publish job's needs.
- Around line 48-54: In the publish_to_npm workflow's aarch64 job (the block
where target: aarch64-apple-darwin and build: are defined) remove the duplicate
command so only a single "yarn set version 3" remains in the build script;
update the build block to have the sequence "yarn set version 3", "yarn build
--target aarch64-apple-darwin", "strip -x *.node" to eliminate the copy-paste
artifact.

In `@index.js`:
- Around line 106-175: index.js still contains the old Windows loading block
(the branch checking process.platform === 'win32' and its process.arch cases)
which is stale because the package's napi targets no longer include Windows;
regenerate the auto-generated binding loader to remove these dead Windows paths
by running the artifact generation command (e.g., "npm run artifacts" or "napi
artifacts") so index.js is rebuilt to match the current package.json napi
configuration.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4bb903c and 74292d7.

📒 Files selected for processing (12)
  • .github/workflows/publish_to_npm.yaml
  • index.js
  • npm/darwin-arm64/package.json
  • npm/darwin-x64/package.json
  • npm/linux-arm64-gnu/package.json
  • npm/linux-x64-gnu/package.json
  • npm/linux-x64-musl/package.json
  • npm/win32-arm64-msvc/README.md
  • npm/win32-arm64-msvc/package.json
  • npm/win32-x64-msvc/README.md
  • npm/win32-x64-msvc/package.json
  • package.json
💤 Files with no reviewable changes (4)
  • npm/win32-x64-msvc/package.json
  • npm/win32-arm64-msvc/README.md
  • npm/win32-arm64-msvc/package.json
  • npm/win32-x64-msvc/README.md

@JonoPrest JonoPrest merged commit dcdab8f into main Feb 25, 2026
21 of 22 checks passed
JonoPrest added a commit that referenced this pull request Mar 9, 2026
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.

1 participant