pnpm-lock.yaml का उपयोग करते हैं। प्रकाशित OpenClaw npm
पैकेज npm-shrinkwrap.json, npm की publishable dependency lockfile, का उपयोग करते हैं, ताकि
पैकेज इंस्टॉल रिलीज़ के दौरान समीक्षा किए गए dependency graph का उपयोग करें।
आसान संस्करण
Shrinkwrap उस dependency tree की रसीद है जो npm पैकेज के साथ शिप होती है। यह npm को बताता है कि कौन से सटीक transitive package versions इंस्टॉल करने हैं। OpenClaw रिलीज़ के लिए, इसका मतलब है:- प्रकाशित पैकेज इंस्टॉल समय पर npm से नया dependency graph बनाने को नहीं कहता;
- dependency बदलावों की समीक्षा आसान हो जाती है क्योंकि वे lockfile में दिखाई देते हैं;
- रिलीज़ सत्यापन उसी graph का परीक्षण कर सकता है जिसे उपयोगकर्ता इंस्टॉल करेंगे;
- प्रकाशित करने से पहले package-size या native-dependency आश्चर्य पहचानना आसान होता है।
openclaw security audit, package
provenance, या install smoke tests की जगह नहीं लेता।
संक्षिप्त मानसिक मॉडल:
| फ़ाइल | जहाँ यह मायने रखती है | इसका अर्थ |
|---|---|---|
pnpm-lock.yaml | OpenClaw स्रोत checkout | Maintainer dependency graph |
npm-shrinkwrap.json | प्रकाशित npm पैकेज | उपयोगकर्ताओं के लिए npm install graph |
package-lock.json | स्थानीय npm ऐप्स | OpenClaw publish contract नहीं |
OpenClaw इसका उपयोग क्यों करता है
OpenClaw एक Gateway, Plugin host, model router, और agent runtime है। एक default install startup time, disk use, native package downloads, और supply-chain exposure को प्रभावित कर सकता है। Shrinkwrap रिलीज़ समीक्षा को एक स्थिर सीमा देता है:- reviewers transitive dependency movement देख सकते हैं;
- package validators अनपेक्षित lockfile drift को अस्वीकार कर सकते हैं;
- package acceptance उस graph के साथ installs का परीक्षण कर सकता है जो शिप होगा;
- plugin packages root package पर plugin-only dependencies का स्वामित्व रखने के बजाय अपना locked dependency graph साथ ले जा सकते हैं।
तकनीकी विवरण
rootopenclaw npm package और OpenClaw-स्वामित्व वाले npm plugin packages प्रकाशित होते समय
npm-shrinkwrap.json शामिल करते हैं। उपयुक्त OpenClaw-स्वामित्व वाले plugin
packages स्पष्ट bundledDependencies के साथ भी प्रकाशित हो सकते हैं, ताकि उनकी runtime
dependency files install-time resolution पर ही निर्भर रहने के बजाय plugin tarball में साथ लाई जाएँ।
सीमा को इस तरह बनाए रखें:
pnpm-lock.yaml में मौजूद नहीं हैं। इससे
pnpm dependency age, override, और patch-review boundary अक्षुण्ण रहती है।
root package को plugin packages छुए बिना जानबूझकर refresh करते समय ही root-only commands का उपयोग करें:
pnpm-lock.yamlnpm-shrinkwrap.json- bundled plugin dependency payloads
- कोई भी
package-lock.jsondiff
package-lock.json को अस्वीकार करते हैं।
प्रकाशित root package का निरीक्षण करने के लिए: