Automattic / Automattic/kandelo
perl-vfs: isolate direct-build staging per invocation
- Dominant language
- TypeScript
- Stars
- 31
- Forks
- 15
- Avg merge
- 11h 7m
- Merged PRs (30d)
- 80
Description
## Problem
packages/registry/perl-vfs/build-perl-vfs.sh stages every build through the checkout-local file packages/registry/perl-vfs/perl-vfs.vfs.zst before install_local_binary copies it to the resolver output directory.
Two direct or resolver builds in the same checkout can therefore overwrite or validate one another's stage file. Hosted matrix jobs normally have isolated checkouts, so this did not block the ABI 40 Perl workspace repair, but the package build contract should be correct independently of runner topology.
## Expected behavior
- Stage each Perl VFS image in a unique invocation-owned directory.
- Preserve deterministic final bytes and declared resolver output behavior.
- Clean the private stage on success, failure, and signals without masking the original exit status.
- Add a concurrency regression that runs two builds with distinct declared Perl runtime inputs and proves neither can consume the other output.
This is package build isolation only; it should not change Kandelo ABI or runtime semantics.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with packages/registry/perl-vfs/build-perl-vfs.sh and the install_local_binary path that copies the staged image to the resolver output directory. Trace how direct builds receive declared Perl runtime inputs, then inspect existing package-build tests or harnesses for the right place for a concurrent regression. Done means two builds cannot consume each other's stage, final bytes remain deterministic, and private staging is cleaned up on success, failure, and signals.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl, shell
- Domain
- build-system, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100