pnpm ਦੀ ਕੋਰ ਟੀਮ ਨੇ ਵਰਜ਼ਨ 12 ਦਾ ਇੱਕ ਅਲਫਾ ਬਿਲਡ (alpha build) ਜਾਰੀ ਕੀਤਾ ਹੈ ਜੋ ਇੱਕ ਨੈਟਿਵ Rust ਬਾਈਨਰੀ ਵਜੋਂ ਚੱਲਦਾ ਹੈ, ਜੋ ਕਿ ਮੌਜੂਦਾ Node-ਅਧਾਰਤ ਵਰਜ਼ਨ ਨਾਲੋਂ ਕਈ ਗੁਣਾ ਤੇਜ਼ ਇੰਸਟਾਲ ਹੋਣ ਦਾ ਵਾਅਦਾ ਕਰਦਾ ਹੈ। ਇਹ ਬਦਲਾਅ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ CI jobs ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਖਤਮ ਹੋ ਜਾਣਗੇ।

ਰੀ-ਰਾਈਟ (rewrite) ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ

pnpm ਪਹਿਲਾਂ ਹੀ content-addressable store ਅਤੇ ਇੱਕ ਸਖ਼ਤ node_modules ਲੇਆਉਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ npm ਅਤੇ Yarn ਤੋਂ ਆਪਣੇ ਆਪ ਨੂੰ ਵੱਖਰਾ ਕਰਦਾ ਹੈ। ਫਿਰ ਵੀ, ਹਰ ਕਮਾਂਡ ਅਜੇ ਵੀ ਇੱਕ Node.js ਪ੍ਰੋਸੈਸ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਕਿਸੇ ਵੀ ਫਾਈਲ ਕੰਮ ਦੇ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਨਿਸ਼ਚਿਤ ਸਟਾਰਟਅੱਪ ਸਮਾਂ ਲੱਗਦਾ ਹੈ। ਭਾਰੀ ਕੰਮ ਵਾਲੇ ਕੋਡ ਨੂੰ Rust ਵਿੱਚ ਬਦਲ ਕੇ, ਟੀਮ ਉਸ ਬੂਟਸਟ੍ਰੈਪ (bootstrap) ਪੜਾਅ ਨੂੰ ਖਤਮ ਕਰਦੀ ਹੈ ਅਤੇ Rust ਦੀ ਬਹੁਤ ਸਾਰੀਆਂ ਫਾਈਲ ਕਾਰਵਾਈਆਂ ਨੂੰ ਇੱਕੋ ਸਮੇਂ (parallel) ਚਲਾਉਣ ਦੀ ਯੋਗਤਾ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਸਿੰਗਲ JavaScript ਥ੍ਰੈਡ ਨਹੀਂ ਕਰ ਸਕਦਾ।

ਦਾਅਵੇ ਦੇ ਪਿੱਛੇ ਦੇ ਅੰਕੜੇ

pnpm ਟੀਮ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਬੈਂਚਮਾਰਕਸ (benchmarks) ਤਿੰਨ ਆਮ ਸਥਿਤੀਆਂ ਵਿੱਚ ਭਾਰੀ ਗਿਰਾਵਟ ਦਿਖਾਉਂਦੇ ਹਨ:

  • Warm install (ਦੁਬਾਰਾ ਚਲਾਉਣਾ): 381 ms ਤੋਂ 12 ms ਤੱਕ।
  • No-cache install: 460 ms ਤੋਂ 40 ms ਤੱਕ।
  • Clean install (ਪੂਰਾ dependency tree): 6.5 s ਤੋਂ 2.2 s ਤੱਕ।

Warm installs ਵਿੱਚ 30× ਸੁਧਾਰ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਤੇਜ਼ CI jobs ਅਤੇ ਡਿਵੈਲਪਰਾਂ ਲਈ ਤੇਜ਼ ਫੀਡਬੈਕ ਲੂਪ (feedback loops) ਵਿੱਚ ਬਦਲ ਜਾਂਦਾ ਹੈ।

ਕੀ ਉਹੀ ਰਹੇਗਾ

ਇਹ ਰੀ-ਰਾਈਟ ਇੱਕ ਪੋਰਟ (port) ਹੈ, ਰੀ-ਡਿਜ਼ਾਈਨ ਨਹੀਂ। ਸਾਰੇ ਮੌਜੂਦਾ ਫਲੈਗਸ (flags), lockfile ਫਾਰਮੈਟ, ਅਤੇ ਸਖ਼ਤ node_modules ਢਾਂਚਾ ਬਿਨਾਂ ਕਿਸੇ ਬਦਲਾਅ ਦੇ ਉਵੇਂ ਹੀ ਰਹਿਣਗੇ। ਪ੍ਰੋਜੈਕਟ ਪਹਿਲਾਂ ਵਾਂਗ ਹੀ pnpm install ਚਲਾਉਣਾ ਜਾਰੀ ਰੱਖ ਸਕਦੇ ਹਨ; ਇਕਲੌਤਾ ਦਿਖਾਈ ਦੇਣ ਵਾਲਾ ਅੰਤਰ ਸਿਰਫ਼ ਰਫ਼ਤਾਰ ਦਾ ਹੋਵੇਗਾ। ਕਿਉਂਕਿ ਪਬਲਿਕ API ਨਹੀਂ ਬਦਲਦਾ, ਇਸ ਲਈ ਮਾਈਗ੍ਰੇਸ਼ਨ (migration) ਪ੍ਰਕਿਰਿਆ ਬਿਨਾਂ ਕਿਸੇ ਮੁਸ਼ਕਲ ਦੇ ਹੋਣ ਦੀ ਉਮੀਦ ਹੈ।

ਇਸ ਨੂੰ ਹੁਣ ਕਿਵੇਂ ਅਜ਼ਮਾਇਆ ਜਾਵੇ

ਇਹ ਤਬਦੀਲੀ ਪੜਾਅਵਾਰ ਹੈ। ਮੌਜੂਦਾ v11 ਲਾਈਨ ਵਿੱਚ, ਡਿਵੈਲਪਰ “pacquet” backend ਫਲੈਗ ਨੂੰ ਇਨੇਬਲ ਕਰਕੇ ਪ੍ਰਯੋਗਿਕ (experimental) Rust backend ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹਨ। v12 ਵਿੱਚ, ਪੈਕੇਜਾਂ ਨੂੰ ਫੈਚ (fetch) ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਵਰਕਸਪੇਸ ਵਿੱਚ ਲਿੰਕ ਕਰਨ ਲਈ Rust ਇੰਜਣ ਡਿਫੌਲਟ ਬਣ ਜਾਵੇਗਾ। ਅਲਫਾ ਰਿਲੀਜ਼ next-12 ਟੈਗ ਦੇ ਅਧੀਨ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤੀ ਗਈ ਹੈ; ਇਸ ਨੂੰ ਅਜੇ ਤੱਕ ਪ੍ਰੋਡਕਸ਼ਨ ਲਈ ਵਰਤਣ ਦੀ ਸਿਫਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ, ਪਰ ਕੋਈ ਵੀ ਉਤਸੁਕ ਵਿਅਕਤੀ ਇੱਕ ਸਿੰਗਲ ਕਮਾਂਡ ਨਾਲ ਇਸ ਨੂੰ ਇੰਸਟਾਲ ਕਰਕੇ ਟੈਸਟਿੰਗ ਸ਼ੁਰੂ ਕਰ ਸਕਦਾ ਹੈ।

ਜੋਖਮ ਅਤੇ ਵਿਰੋਧੀ-ਬਿੰਦੂ

ਇੱਕ ਸਾਫ਼ API ਸਰਫੇਸ ਦੇ ਬਾਵਜੂਦ, ਇੱਕ ਅਲਫਾ ਬਾਈਨਰੀ ਵਿੱਚ ਆਮ ਚੇਤਾਵਨੀਆਂ ਹੁੰਦੀਆਂ ਹਨ: ਸੀਮਤ ਟੈਸਟਿੰਗ ਅਤੇ ਸੰਭਾਵੀ edge-case ਰਿਗਰੈਸ਼ਨ (regressions)।

ਵਿਆਪਕ ਰੁਝਾਨ

pnpm ਦਾ ਇਹ ਕਦਮ ਫਰੰਟ-ਐਂਡ ਟੂਲਿੰਗ (front-end tooling) ਵਿੱਚ ਵਧ ਰਹੇ ਰੁਝਾਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। Biome ਅਤੇ Oxc ਵਰਗੇ ਪ੍ਰੋਜੈਕਟਾਂ ਨੇ ਵੀ ਡਿਵੈਲਪਰ ਵਰਕਫਲੋ (workflows) ਵਿੱਚੋਂ ਮਿਲੀਸਕਿੰਡਾਂ ਨੂੰ ਘਟਾਉਣ ਲਈ ਆਪਣੇ ਕੋਰ ਕੰਪੋਨੈਂਟਸ ਨੂੰ ਕੰਪਾਈਲਡ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਲਿਖਿਆ ਹੈ।