Skip to content

fix: #5420 — remove accidental committed vendor symlink to an absolute machine path - #5470

Merged
proggeramlug merged 1 commit into
mainfrom
fix/5420-vendor-symlink
Jun 19, 2026
Merged

proggeramlug merged 1 commit into
mainfrom
fix/5420-vendor-symlink

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Fixes #5420.

Problem

The repo-root vendor is a committed symlink pointing at /Users/amlug/projects/perry/perry/vendor — a specific developer's home directory — so it dangles on every other checkout:

$ ls -la vendor
vendor -> /Users/amlug/projects/perry/perry/vendor   # tracked, dangling everywhere else

It was added incidentally in 9107be1c (#4723, an unrelated async-generator change), not intentionally.

Why removal is the right fix

The root-level vendor/ is meant to be developer/CI-populated, never committed:

  • scripts/node_core_subset.pyvendor/nodejs, scripts/test262_subset.pyvendor/test262 (local clones)
  • .github/workflows/node-core-subset.yml git clones into vendor/nodejs at runtime (it never relied on the symlink — and a dangling symlink there can only get in the way)
  • .gitignore already contains a root-anchored /vendor/

So the intended shape is exactly option 3 from the issue (git-ignored + produced by a setup/CI step). The committed symlink simply predated the ignore rule, which is why it stayed tracked.

The other vendor/ references in the codebase (file:./vendor/bloom, vendor/lib, vendor/google-sign-in/...) are all user-project relative paths resolved at compile/publish time, not the perry repo root.

Change

git rm vendor — untrack/remove the broken symlink. No other change needed:

  • /vendor/ (leading-slash anchored) keeps a freshly-populated root vendor/ untracked and does not affect crates/perry-audio-miniaudio/vendor/ (real committed C sources — verified still tracked).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Minor directory reference adjustment with no functional impact or user-facing changes.

…ute machine path

The repo-root `vendor` was a committed symlink pointing at
`/Users/amlug/projects/perry/perry/vendor` — a specific developer's home
directory — so it dangles on every other checkout. It was added incidentally
in #4723 (an unrelated async-generator change), not on purpose.

The root-level `vendor/` is meant to be developer/CI-populated, never
committed: `scripts/node_core_subset.py` (`vendor/nodejs`) and
`scripts/test262_subset.py` (`vendor/test262`) expect local clones, and
`.github/workflows/node-core-subset.yml` `git clone`s into `vendor/nodejs` at
runtime. `/vendor/` is already in `.gitignore` (root-anchored), so the
intended shape is option 3 from the issue — git-ignored + produced by a setup
step. The committed symlink predated that ignore rule, which is why it stayed
tracked.

Fix: untrack/remove the broken symlink. The root-anchored `/vendor/` ignore
keeps a freshly-populated `vendor/` untracked, and the crate-level
`crates/perry-audio-miniaudio/vendor/` (real vendored C sources) is unaffected
by the leading-slash anchor. Removing a dangling symlink can only help — the
CI clone into `vendor/nodejs` is more reliable without a broken path in the
way.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 54a3ce3b-c577-4729-96f9-8ad585e1cd4a

📥 Commits

Reviewing files that changed from the base of the PR and between 2263894 and 1b4536a.

📒 Files selected for processing (1)
  • vendor
💤 Files with no reviewable changes (1)
  • vendor

📝 Walkthrough

Walkthrough

Removes a single committed vendor symlink that pointed to an absolute, machine-specific path (/Users/amlug/projects/perry/perry/vendor). This symlink was dangling on all checkouts other than the original author's machine.

Changes

Cohort / File(s) Summary
Remove broken vendor symlink
vendor
Untracks the committed absolute-path symlink that resolved to a non-existent path on all other machines.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

A symlink once pointed afar,
To a path beneath someone's star 🌟
No other could find it,
So we went and untracked it —
Now vendor/ won't break what you are! 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main change: removing the accidental committed vendor symlink pointing to an absolute machine path, which directly addresses issue #5420.
Description check ✅ Passed The PR description is comprehensive and well-structured, covering the problem, rationale for the fix, and change details. It follows the repository template structure with Summary, Changes, and Related issue sections.
Linked Issues check ✅ Passed The PR fully addresses issue #5420 by removing the committed symlink (implementing option 3 from the issue) and relies on existing .gitignore and CI workflows to populate vendor/ at runtime.
Out of Scope Changes check ✅ Passed No out-of-scope changes detected. The PR only removes the broken vendor symlink as required by issue #5420, with no additional modifications.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/5420-vendor-symlink

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

@proggeramlug
proggeramlug merged commit e32321a into main Jun 19, 2026
15 checks passed
@proggeramlug
proggeramlug deleted the fix/5420-vendor-symlink branch June 19, 2026 20:01
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.

Committed vendor symlink points to absolute machine-specific path (broken on every other checkout)

1 participant