Commit Graph

64 Commits

Author SHA1 Message Date
Zoltan Kochan
4f4e0738cb fix(update): update latest should not update peer dependencies (#8615)
close #6657
2024-10-06 12:07:57 +02:00
Khải
83681daf57 fix: install packages with incompatible libc (#8569)
close #7362
2024-09-27 22:46:16 +02:00
Khải
2ed45946db test: pin micromatch latest tag (#8484)
Resolves 0f5d841fc6 (commitcomment-146043552)
2024-08-31 23:16:01 +02:00
Zoltan Kochan
0f5d841fc6 test: fix 2024-08-25 02:20:57 +02:00
Khải
9b4f73caaf chore(scripts): typecheck-only (#8395)
* chore(scripts): typecheck-only

* feat: change all configuration

* feat: include pnpm/ and pnpm/test/

* chore(deps): remove unused dependency

* refactor(typescript-only): use find-packages

* refactor(typescript-only): refactor paths

* fix: typescript-only

* fix: update compile-only

* fix: compile pnpm

* fix: windows

* fix: windows

* chore: meta-updater

* refactor(tsconfig): remove explicit composite

* fix: path in windows

* feat: don't depend on cwd

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-08-11 08:26:01 +02:00
Khải
cb006df38c feat(patching): apply patch to all versions (#8337)
Related issue: #5686
2024-08-01 15:05:15 +02:00
Zoltan Kochan
797ef0fc46 refactor: rename lockfile-types to lockfile.types 2024-07-27 14:46:23 +02:00
Zoltan Kochan
0406d4ad3d refactor: use a branded type for project root dir paths (#8272) 2024-07-04 13:13:34 +02:00
Zoltan Kochan
341656f9b3 refactor: make workspace packages a map 2024-07-02 22:49:38 +02:00
Zoltan Kochan
dd00eeb18c refactor: normalize dir field names across project objects (#8262) 2024-07-01 11:27:04 +02:00
Brandon Cheng
75a98e12b3 refactor: improve type checking when finding workspace packages (#8214)
---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-06-17 17:34:54 +02:00
Zoltan Kochan
3dd30b1909 refactor: create branded type for project ID (#8164) 2024-06-04 18:30:59 +02:00
Brandon Cheng
c7e1b6fae8 chore: configure TypeScript project references for tests (#8128)
* refactor: store link values before converting to references

* fix: use .sort() without localeCompare

https://github.com/pnpm/pnpm/pull/8128#discussion_r1614031566

> Nit, but you probably just want to call sort without a comparison
> function; these are already strings and locale compare is not a good
> comparison for anything but human readable strings since it will
> differ on different people's machines based on their language setting.
> I've hit this too many times before for code gen.

* feat: configure meta-updater to write test/tsconfig.json files

* fix: relative imports for __typings__

* chore: `pnpm run meta-updater`

* fix: explicitly use test/tsconfig.json for ts-jest
2024-05-31 12:48:13 +02:00
Zoltan Kochan
04eb86af77 test: fix 2024-05-23 12:48:06 +02:00
Zoltan Kochan
771d7a25c6 test(plugin-commands-installation): fix 2024-05-21 12:47:35 +02:00
Khải
cb0f459c54 fix: recursive update with workspace alias (#7999)
close #7975
2024-04-30 01:17:12 +02:00
Zoltan Kochan
9719a42d0e feat: configurable max length of directories inside node_modules/.pnpm (#7994)
close #7355
2024-04-28 11:07:29 +02:00
Zoltan Kochan
501133d30b refactor: bump lockfile version to v9 instead of v7 (#7861)
In order to align the lockfile version with pnpm version that ships it.
2024-04-06 17:12:37 +02:00
Khải
984b976672 refactor: replace deprecated jest methods (#7840) 2024-03-29 00:03:58 +01:00
Colin Casey
d4e13ca969 fix(prune): add --ignore-scripts arg to prune command (#7836)
close #5030
2024-03-28 00:05:07 +01:00
Zoltan Kochan
a22bdf0e29 feat!: remove the dev field from the lockfile (#7808) 2024-03-22 15:21:26 +01:00
Zoltan Kochan
21878e7ae4 feat(lockfile)!: change the keys format (#7752) 2024-03-17 23:01:39 +01:00
Zoltan Kochan
1ecda50502 feat(lockfile)!: dividing "packages" field to "packages" and "snapshots" (#7700)
close #7685
2024-03-04 23:31:01 +01:00
Zoltan Kochan
5c20db0dd2 feat!: use the same lockfile format in 1-pkg workspace as in multi-pkg one (#7696) 2024-02-29 10:28:29 +01:00
Zoltan Kochan
7db98cae0f feat!: bump lockfile to v7 (#7666) 2024-02-17 12:57:58 +01:00
Zoltan Kochan
a5a3b995c1 test: use sync fs operations in tests (#7664) 2024-02-16 19:43:04 +01:00
Zoltan Kochan
19542ecd28 test: use sync operations for assertions (#7663) 2024-02-16 16:23:23 +01:00
Zoltan Kochan
c7d0564225 refactor: lockfile-file (#7655) 2024-02-16 11:14:47 +01:00
Zoltan Kochan
c692f802f4 feat!: bump lockfile to v6.1 (#7643) 2024-02-13 01:41:51 +01:00
Khải
316c18aba4 feat(cli): forbid combining specs and --latest (#7567)
---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-01-27 16:37:17 +01:00
Khải
0ec0a44da7 fix(update): stop downgrading prereleases (#7466)
close #7436

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-01-27 14:41:58 +01:00
Zoltan Kochan
d381a6001c feat!: use dependency path format from lockfile v6 (#7470)
Drop lockfile v5 support.
2024-01-08 11:57:44 +01:00
Brandon Cheng
064aeb681e feat: accept install command line options as dedupe options (#7473)
* refactor: reuse OPTIONS.ignoreScripts in dedupe help

* feat: accept install command line options as dedupe options

* test: add test to ensure .npmrc is used by pnpm dedupe

* test: add test for "pnpm dedupe --store-dir=..."

* test: ensure pnpm dedupe does not accidentally inherit --frozen-lockfile

* revert: remove newly added e2e tests in dedupe

* test: add unit test to check contents of dedupe cliOptionTypes
2024-01-02 00:47:46 +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
Khải
8fd4e349a2 fix(outdated): git specificers (#7440)
close #7415
2023-12-23 01:28:24 +01:00
Zoltan Kochan
d6592964f0 refactor: rootProjectManifestDir is a required option 2023-10-24 15:14:33 +03:00
Zoltan Kochan
733d612ad1 test: check spelling with cspell (#7229) 2023-10-20 15:58:27 +03:00
await-ovo
bc83798d46 refactor(plugin-commands-installation): optimize cli output after select dependencies when update (#7125)
* refactor(plugin-commands-installation): optimize cli output after select dependencies when update

* docs: add changeset

* chore: set dep group choice to disabled

* fix: test case

* feat: filter out dep group choice in prompt output

* docs: update changesets

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-10-13 22:36:08 +03:00
Zoltan Kochan
d774a3196c feat: onlyBuiltDependenciesFile (#7167)
close #7137
2023-10-08 01:50:47 +03:00
Jannis Morgenstern
832e288263 feat: add disallow-workspace-cycles option to error on cyclic dependencies (#7144)
* feat: add `no-cyclic` option to error on cyclic dependencies

* refactor: rename no-cyclic to disallow-workspace-cycles
2023-10-03 19:25:22 +03:00
Bryan Lee
ba48fe0bc4 feat: add pnpm dedupe --ignore-scripts (#7103)
close #7102
2023-09-19 02:09:09 +03:00
Brandon Cheng
e9aa6f682a chore(deps): update TypeScript 5.1.6 -> 5.2.2 (#7016)
* test: use sha512 integrity in fixtures to fix ci break

* test: update snapshots for sha512 fixture change

* chore(deps): remove unneeded peer dependency exception

The `peerDependencyRules.allowedVersions` exception on
`@typescript-eslint/eslint-plugin` no longer seems to be necessary.
Removing it does not introduce any new peer dependency errors on
`pnpm install`.

I suspect this was needed for the
`eslint-config-standard-with-typescript` dependency in the past, but a
@typescript-eslint/eslint-plugin upgrade made it no longer necessary.

* chore(deps): update @typescript-eslint dependencies 5.62.0 -> 6.5.0

@typescript-eslint 6.5.0 is the first version to introduce support for
TypeScript 5.2.

https://github.com/typescript-eslint/typescript-eslint/releases/tag/v6.5.0

```
=============

WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.

You may find that it works just fine, or you may not.

SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <5.2.0

YOUR TYPESCRIPT VERSION: 5.2.2

Please only submit bug reports when using the officially supported version.
```

* chore(deps): update eslint-config-standard-with-typescript 37.0.0 -> 39.0.0

Version 38.0.0 is the first version to support @typescript-eslint v6.
https://github.com/standard/eslint-config-standard-with-typescript/releases/tag/v38.0.0

Otherwise the following error appears.

```
> eslint "src/**/*.ts" "test/**/*.ts" "--fix"

Oops! Something went wrong! :(

ESLint: 8.47.0

Error: ../../.eslintrc.json » @pnpm/eslint-config » eslint-config-standard-with-typescript:
        Configuration for rule "@typescript-eslint/restrict-plus-operands" is invalid:
        Value {"checkCompoundAssignments":true} should NOT have additional properties.

    at ConfigValidator.validateRuleOptions (/Users/gluxon/Developer/pnpm/node_modules/.pnpm/@eslint+eslintrc@2.1.2/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2039:23)
    at /Users/gluxon/Developer/pnpm/node_modules/.pnpm/@eslint+eslintrc@2.1.2/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2094:18
```

* chore: remove unnecessary disables for restrict-template-expressions

The `@typescript-eslint/restrict-template-expressions` rule relaxed
what types are allowed in template expressions.

c13ce0b4f7 (diff-b852e1e199d2976eee1183fc84ac12a5d42fc61f0ae4b1c290dd54d621546db0)

Many of these disables were for interpolated values that had an `any`
type.

* chore: remove unnecessary disables for restrict-plus-operands

The original error was:

```
Invalid operand for a '+' operation. Operands must each be a number or string. Got `any`. eslint@typescript-eslint/restrict-plus-operands
```

It look like the newer version now allows `any`.

* style: fix errors of prefer-optional-chain and prefer-nullish-coalescing

The `@typescript-eslint/prefer-optional-chain` and
`@typescript-eslint/prefer-nullish-coalescing` rules got a bit
smarter. This commit applies autofixes. I believe the changes should be
equivalent to what existed before.

Example of the new `@typescript-eslint/prefer-optional-chain` lints.

```
pnpm/pkg-manifest/exportable-manifest/src/index.ts
  71:10  error  Prefer using an optional chain expression instead, as it's more concise and easier to read  @typescript-eslint/prefer-optional-chain
  87:10  error  Prefer using an optional chain expression instead, as it's more concise and easier to read  @typescript-eslint/prefer-optional-chain
```

Example of the new `@typescript-eslint/prefer-nullish-coalescing` lints.

```
pnpm/fs/find-packages/src/index.ts
  32:38  error  Prefer using nullish coalescing operator (`??`) instead of a ternary expression, as it is simpler to read  @typescript-eslint/prefer-nullish-coalescing
```

* chore(deps): update TypeScript 5.1.6 -> 5.2.2

* chore(deps): update @yarnpkg/core->@types/lodash override to 4.14.197

This fixes a compilation error that appears on TypeScript 5.2.2. This
error was fixed in a later version of `@types/lodash`.

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/66123

```
../node_modules/.pnpm/@types+lodash@4.14.181/node_modules/@types/lodash/index.d.ts:45:15 - error TS2428: All declarations of 'WeakMap' must have identical type parameters.

45     interface WeakMap<K extends object, V> { }
                 ~~~~~~~

Found 4 errors.
```
2023-08-31 16:27:01 +03:00
Clark Tomlinson
81e5ada3a9 feat(interactive-update): group dependancies by type, add package url column (#6978)
* feat(interactive-update): group dependancies by type, add package url column

Partially resolves https://github.com/pnpm/pnpm/issues/6314

* refactor: update

* docs: update changeset

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-08-30 22:26:39 +03:00
Nacho Aldama
e0474bc4c3 fix: warn when linking a package with peerDeps (#6956)
close #615
2023-08-22 12:58:38 +03:00
Nacho Aldama
bf21c9bf3a fix: add support for npm lockfile v3 in import (#6931)
closes #6233

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-08-17 16:51:30 +03:00
Zoltan Kochan
302ebffc54 fix: downgrade lockfile version to 6.0 (#6664)
close #6648
2023-06-11 21:31:11 +03:00
Zoltan Kochan
ce61f8d3c2 test: improvements 2023-05-24 16:56:58 +03:00
Zoltan Kochan
9c4ae87bd1 feat: include some settings as fields in the lockfile (#6557)
ref #6312
2023-05-21 02:40:39 +03:00
Zoltan Kochan
d5c40b556c fix(link): don't update version specs in package.json (#6513)
close #4341
2023-05-09 15:34:02 +03:00
Brandon Cheng
6850bb135e feat: add pnpm dedupe --check (#6409) 2023-04-16 20:00:04 +00:00