Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update pnpm to v8 #51

Merged
merged 1 commit into from
Apr 13, 2023
Merged

chore(deps): update pnpm to v8 #51

merged 1 commit into from
Apr 13, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 28, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pnpm (source) 7.27.0 -> 8.2.0 age adoption passing confidence

Release Notes

pnpm/pnpm

v8.2.0

Compare Source

Minor Changes

  • Allow env variables to be specified with default values in .npmrc. This is a convention used by Yarn too.
    Using ${NAME-fallback} will return fallback if NAME isn't set. ${NAME:-fallback} will return fallback if NAME isn't set, or is an empty string #​6018.

Patch Changes

  • Add -g to mismatch registries error info when original command has -g option #​6224.
  • Don't fail with EBUSY error when trying to copy a file from the store #​6201
  • pnpm config get <key> should print boolean values #​6360
  • Don't print an info message about linked dependencies if they are real linked dependencies specified via the link: protocol in package.json #​6372

Our Gold Sponsors

Our Silver Sponsors

v8.1.1

Compare Source

Patch Changes

  • Repeat installation should work on a project that has a dependency with parentheses in the scope name #​6348.
  • Error summary should be reported as expected.
  • Update @yarnpkg/shell to fix issues in the shell emulator #​6320.
  • Installation should not fail when there is a local dependency in a directory that starts with the @ character #​6332.
  • Registries are now passed to the preResolution hook.

Our Gold Sponsors

Our Silver Sponsors

v8.1.0

Compare Source

Minor Changes

  • A new setting has been added called dedupe-direct-deps, which is disabled by default. When set to true, dependencies that are already symlinked to the root node_modules directory of the workspace will not be symlinked to subproject node_modules directories. This feature was enabled by default in v8.0.0 but caused issues, so it's best to disable it by default #​6299.
  • Add ignore-workspace-cycles to silence workspace cycle warning #​6308.

Patch Changes

  • Print the right lowest supported Node.js version in the error message, when pnpm is executed with an old Node.js version #​6297.
  • Improve the outdated lockfile error message #​6304.

Our Gold Sponsors

Our Silver Sponsors

v8.0.0

Compare Source

We are excited to announce the latest release of pnpm! To install it, check the installation page.

image

Major Changes

Node.js 14 Support Discontinued

If you still require Node.js 14, don't worry. We ship pnpm bundled with Node.js. This means that regardless of which Node.js version you've installed, pnpm will operate using the necessary Node.js runtime. For this to work you need to install pnpm either using the standalone script or install the @pnpm/exe package.

Configuration Updates

Most of the configuration changes are related to peer dependencies. Most of these settings were implemented long ago, and we recommended them to users encountering peer dependency issues. The recently added dedupe-peer-dependents resolved many such problems. With these new defaults, pnpm will face significantly fewer issues during migration from other package managers.

Lockfile Modifications
  • Lockfile v6 is adopted. This new format improves the readability of the lockfile by removing hashes from package IDs. It also has some rearrangement of fields in the importers section. The new pnpm-lock.yaml file is more resistant to git merge conflicts!
  • The registry field is removed from the resolution object in pnpm-lock.yaml.
  • A lockfile is generated even for projects with no dependencies.
Other Changes
  • When there's a files field in the package.json, only the files that are listed in it will be deployed. The same logic is applied when injecting packages. This behaviour can be changed by setting the deploy-all-files setting to true (Related issue #​5911).
  • Direct dependencies are deduped. If a dependency is present in both a project and the workspace root, it will only be linked to the workspace root.

Migration Instructions

Before updating pnpm to v8 in your CI, regenerate your pnpm-lock.yaml. To upgrade your lockfile, run pnpm install and commit the changes. Existing dependencies will not be updated; however, due to configuration changes in pnpm v8, some missing peer dependencies may be added to the lockfile and some packages may get deduplicated.

You can commit the new lockfile even before upgrading Node.js in the CI, as pnpm v7 already supports the new lockfile format.

pnpm v7 Support

pnpm v7 will likely not receive any new features, but it will continue to get bug fixes for a few months and vulnerability fixes for at least a year.

Our Gold Sponsors

Our Silver Sponsors

v7.32.0

Compare Source

Minor Changes

  • Allow env variables to be specified with default values in .npmrc. This is a convention used by Yarn too.
    Using ${NAME-fallback} will return fallback if NAME isn't set. ${NAME:-fallback} will return fallback if NAME isn't set, or is an empty string #​6018.

Patch Changes

  • pnpm config get <key> returns empty when the value is a boolean
  • Don't print an info message about linked dependencies if they are real linked dependencies specified via the link: protocol in package.json.
  • Add -g to mismatch registries error info when original command has -g option #​6224.

Our Gold Sponsors

Our Silver Sponsors

v7.31.0

Compare Source

Minor Changes

  • Add ignore-workspace-cycles to silence workspace cycle warning #​6308.
Patch Changes
  • Registries are now passed to the preResolution hook.
  • Repeat installation should work on a project that has a dependency with () chars in the scope name #​6348.
  • Should report error summary as expected.
  • Update @yarnpkg/shell to fix issues in the shell emulator #​6320.
  • Installation should not fail when there is a local dependency that starts in a directory that starts with the @ char #​6332.

Our Gold Sponsors

Our Silver Sponsors

v7.30.5

Compare Source

Patch Changes

  • pnpm audit should work even if there are no package.json file, just a pnpm-lock.yaml file.
  • Dedupe direct dependencies after hoisting.
  • Don't remove automatically installed peer dependencies from the root workspace project, when dedupe-peer-dependents is true #​6154.

Our Gold Sponsors

Our Silver Sponsors

v7.30.4

Compare Source

v7.30.3

Compare Source

Patch Changes

  • Should use most specific override rule when multiple rules match the same target #​6210.
  • Fix regression introduced in v7.30.1 #​6271.

Our Gold Sponsors

Our Silver Sponsors

v7.30.2

Compare Source

v7.30.1

Compare Source

Patch Changes

  • Don't write the pnpm-lock.yaml file if it has no changes and pnpm install --frozen-lockfile was executed #​6158.
  • Fix git-hosted dependencies referenced via git+ssh that use semver selectors #​6239.
  • When publish some package throws an error, the exit code should be non-zero #​5528.
  • Only three paths are displayed in pnpm audit output #​6203
  • Aliased packages should be used to resolve peer dependencies too #​4301.

Our Gold Sponsors

Our Silver Sponsors

v7.30.0

Compare Source

Minor Changes

  • Allow to set a custom directory for storing patch files via the patches-dir setting #​6215

Patch Changes

  • New directories should be prepended to NODE_PATH in command shims, not appended.
  • Retry copying file on EBUSY error #​6201.

Our Gold Sponsors

Our Silver Sponsors

v7.29.3

Compare Source

Patch Changes

  • Command shim should not set higher priority to the node_modules/.pnpm/node_modules directory through the NODE_PATH env variable, then the command's own node_modules directory #​5176.
  • extend-node-path is set back to true by default. It was set to false in v7.29.2 in order to fix issues with multiple versions of Jest in one workspace. It has caused other issues, so now we keep extending NODE_PATH. We have fixed the Jest issue with a different solution #​6213.

Our Gold Sponsors

Our Silver Sponsors

v7.29.2

Compare Source

v7.29.1

Compare Source

Patch Changes

  • Settings related to authorization should be set/deleted by npm CLI #​6181.

Our Gold Sponsors

Our Silver Sponsors

v7.29.0

Compare Source

Minor Changes

  • A new setting is now supported: dedupe-peer-dependents.

    When this setting is set to true, packages with peer dependencies will be deduplicated after peers resolution.

    For instance, let's say we have a workspace with two projects and both of them have webpack in their dependencies. webpack has esbuild in its optional peer dependencies, and one of the projects has esbuild in its dependencies. In this case, pnpm will link two instances of webpack to the node_modules/.pnpm directory: one with esbuild and another one without it:

    node_modules
      .pnpm
        webpack@1.0.0_esbuild@1.0.0
        webpack@1.0.0
    project1
      node_modules
        webpack -> ../../node_modules/.pnpm/webpack@1.0.0/node_modules/webpack
    project2
      node_modules
        webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
        esbuild
    

    This makes sense because webpack is used in two projects, and one of the projects doesn't have esbuild, so the two projects cannot share the same instance of webpack. However, this is not what most developers expect, especially since in a hoisted node_modules, there would only be one instance of webpack. Therefore, you may now use the dedupe-peer-dependents setting to deduplicate webpack when it has no conflicting peer dependencies (explanation at the end). In this case, if we set dedupe-peer-dependents to true, both projects will use the same webpack instance, which is the one that has esbuild resolved:

    node_modules
      .pnpm
        webpack@1.0.0_esbuild@1.0.0
    project1
      node_modules
        webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
    project2
      node_modules
        webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
        esbuild
    

    What are conflicting peer dependencies? By conflicting peer dependencies we mean a scenario like the following one:

    node_modules
      .pnpm
        webpack@1.0.0_react@16.0.0_esbuild@1.0.0
        webpack@1.0.0_react@17.0.0
    project1
      node_modules
        webpack -> ../../node_modules/.pnpm/webpack@1.0.0/node_modules/webpack
        react (v17)
    project2
      node_modules
        webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
        esbuild
        react (v16)
    

    In this case, we cannot dedupe webpack as webpack has react in its peer dependencies and react is resolved from two different versions in the context of the two projects.

Patch Changes

  • The configuration added by pnpm setup should check if the pnpm home directory is already in the PATH before adding to the PATH.

    Before this change, this code was added to the shell:

    export PNPM_HOME="$HOME/Library/pnpm"
    export PATH="$PNPM_HOME:$PATH"

    Now this will be added:

    export PNPM_HOME="$HOME/Library/pnpm"
    case ":$PATH:" in
      *":$PNPM_HOME:"*) ;;
      *) export PATH="$PNPM_HOME:$PATH" ;;
    esac
  • Add skipped status in exec report summary when script is missing #​6139.

  • pnpm env -g should fail with a meaningful error message if pnpm cannot find the pnpm home directory, which is the directory into which Node.js is installed.

  • Should not throw an error when local dependency use file protocol #​6115.

  • Fix the incorrect error block when subproject has been patched #​6183

Our Gold Sponsors

Our Silver Sponsors

v7.28.0

Compare Source

Minor Changes

  • Add --report-summary for pnpm exec and pnpm run #​6008.
  • Show path info for pnpm why --json or --long #​6103.
  • Extend the pnpm.peerDependencyRules.allowedVersions package.json option to support the parent>child selector syntax. This syntax allows for extending specific peerDependencies #​6108.

Patch Changes

  • Update the lockfile if a workspace has a new project with no dependencies.
  • Fix a case of installs not being deterministic and causing lockfile changes between repeat installs. When a dependency only declares peerDependenciesMeta and not peerDependencies, dependencies, or optionalDependencies, the dependency's peers were not considered deterministically before.
  • patch-commit should auto apply patches in workspaces #​6048
  • Automatically fix conflicts in v6 lockfile.
  • pnpm config set should write to the global config file by default #​5877.

Our Gold Sponsors

Our Silver Sponsors

Mend Renovate. View repository job log here.

@renovate renovate bot added the dependencies Update dependencies label Mar 28, 2023
@renovate renovate bot force-pushed the renovate/pnpm-8.x branch 2 times, most recently from 0ee4756 to 2caadc2 Compare April 4, 2023 03:13
@renovate renovate bot force-pushed the renovate/pnpm-8.x branch 3 times, most recently from 03a32e5 to 7413a00 Compare April 13, 2023 13:33
@renovate renovate bot force-pushed the renovate/pnpm-8.x branch from 7413a00 to ec879fd Compare April 13, 2023 13:35
@benyap benyap merged commit 63759fe into main Apr 13, 2023
@benyap benyap deleted the renovate/pnpm-8.x branch April 13, 2023 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Update dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant