@effected/workspaces 0.30.1 → 0.30.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -74,11 +74,24 @@ const closureOf = (packages, carrier, closure) => {
|
|
|
74
74
|
return Result.succeed(ordered);
|
|
75
75
|
};
|
|
76
76
|
const major = (version) => Number.parseInt(version.split(".")[0] ?? "", 10);
|
|
77
|
+
const minor = (version) => Number.parseInt(version.split(".")[1] ?? "", 10);
|
|
77
78
|
const YARNRC = "nodeLinker: node-modules\nenableImmutableInstalls: false\nenableScripts: false\nenableTelemetry: false\n";
|
|
78
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* Berry's release-age gate, off: the consumer installs packages its caller
|
|
81
|
+
* has just released, so the gate only ever quarantines them. 4.10 introduced
|
|
82
|
+
* the setting, and Berry fails every command on a setting it does not know.
|
|
83
|
+
*/
|
|
84
|
+
const YARNRC_AGE_GATE = "npmMinimalAgeGate: 0\n";
|
|
85
|
+
const yarnrc = (version) => major(version) > 4 || major(version) === 4 && minor(version) >= 10 ? `${YARNRC}${YARNRC_AGE_GATE}` : YARNRC;
|
|
86
|
+
/**
|
|
87
|
+
* JSON strings are valid YAML double-quoted scalars. `minimumReleaseAge: 0`
|
|
88
|
+
* switches off pnpm's release-age gate, on by default in pnpm 11 and 12 and
|
|
89
|
+
* non-strict: it would rewrite this file with exclusions for fresh packages,
|
|
90
|
+
* and resolve a range to an older, mature match where one exists.
|
|
91
|
+
*/
|
|
79
92
|
const pnpmWorkspaceYaml = (specs) => {
|
|
80
93
|
const entries = Object.entries(specs);
|
|
81
|
-
return entries.length === 0 ? "
|
|
94
|
+
return entries.length === 0 ? "minimumReleaseAge: 0\noverrides: {}\n" : `minimumReleaseAge: 0\noverrides:\n${entries.map(([name, spec]) => ` ${JSON.stringify(name)}: ${JSON.stringify(spec)}`).join("\n")}\n`;
|
|
82
95
|
};
|
|
83
96
|
/**
|
|
84
97
|
* The files of one scratch consumer. The carrier and the caller's extra
|
|
@@ -125,7 +138,7 @@ const consumerFiles = (input) => {
|
|
|
125
138
|
});
|
|
126
139
|
if (input.manager === "yarn" && major(input.version) >= 2) files.push({
|
|
127
140
|
file: ".yarnrc.yml",
|
|
128
|
-
content:
|
|
141
|
+
content: yarnrc(input.version)
|
|
129
142
|
});
|
|
130
143
|
return files;
|
|
131
144
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effected/workspaces",
|
|
3
|
-
"version": "0.30.
|
|
3
|
+
"version": "0.30.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Monorepo workspace tooling as Effect services — root discovery, package enumeration, the dependency graph, package-manager detection, pnpm catalog resolution, lockfile IO and git-based change detection.",
|
|
6
6
|
"keywords": [
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@effected/commands": "^0.10.0",
|
|
55
|
-
"@effected/git": "^0.
|
|
55
|
+
"@effected/git": "^0.19.0",
|
|
56
56
|
"@effected/glob": "^0.9.0",
|
|
57
57
|
"@effected/jsonc": "^0.14.0",
|
|
58
58
|
"@effected/lockfiles": "^0.14.0",
|
|
59
59
|
"@effected/npm": "^0.19.0",
|
|
60
60
|
"@effected/package-json": "^0.19.1",
|
|
61
61
|
"@effected/semver": "^0.10.1",
|
|
62
|
-
"@effected/walker": "^0.
|
|
62
|
+
"@effected/walker": "^0.14.0",
|
|
63
63
|
"@effected/yaml": "^0.18.0",
|
|
64
64
|
"@pnpm/catalogs.config": "^1100.0.5",
|
|
65
65
|
"@pnpm/catalogs.protocol-parser": "^1100.0.0",
|