Commit Graph

37 Commits

Author SHA1 Message Date
Zoltan Kochan
40b107efa7 perf: migrate internal cache and index files to MessagePack serialization (#10500) 2026-01-23 01:31:09 +01:00
Zoltan Kochan
da112f7cb2 revert: "perf: use v8 serialize/deserialize instead of JSON (#9971)" (#10420)
close #10409
2026-01-13 15:16:33 +01:00
Zoltan Kochan
8b4bdf9a83 refactor: replace onlyBuiltDependencies and ignoredBuiltDependencies with allowBuilds (#10401) 2026-01-02 23:21:17 +01:00
Zoltan Kochan
4362c06005 fix: dependencies that were added to onlyBuiltDependencies should be built on install (#10256) 2025-12-02 15:31:52 +01:00
Zoltan Kochan
9b344c8982 perf: use v8 serialize/deserialize instead of JSON (#9971)
close #9965
2025-11-06 01:01:06 +01:00
Zoltan Kochan
dee39ecb8a feat: support allowing the build of specific versions of dependencies (#10104)
close #10076
2025-10-21 12:38:16 +02:00
martinkors
046af72a96 feat: add new catalogMode setting (#9552)
* feat: add new `catalogMode` setting

Add new `catalogMode` setting for automatically adding new dependencies to
the default catalog.

Closes pnpm#8876, Closes pnpm#8308

* fix: catalogs don't only store semver ranges and versions

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2025-05-20 16:47:05 +02:00
Zoltan Kochan
5b73df1eb1 refactor: resolvers should calculate the specifiers that are saved into package.json (#9426)
* refactor: resolvers should return specifier templates

* refactor: updating workspace protocol specs in package.json

* refactor: move workspace selector calculation logic to npm-resolver

* refactor: move workspace selector calculation logic to npm-resolver

* refactor: calculating range in npm-resolver

* refactor: rename normalizedPref and specifierTemplate to specifier

* refactor: specifiers creation

* refactor: npm-resolver

* refactor: remove which-version-is-pinned package

* refactor: which version is pinned

* docs: add changesets

* refactor: implement suggestions

* refactor: revert regex usage
2025-04-18 17:48:03 +02:00
Zoltan Kochan
a54d3adbd5 test: create a helper package for creating a temp store for testing (#9343) 2025-03-28 09:21:29 +01:00
Khải
5f7be645e4 feat(patching): version ranges and strict patches (#9236)
* feat: replace a config

This is a test commit to see if CI fails

* feat: `strictPatches`

* docs: future instruction

* feat: `strictPatches` → `allowPatchFailure`

* docs(changeset): correction

* test: getOptionsFromRootManifest

* fix: allowFailure

* feat: groupPatchedDependencies

* fix: update code after merge

* fix: star spec

* feat: error on invalid ranges

* fix: eslint

* docs: change task

* feat(patching): version ranges

* fix: `verifyPatches`

* refactor: move types to `@pnpm/patching.types`

* docs(changeset): add missing package

* refactor: move `verifyPatches` to `@pnpm/patching.config`

* test: fix

* feat: change error message of unused patches

* refactor: exact options into an interface

* test(patching): version range

* test(patching): allowPatchFailure

* docs: change wording

* docs: change wording

* test(patching): version range error

* test(patching): legacy behavior

* test: don't use star

* test(patching): strict versionless

* test: strictPatches

* chore(deps): `@pnpm/logger` must be peer

* docs: fix grammar

* refactor: rename `blank` to `all`

* refactor: use string

* refactor: use array for `PatchGroup.range`

* refactor: stop re-exporting `allPatchKeys`

* feat: re-export `PatchGroupRangeItem`

* refactor: move error creation into a class

* docs: replace "versionless" with "name-only"

* docs: coherent wordings

* test: exact version overrides range conflict

* test: tweak

* docs: consistent wordings

* docs: correct wordings

* refactor: rename `allowPatchFailure` to `ignorePatchFailures`

* feat: replace `strictPatches` with `ignorePatchFailures`

* docs: legacy behavior

* feat: introduce `allowUnusedPatches`

* docs(changeset): update

* docs: remove outdated comment

* docs: backward-compatibility
2025-03-13 12:13:06 +01:00
Zoltan Kochan
aae0808b35 Merge remote-tracking branch 'origin/main' into v10 2024-10-05 02:24:28 +02:00
Khải
51f3ba1df8 refactor: extract some logics from core/install (#8597) 2024-10-04 04:27:27 +02:00
Zoltan Kochan
5d260193a8 feat!: use SHA256 for storing the checksums for patch files (#8532) 2024-09-18 04:14:58 +02:00
Khải
5bf6aaa407 refactor: move @pnpm/logger to the monorepo (#8385)
* chore: create @pnpm/logger

* fix: workaround typescript error

* chore: update manifests

* chore(deps): link @pnpm/logger from workspace
2024-08-07 18:02:08 +02:00
Zoltan Kochan
daa45dfd91 refactor: rename prune-lockfile to lockfile.pruner 2024-07-28 01:48:23 +02:00
Zoltan Kochan
c92f4bf282 refactor: rename lockfile-walker to lockfile.walker 2024-07-28 01:42:38 +02:00
Zoltan Kochan
c5ef9b0643 refactor: rename filter-utils to lockfile.utils 2024-07-28 01:35:40 +02:00
Zoltan Kochan
8055a30be1 refactor: rename filter-lockfile to lockfile.filtering 2024-07-28 01:24:55 +02:00
Zoltan Kochan
e9908b3185 refactor: rename lockfile-file to lockfile.fs 2024-07-28 01:15:20 +02:00
Zoltan Kochan
797ef0fc46 refactor: rename lockfile-types to lockfile.types 2024-07-27 14:46:23 +02:00
Zoltan Kochan
2e3eae3990 refactor: create @pnpm/lockfile.verification (#8350) 2024-07-27 14:18:38 +02:00
Zoltan Kochan
0f0e44101d fix: resolve catalogs in overrides (#8321)
close #8303
2024-07-22 01:35:30 +02:00
Zoltan Kochan
9927c2855a refactor(core): workspace packages (#8248)
Make workspace packages optional.
2024-06-30 15:17:07 +02:00
Brandon Cheng
9c63679df1 feat: catalogs (#8122)
* feat: create new @pnpm/catalogs.types package (#8026)

* feat: read catalog configs from workspace manifest (#8123)

* refactor: move InvalidWorkspaceManifestError to its own file

* feat: read catalogs config from workspace manifest

* chore: add changeset for new catalog config parsing

* feat: create new `@pnpm/catalogs.protocol-parser` package (#8124)

This works around a problem with pnpm's CI setup not compiling
packages that are not dependencies of the main pnpm package before
running these tests.

https://github.com/pnpm/pnpm/pull/8027#issuecomment-2081650304

* refactor: factor out isWantedDepPrefSame to extend in a future commit (#8125)

* feat: create new `@pnpm/catalogs.config` package (#8220)

* refactor: remove single default catalog check

This check will happen in  `@pnpm/catalogs.config` instead.

* feat: create new @pnpm/catalogs.config package

* fix: work around CI setup not compiling orphan packages before testing

This works around a problem with pnpm's CI setup not compiling
packages that are not dependencies of the main pnpm package before
running these tests.

https://github.com/pnpm/pnpm/pull/8027#issuecomment-2081650304

* feat: create new `@pnpm/catalogs.resolver` package (#8219)

* feat: create new @pnpm/catalogs.resolver package

* fix: work around CI setup not compiling orphan packages before testing

This works around a problem with pnpm's CI setup not compiling
packages that are not dependencies of the main pnpm package before
running these tests.

https://github.com/pnpm/pnpm/pull/8027#issuecomment-2081650304

* feat: implement catalog protocol for publish (#8225)

* feat: implement catalog protocol for install (#8221)

* feat: add catalogs to @pnpm/config

* refactor: factor out resolveDependenciesOfImporterDependency function

* feat: implement catalog resolver and replace prefs

* revert: work around CI setup not compiling orphan packages before testing

* feat: record catalog lookup snapshots through propagated metadata

* feat: update projects when catalogs config changes

* test: add catalog protocol install tests

* refactor: remove filter-packages-from-dir dependency from core tests (#8244)

* refactor: remove filter-packages-from-dir dependency from core tests

* test: refactor

* test: refactor

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-06-27 14:19:38 +02:00
Brandon Cheng
5de89d81a6 chore: remove top-level composite property from tsconfig.json files (#8130)
* chore: remove no-op composite property

* chore: remove top-level composite property from existing files
2024-05-28 02:37:40 +02:00
Zoltan Kochan
8eddd21f07 fix: resolve missing peer from versions already present in other parts of the dep graph (#7812) 2024-03-22 19:45:54 +01:00
Zoltan Kochan
a3f90c2757 fix: reduce the side-effects cache key length (#7563)
close #5056
2024-01-25 03:17:11 +01:00
Brandon Cheng
a2f5f5c990 test: fix file system race conditions in tests by switching to an IPC server (#7472)
* test: create new @pnpm/test-ipc-server private util package

* test: use @pnpm/test-ipc-server for previously refactored tests

* test: use @pnpm/test-ipc-server for tests using json-append

* test: change how --no-bail is passed to avoid passing it to scripts

This test began failing after the conversion to use
`@pnpm/test-echo-server` since the `--no-bail` script was being passed
to scripts.

Changing how --no-bail is configured to fix this test.

* test: use @pnpm/test-ipc-server in exec/lifecycle fixture tests

* test: use @pnpm/test-ipc-server in pkg-manager/headless fixture tests

* test: use @pnpm/test-ipc-server in exec/prepare-package fixture tests

* test: switch pnpm test from json-append to @pnpm.e2e/hello-world-js-bin

* test: fix and re-enable 'rebuild multiple packages in correct order'

The pnpm-workspace.yaml file didn't contain all packages, causing:

```
2023-12-22T02:24:46.2277155Z FAIL test/recursive.ts
2023-12-22T02:24:46.2277881Z   ● rebuild multiple packages in correct order
2023-12-22T02:24:46.2278348Z
2023-12-22T02:24:46.2278734Z     expect(received).toStrictEqual(expected) // deep equality
2023-12-22T02:24:46.2279302Z
2023-12-22T02:24:46.2279517Z     - Expected  - 1
2023-12-22T02:24:46.2279932Z     + Received  + 0
2023-12-22T02:24:46.2280186Z
2023-12-22T02:24:46.2280791Z       Array [
2023-12-22T02:24:46.2281256Z         "project-1",
2023-12-22T02:24:46.2281733Z     -   "project-2",
2023-12-22T02:24:46.2282135Z       ]
2023-12-22T02:24:46.2282334Z
2023-12-22T02:24:46.2282475Z       216 |   }, [])
2023-12-22T02:24:46.2282870Z       217 |
2023-12-22T02:24:46.2283788Z     > 218 |   expect(server1.getMessages()).toStrictEqual(['project-1', 'project-2'])
2023-12-22T02:24:46.2284725Z           |                                 ^
2023-12-22T02:24:46.2285802Z       219 |   expect(server2.getMessages()).toStrictEqual(['project-1', 'project-3'])
2023-12-22T02:24:46.2286683Z       220 | })
2023-12-22T02:24:46.2287049Z       221 |
2023-12-22T02:24:46.2287269Z
2023-12-22T02:24:46.2287588Z       at Object.<anonymous> (test/recursive.ts:218:33)
```
2024-01-01 16:40:03 +01:00
阿豪
4246f41bed feat(graph-sequencer): add package @pnpm/graph-sequencer (#7168)
---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-10-15 22:28:05 +03:00
Zoltan Kochan
c8a6ea8ae9 refactor: rename tarball-worker to worker 2023-08-26 17:26:21 +03:00
Zoltan Kochan
f2009d1756 perf: use a worker pool to link packages (#6950)
ref #6808
2023-08-24 20:05:53 +03:00
Zoltan Kochan
ece5a1aeb9 refactor: create a package for hook types (#6380) 2023-04-12 11:47:28 +03:00
Zoltan Kochan
47e45d717d feat!: breaking config changes in v8 (#6035)
* auto-install-peers=true
* save-workspace-protocol=rolling
* publishConfig.linkDirectory true by default
* resolve-peers-from-workspace-root is true by default
* set dedupeDirectDeps to true by default in @pnpm/core.
2023-02-05 11:43:22 +02:00
Zoltan Kochan
583e3954be fix: remove suppressImplicitAnyIndexErrors from typescript settings (#5991) 2023-01-28 18:19:26 +02:00
Zoltan Kochan
d5496cc3f8 refactor: linking direct dependencies (#5669) 2022-11-23 23:21:01 +02:00
Zoltan Kochan
9cbe293876 refactor: put all non-public projects to directories that start with __ 2022-11-20 02:40:44 +02:00
Zoltan Kochan
4ca53b0b50 refactor: group projects in different subdirectories (#5659) 2022-11-20 01:35:22 +02:00