chore(setup): use In-Memory Config During Prepack #2132
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Root Cause Analysis
The setup-repo scripts run:
npm i → pnpm package-lock-only → pnpm clean → pnpm install → pnpm prepack
During prepack, each package runs oclif manifest which accesses the config
Multiple processes trying to serialize/deserialize config simultaneously = corruption
This is a classic race condition issue in a monorepo environment where multiple packages are trying to access and modify the same configuration file simultaneously during the prepack phase.
Solution
In-Memory Config During Prepack:
No Temporary Files: During oclif manifest generation, the config will use pure in-memory storage (Map<string, any>).
No Cleanup Required: Since no files are created, there's no need for any cleanup.
Automatic Detection: Prepack mode is automatically detected via environment variables and process arguments.