Skip to content

Releases: pnpm/pnpm

v8.10.4

13 Nov 15:18
v8.10.4
0ef6785
Compare
Choose a tag to compare

Patch Changes

  • Fixed out-of-memory exception that was happening on dependencies with many peer dependencies, when node-linker was set to hoisted #6227.

Our Gold Sponsors

Our Silver Sponsors

v8.10.3

12 Nov 12:26
v8.10.3
df9eade
Compare
Choose a tag to compare

Patch Changes

  • (Important) Increased the default amount of allowed concurrent network request on systems that have more than 16 CPUs #7285.

  • pnpm patch should reuse existing patch when shared-workspace-file=false #7252.

  • Don't retry fetching missing packages, since the retries will never work #7276.

  • When using pnpm store prune --force alien directories are removed from the store #7272.

  • Downgraded npm-packlist because the newer version significantly slows down the installation of local directory dependencies, making it unbearably slow.

    npm-packlist was upgraded in this PR to fix #6997. We added our own file deduplication to fix the issue of duplicate file entries.

  • Fixed a performance regression on running installation on a project with an up to date lockfile #7297.

  • Throw an error on invalid pnpm-workspace.yaml file #7273.

Our Gold Sponsors

Our Silver Sponsors

v8.10.2

01 Nov 16:34
v8.10.2
75d788a
Compare
Choose a tag to compare

Patch Changes

  • Fixed a regression that was shipped with pnpm v8.10.0. Dependencies that were already built should not be rebuilt on repeat install. This issue was introduced via the changes related to supportedArchitectures. Related issue #7268.

Our Gold Sponsors

Our Silver Sponsors

v8.10.1

01 Nov 12:52
v8.10.1
101829d
Compare
Choose a tag to compare

Patch Changes

  • (Important) Tarball resolutions in pnpm-lock.yaml will no longer contain a registry field. This field has been unused for a long time. This change should not cause any issues besides backward compatible modifications to the lockfile #7262.
  • Fix issue when trying to use pnpm dlx in the root of a Windows Drive #7263.
  • Optional dependencies that do not have to be built will be reflinked (or hardlinked) to the store instead of copied #7046.
  • If a package's tarball cannot be fetched, print the dependency chain that leads to the failed package #7265.
  • After upgrading one of our dependencies, we started to sometimes have an error on publish. We have forked @npmcli/arborist to patch it with a fix #7269.

Our Gold Sponsors

Our Silver Sponsors

v8.10.0

27 Oct 14:56
v8.10.0
3eeb16f
Compare
Choose a tag to compare

Minor Changes

  • Support for multiple architectures when installing dependencies #5965.

    You can now specify architectures for which you'd like to install optional dependencies, even if they don't match the architecture of the system running the install. Use the supportedArchitectures field in package.json to define your preferences.

    For example, the following configuration tells pnpm to install optional dependencies for Windows x64:

    {
      "pnpm": {
        "supportedArchitectures": {
          "os": ["win32"],
          "cpu": ["x64"]
        }
      }
    }

    Whereas this configuration will have pnpm install optional dependencies for Windows, macOS, and the architecture of the system currently running the install. It includes artifacts for both x64 and arm64 CPUs:

    {
      "pnpm": {
        "supportedArchitectures": {
          "os": ["win32", "darwin", "current"],
          "cpu": ["x64", "arm64"]
        }
      }
    }

    Additionally, supportedArchitectures also supports specifying the libc of the system.

  • The pnpm licenses list command now accepts the --filter option to check the licenses of the dependencies of a subset of workspace projects #5806.

Patch Changes

  • Allow scoped name as bin name #7112.

  • When running scripts recursively inside a workspace, the logs of the scripts are grouped together in some CI tools. (Only works with --workspace-concurrency 1)

  • Print a warning when installing a dependency from a non-existent directory #7159

  • Should fetch dependency from tarball url when patching dependency installed from git #7196

  • pnpm setup should add a newline at the end of the updated shell config file #7227.

  • Improved the performance of linking bins of hoisted dependencies to node_modules/.pnpm/node_modules/.bin #7212.

  • Wrongful ELIFECYCLE error on program termination #7164.

  • pnpm publish should not pack the same file twice sometimes #6997.

    The fix was to update npm-packlist to the latest version.

Our Gold Sponsors

Our Silver Sponsors

v8.10.0-0

24 Oct 13:28
v8.10.0-0
b900294
Compare
Choose a tag to compare
v8.10.0-0 Pre-release
Pre-release

Minor Changes

  • Support for multiple architectures when installing dependencies #5965.

    You can now specify architectures for which you'd like to install optional dependencies, even if they don't match the architecture of the system running the install. Use the supportedArchitectures field in package.json to define your preferences.

    For example, the following configuration tells pnpm to install optional dependencies for Windows x64:

    {
      "pnpm": {
        "supportedArchitectures": {
          "os": ["win32"],
          "cpu": ["x64"]
        }
      }
    }

    Whereas this configuration will have pnpm install optional dependencies for Windows, macOS, and the architecture of the system currently running the install. It includes artifacts for both x64 and arm64 CPUs:

    {
      "pnpm": {
        "supportedArchitectures": {
          "os": ["win32", "darwin", "current"],
          "cpu": ["x64", "arm64"]
        }
      }
    }

    Additionally, supportedArchitectures also supports specifying the libc of the system.

  • The pnpm licenses list command now accepts the --filter option to check the licenses of the dependencies of a subset of workspace projects #5806.

Patch Changes

  • Allow scoped name as bin name #7112.
  • When running scripts recursively inside a workspace, the logs of the scripts are grouped together in some CI tools. (Only works with --workspace-concurrency 1)
  • Print a warning when installing a dependency from a non-existent directory #7159
  • Should fetch dependency from tarball url when patching dependency installed from git #7196
  • pnpm setup should add a newline at the end of the updated shell config file #7227.
  • Improved the performance of linking bins of hoisted dependencies to node_modules/.pnpm/node_modules/.bin #7212.

Our Gold Sponsors

Our Silver Sponsors

v8.9.2

15 Oct 23:24
v8.9.2
7daf0be
Compare
Choose a tag to compare

Patch Changes

  • Don't use reflink on Windows #7186.
  • Do not run node-gyp rebuild if preinstall lifecycle script is present #7206.

Our Gold Sponsors

Our Silver Sponsors

v8.9.1

15 Oct 15:12
v8.9.1
cf508e0
Compare
Choose a tag to compare

Patch Changes

  • Optimize selection result output of pnpm update --interactive 7109
  • When shared-workspace-lockfile is set to false, read the pnpm settings from package.json files that are nested. This was broken in pnpm v8.9.0 #7184.
  • Fix file cloning to node_modules on Windows Dev Drives #7186. This is a fix to a regression that was shipped with v8.9.0.
  • pnpm dlx should ignore any settings that are in a package.json file found in the current working directory #7198.

Our Gold Sponsors

Our Silver Sponsors

v8.9.0

09 Oct 11:57
v8.9.0
3462513
Compare
Choose a tag to compare

Minor Changes

  • 🚀Performance improvement: Use reflinks instead of hard links by default on macOS and Windows Dev Drives #5001.

  • The list of packages that are allowed to run installation scripts now may be provided in a separate configuration file. The path to the file should be specified via the pnpm.onlyBuiltDependenciesFile field in package.json. For instance:

    {
      "dependencies": {
        "@my-org/policy": "1.0.0"
      }
      "pnpm": {
        "onlyBuiltDependenciesFile": "node_modules/@my-org/policy/allow-build.json"
      }
    }

    In the example above, the list is loaded from a dependency. The JSON file with the list should contain an array of package names. For instance:

    ["esbuild", "@reflink/reflink"]

    With the above list, only esbuild and @reflink/reflink will be allowed to run scripts during installation.

    Related issue: #7137.

  • Add disallow-workspace-cycles option to error instead of warn about cyclic dependencies

  • Allow env rm to remove multiple node versions at once, and introduce env add for installing node versions without setting as default #7155.

Patch Changes

  • Fix memory error in pnpm why when the dependencies tree is too big, the command will now prune the tree to just 10 end leafs and now supports --depth argument #7122.
  • Use neverBuiltDependencies and onlyBuiltDependencies from the root package.json of the workspace, when shared-workspace-lockfile is set to false #7141.
  • Optimize peers resolution to avoid out-of-memory exceptions in some rare cases, when there are too many circular dependencies and peer dependencies #7149.
  • Instead of pnpm.overrides replacing resolutions, the two are now merged. This is intended to make it easier to migrate from Yarn by allowing one to keep using resolutions for Yarn, but adding additional changes just for pnpm using pnpm.overrides.

Our Gold Sponsors

Our Silver Sponsors

v8.9.0-1

09 Oct 11:16
v8.9.0-1
e467c7d
Compare
Choose a tag to compare
v8.9.0-1 Pre-release
Pre-release

Minor Changes

  • The list of packages that are allowed to run installation scripts now may be provided in a separate configuration file. The path to the file should be specified via the pnpm.onlyBuiltDependenciesFile field in package.json. For instance:

    {
      "dependencies": {
        "@my-org/policy": "1.0.0"
      }
      "pnpm": {
        "onlyBuiltDependenciesFile": "node_modules/@my-org/policy/allow-build.json"
      }
    }

    In the example above, the list is loaded from a dependency. The JSON file with the list should contain an array of package names. For instance:

    ["esbuild", "@reflink/reflink"]

    With the above list, only esbuild and @reflink/reflink will be allowed to run scripts during installation.

    Related issue: #7137.

  • Add disallow-workspace-cycles option to error instead of warn about cyclic dependencies

  • Allow env rm to remove multiple node versions at once, and introduce env add for installing node versions without setting as default #7155.

Patch Changes

  • Use reflinks instead of hard links by default on macOS and Windows Dev Drives #5001.
  • Fix memory error in pnpm why when the dependencies tree is too big, the command will now prune the tree to just 10 end leafs and now supports --depth argument #7122.
  • Use neverBuiltDependencies and onlyBuiltDependencies from the root package.json of the workspace, when shared-workspace-lockfile is set to false #7141.
  • Optimize peers resolution to avoid out-of-memory exceptions in some rare cases, when there are too many circular dependencies and peer dependencies #7149.
  • Instead of pnpm.overrides replacing resolutions, the two are now merged. This is intended to make it easier to migrate from Yarn by allowing one to keep using resolutions for Yarn, but adding additional changes just for pnpm using pnpm.overrides.

Our Gold Sponsors

Our Silver Sponsors