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

feat: update pnpm to v10 #9389

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
df70e8b
feat: update pnpm to v10
zkochan Dec 18, 2024
f9bbabf
test: fix
zkochan Dec 18, 2024
2fae835
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Jan 6, 2025
f681b8a
update
zkochan Jan 6, 2025
3d12d77
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Jan 6, 2025
9b6ecdb
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Jan 7, 2025
36b1936
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Jan 7, 2025
e94a46f
Merge branch 'master' into pnpm10
zkochan Jan 8, 2025
cb2a921
update pnpm
zkochan Mar 6, 2025
73287a3
always build deps
zkochan Mar 6, 2025
3c14f70
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Mar 6, 2025
3b997fa
revert comments in workspace.jsonc
zkochan Mar 6, 2025
6eb23ee
fix: compilation
zkochan Mar 7, 2025
519d443
update pnpm
zkochan Mar 10, 2025
dfb9dd8
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Mar 10, 2025
9aef17a
update pnpm
zkochan Mar 10, 2025
bd33999
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Mar 20, 2025
8efacc7
update pnpm
zkochan Mar 20, 2025
b6a7900
Merge branch 'master' into pnpm10
zkochan Mar 20, 2025
c47f36a
fix compile
zkochan Mar 20, 2025
f18d2aa
fix compile
zkochan Mar 20, 2025
4de00be
style: fix
zkochan Mar 20, 2025
174102d
fix: dependencies should be built by default
zkochan Mar 21, 2025
6eed203
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Mar 21, 2025
3470c2b
Merge remote-tracking branch 'origin/master' into pnpm10
zkochan Apr 8, 2025
6d29775
chore: update pnpm
zkochan Apr 8, 2025
ee038f1
remove redundant setting
zkochan Apr 8, 2025
bf98fcb
types: fix
zkochan Apr 8, 2025
346be13
Merge branch 'master' into pnpm10
zkochan Apr 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5,142 changes: 2,609 additions & 2,533 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,6 @@ describe('convertLockfileToGraph simple case', () => {
},
rootDir: process.cwd(),
resolve: () => ({ resolution: { integrity: '0000' } }) as any,
registries: {
default: 'https://registry.npmjs.org/',
},
}
)
).to.eql({
Expand Down
10 changes: 3 additions & 7 deletions scopes/dependencies/pnpm/lockfile-deps-graph-converter.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import path from 'path';
import { type ProjectManifest, type Registries } from '@pnpm/types';
import { type InlineSpecifiersResolvedDependencies } from '@pnpm/lockfile.types';
import { type ProjectManifest } from '@pnpm/types';
import { type LockfileFileProjectResolvedDependencies } from '@pnpm/lockfile.types';
import { type ResolveFunction } from '@pnpm/client';
import * as dp from '@pnpm/dependency-path';
import { pickRegistryForPackage } from '@pnpm/pick-registry-for-package';
import { pick, partition } from 'lodash';
import { snapToSemver } from '@teambit/component-package-version';
import {
Expand Down Expand Up @@ -38,7 +37,7 @@ function convertLockfileToGraphFromCapsule(
}

function importerDepsToNeighbours(
importerDependencies: InlineSpecifiersResolvedDependencies,
importerDependencies: LockfileFileProjectResolvedDependencies,
lifecycle: 'dev' | 'runtime',
optional: boolean
): DependencyNeighbour[] {
Expand Down Expand Up @@ -205,12 +204,10 @@ export async function convertGraphToLockfile(
manifests,
rootDir,
resolve,
registries,
}: {
manifests: Record<string, ProjectManifest>;
rootDir: string;
resolve: ResolveFunction;
registries: Registries;
}
): Promise<BitLockfileFile> {
const graphString = _graph.serialize();
Expand Down Expand Up @@ -302,7 +299,6 @@ export async function convertGraphToLockfile(
}, {
lockfileDir: '',
projectDir: '',
registry: pickRegistryForPackage(registries, pkgToResolve.name),
preferredVersions: {},
})
if ('integrity' in resolution && resolution.integrity) {
Expand Down
13 changes: 6 additions & 7 deletions scopes/dependencies/pnpm/lynx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,11 @@ import {
} from '@pnpm/core';
import * as pnpm from '@pnpm/core';
import { createClient, ClientOptions } from '@pnpm/client';
import { pickRegistryForPackage } from '@pnpm/pick-registry-for-package';
import { restartWorkerPool, finishWorkers } from '@pnpm/worker';
import { createPkgGraph } from '@pnpm/workspace.pkgs-graph';
import { PackageManifest, ProjectManifest, ReadPackageHook } from '@pnpm/types';
import { readWantedLockfile, writeWantedLockfile } from '@pnpm/lockfile.fs';
import { type LockfileFileV9, type Lockfile } from '@pnpm/lockfile.types'
import { type LockfileFile, type LockfileObject } from '@pnpm/lockfile.types'
import { Logger } from '@teambit/logger';
import { VIRTUAL_STORE_DIR_MAX_LENGTH } from '@teambit/dependencies.pnpm.dep-path';
import { isEqual } from 'lodash'
Expand Down Expand Up @@ -79,6 +78,7 @@ async function createStoreController(
fetchRetryMintimeout: options.networkConfig.fetchRetryMintimeout,
fetchTimeout: options.networkConfig.fetchTimeout,
virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,
registries: options.registries.toMap(),
};
return createOrConnectStoreController(opts);
}
Expand Down Expand Up @@ -118,6 +118,7 @@ export async function generateResolverAndFetcher({
minTimeout: networkConfig.fetchRetryMintimeout,
retries: networkConfig.fetchRetries,
},
registries: registries.toMap(),
};
const result = createClient(opts);
return result;
Expand Down Expand Up @@ -280,7 +281,6 @@ export async function install(
pruneLockfileImporters: true,
lockfileOnly: options.lockfileOnly ?? false,
modulesCacheMaxAge: Infinity, // pnpm should never prune the virtual store. Bit does it on its own.
neverBuiltDependencies: options.neverBuiltDependencies,
registries: registries.toMap(),
resolutionMode: 'highest',
rawConfig: authConfig,
Expand All @@ -298,6 +298,7 @@ export async function install(
},
userAgent: networkConfig.userAgent,
...options,
neverBuiltDependencies: options.neverBuiltDependencies ?? [],
returnListOfDepsRequiringBuild: true,
excludeLinksFromLockfile: options.excludeLinksFromLockfile ?? true,
depth: options.updateAll ? Infinity : 0,
Expand Down Expand Up @@ -559,12 +560,10 @@ export async function resolveRemoteVersion(
};
try {
const parsedPackage = parsePackageName(packageName);
const registry = pickRegistryForPackage(registries.toMap(), parsedPackage.name);
const wantedDep: WantedDependency = {
alias: parsedPackage.name,
pref: parsedPackage.version,
};
resolveOpts.registry = registry;
const val = await resolve(wantedDep, resolveOpts);
if (!val.manifest) {
throw new BitError('The resolved package has no manifest');
Expand Down Expand Up @@ -615,11 +614,11 @@ async function addDepsRequiringBuildToLockfile(rootDir: string, depsRequiringBui
await writeWantedLockfile(rootDir, lockfile);
}

export interface BitLockfile extends Lockfile {
export interface BitLockfile extends LockfileObject {
bit?: BitLockfileAttributes;
}

export interface BitLockfileFile extends LockfileFileV9 {
export interface BitLockfileFile extends LockfileFile {
bit?: BitLockfileAttributes;
}

Expand Down
8 changes: 3 additions & 5 deletions scopes/dependencies/pnpm/pnpm.package-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { Registries, Registry } from '@teambit/pkg.entities.registry';
import { VIRTUAL_STORE_DIR_MAX_LENGTH } from '@teambit/dependencies.pnpm.dep-path';
import { DEPS_GRAPH, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';
import { Logger } from '@teambit/logger';
import { type LockfileFileV9 } from '@pnpm/lockfile.types';
import { type LockfileFile } from '@pnpm/lockfile.types';
import fs from 'fs';
import { memoize, omit } from 'lodash';
import { PeerDependencyIssuesByProjects } from '@pnpm/core';
Expand Down Expand Up @@ -95,10 +95,9 @@ export class PnpmPackageManager implements PackageManager {
...opts,
registries,
});
const lockfile: LockfileFileV9 = await convertGraphToLockfile(dependenciesGraph, {
const lockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {
...opts,
resolve,
registries: registries.toMap(),
});
Object.assign(lockfile, {
bit: {
Expand Down Expand Up @@ -447,8 +446,7 @@ export class PnpmPackageManager implements PackageManager {
},
failOnMissingDependencies: false,
skipped: new Set(),
}),
{ forceSharedFormat: true }
})
);
const graph = convertLockfileToGraph(partialLockfile, opts);
return graph;
Expand Down
4 changes: 2 additions & 2 deletions scopes/scope/objects/models/dependencies-graph.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import semver from 'semver';
import { PackageInfo } from '@pnpm/lockfile.types';
import { LockfilePackageInfo } from '@pnpm/lockfile.types';
import * as dp from '@pnpm/dependency-path';

export type PackagesMap = Map<string, PackageAttributes>;

export type PackageAttributes = PackageInfo & {
export type PackageAttributes = LockfilePackageInfo & {
component?: {
scope: string;
name: string;
Expand Down
60 changes: 29 additions & 31 deletions workspace.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -36,35 +36,34 @@
"@mdx-js/react": "1.6.22",
"@monaco-editor/react": "4.4.6",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.4",
"@pnpm/client": "900.0.1",
"@pnpm/client": "1000.0.14",
"@pnpm/colorize-semver-diff": "1.0.1",
"@pnpm/config": "900.0.0",
"@pnpm/core": "900.0.1",
"@pnpm/default-reporter": "900.0.0",
"@pnpm/dependency-path": "900.0.0",
"@pnpm/error": "900.0.0",
"@pnpm/fetch": "900.0.0",
"@pnpm/list": "^900.0.0",
"@pnpm/lockfile.filtering": "^900.0.0",
"@pnpm/lockfile.fs": "^900.0.0",
"@pnpm/lockfile.types": "^900.0.0",
"@pnpm/logger": "900.0.0",
"@pnpm/modules-yaml": "900.0.0",
"@pnpm/network.ca-file": "3.0.0",
"@pnpm/config": "1002.7.1",
"@pnpm/core": "1007.0.0",
"@pnpm/default-reporter": "1001.4.0",
"@pnpm/dependency-path": "1000.0.7",
"@pnpm/error": "1000.0.2",
"@pnpm/fetch": "1000.2.0",
"@pnpm/list": "^1000.0.14",
"@pnpm/lockfile.filtering": "^1001.0.9",
"@pnpm/lockfile.fs": "^1001.1.9",
"@pnpm/lockfile.types": "^1001.0.6",
"@pnpm/logger": "1000.0.0",
"@pnpm/modules-yaml": "1000.3.1",
"@pnpm/network.ca-file": "3.0.2",
"@pnpm/node-fetch": "^1.0.0",
"@pnpm/package-store": "900.0.0",
"@pnpm/parse-overrides": "900.0.0",
"@pnpm/pick-registry-for-package": "900.0.0",
"@pnpm/plugin-commands-publishing": "900.0.1",
"@pnpm/plugin-commands-rebuild": "900.0.1",
"@pnpm/registry-mock": "3.44.0",
"@pnpm/reviewing.dependencies-hierarchy": "^900.0.0",
"@pnpm/package-store": "1002.0.0",
"@pnpm/parse-overrides": "1000.0.2",
"@pnpm/plugin-commands-publishing": "1000.1.19",
"@pnpm/plugin-commands-rebuild": "1002.0.10",
"@pnpm/registry-mock": "3.48.0",
"@pnpm/reviewing.dependencies-hierarchy": "^1001.0.11",
"@pnpm/semver-diff": "1.1.0",
"@pnpm/sort-packages": "900.0.0",
"@pnpm/store-connection-manager": "900.0.1",
"@pnpm/types": "900.0.0",
"@pnpm/worker": "900.0.0",
"@pnpm/workspace.pkgs-graph": "900.0.1",
"@pnpm/sort-packages": "1000.0.6",
"@pnpm/store-connection-manager": "1001.0.0",
"@pnpm/types": "1000.4.0",
"@pnpm/worker": "1000.1.3",
"@pnpm/workspace.pkgs-graph": "1000.0.11",
"@react-hook/latest": "1.0.3",
"@svgr/webpack": "8.1.0",
"@teambit/any-fs": "0.0.5",
Expand Down Expand Up @@ -128,8 +127,8 @@
"@teambit/component.ui.component-compare.status-resolver": "^0.0.9",
"@teambit/component.ui.component-compare.utils.group-by-version": "^0.0.8",
"@teambit/component.ui.component-compare.utils.sort-logs": "^0.0.8",
"@teambit/component.ui.component-deprecated": "^0.0.40",
"@teambit/component.ui.component-compare.utils.sort-tabs": "0.0.104",
"@teambit/component.ui.component-deprecated": "^0.0.40",
"@teambit/component.ui.component-meta": "^0.0.367",
"@teambit/component.ui.component-size": "^0.0.77",
"@teambit/component.ui.component-status-resolver": "^0.0.510",
Expand All @@ -153,7 +152,7 @@
"@teambit/defender.ui.test-loader": "^0.0.504",
"@teambit/defender.ui.test-table": "^0.0.510",
"@teambit/dependencies.modules.packages-excluder": "^1.0.8",
"@teambit/dependencies.pnpm.dep-path": "^0.0.2",
"@teambit/dependencies.pnpm.dep-path": "1.0.0",
"@teambit/design.buttons.action-button": "^0.0.3",
"@teambit/design.controls.menu": "^0.0.1",
"@teambit/design.elements.icon": "1.0.5",
Expand Down Expand Up @@ -289,8 +288,8 @@
"@teambit/ui-foundation.ui.tree.tree-node": "0.0.517",
"@teambit/ui-foundation.ui.use-box.bottom-link": "^0.0.119",
"@teambit/ui-foundation.ui.use-box.dropdown": "^0.0.143",
"@teambit/ui-foundation.ui.use-box.scope-menu": "^0.0.147",
"@teambit/ui-foundation.ui.use-box.menu": "^1.0.16",
"@teambit/ui-foundation.ui.use-box.scope-menu": "^0.0.147",
"@teambit/ui-foundation.ui.use-box.tab": "^0.0.122",
"@teambit/workspace.content.variants": "1.95.9",
"@teambit/workspace.content.workspace-overview": "1.95.0",
Expand Down Expand Up @@ -606,7 +605,6 @@
}
},
"linkCoreAspects": false,
// "packageManager": "teambit.fusepm/aspects/fusepm",
"packageManager": "teambit.dependencies/pnpm",
"rootComponents": true,
"overrides": {
Expand All @@ -628,9 +626,9 @@
"encoding": "-"
},
"nodeVersion": "22.14.0",
"engineStrict": true,
// This is a temporary workaround to fix "bit compile" on macOS and Windows.
// "bit compile" breaks node_modules when hard links are used.
"engineStrict": true,
"packageImportMethod": "copy",
"packageManagerArgs": [],
"devFilePatterns": [
Expand Down