Skip to content

feat!: replace rsyncwrapper with direct child_process.spawn#209

Merged
easingthemes merged 8 commits intomainfrom
refactor/remove-rsyncwrapper
Apr 2, 2026
Merged

feat!: replace rsyncwrapper with direct child_process.spawn#209
easingthemes merged 8 commits intomainfrom
refactor/remove-rsyncwrapper

Conversation

@easingthemes
Copy link
Copy Markdown
Owner

@easingthemes easingthemes commented Apr 2, 2026

Summary

  • Remove outdated rsyncwrapper dependency (unmaintained, uses deprecated util._extend)
  • Replace with built-in buildRsyncCommand() + child_process.spawn implementation
  • Zero runtime dependencies — action now only uses Node.js built-ins
  • Preserves identical rsync command output: space escaping, --rsh SSH transport, --exclude patterns, arg deduplication

BREAKING CHANGE

rsyncwrapper dependency removed. The rsync command is now constructed and executed directly. External action API (inputs/outputs) is unchanged.

Test plan

  • Verify npm run build succeeds (lint + ncc bundle)
  • Verify dist/index.js contains no rsyncwrapper code
  • Run e2e deployment test to confirm rsync command works identically
  • Validate SSH key setup + remote script execution still works

easingthemes and others added 8 commits April 2, 2026 22:50
Remove the outdated rsyncwrapper dependency (unmaintained, uses
deprecated util._extend) and replace with a built-in buildRsyncCommand()
+ spawn implementation. Zero runtime dependencies.

BREAKING CHANGE: rsyncwrapper dependency removed, rsync command is now
constructed and executed directly via child_process.spawn.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- actions/checkout v4 → v6
- actions/setup-node v4 → v6
- cycjimmy/semantic-release-action v4 → v6 (pinned semantic_version: 24)
- github/codeql-action v3 → v4
- actions/stale v9 (already latest)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds update-major-tag.yml that triggers on any published release and
force-updates the major version tag (e.g., v6) to point to the latest
release (e.g., v6.0.1). Enables users to pin to @v6 instead of full
version numbers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add src/rsync.js as a drop-in replacement for rsyncwrapper, using
child_process.spawn directly. Only implements the options this project
uses. Single line change in rsyncCli.js to swap the import.

BREAKING CHANGE: rsyncwrapper dependency removed, rsync command is now
constructed and executed via a local module using child_process.spawn.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@easingthemes easingthemes merged commit 7a10983 into main Apr 2, 2026
2 checks passed
@easingthemes easingthemes deleted the refactor/remove-rsyncwrapper branch April 2, 2026 21:20
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