monorepo-next 8.0.1 → 8.0.4
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.
- package/package.json +1 -1
- package/src/build-release-graph.js +46 -26
- package/src/release.js +1 -1
package/package.json
CHANGED
@@ -45,11 +45,11 @@ function isReleaseTypeInRange(version, type, range) {
|
|
45
45
|
return semver.satisfies(semver.inc(version, type), range);
|
46
46
|
}
|
47
47
|
|
48
|
+
let shouldVersionBumpSymbol = Symbol('shouldVersionBump');
|
49
|
+
|
48
50
|
async function init({
|
49
51
|
dag,
|
50
52
|
releaseTrees,
|
51
|
-
releaseType,
|
52
|
-
shouldVersionBump = true,
|
53
53
|
}) {
|
54
54
|
let {
|
55
55
|
isPackage,
|
@@ -69,23 +69,30 @@ async function init({
|
|
69
69
|
}
|
70
70
|
}
|
71
71
|
|
72
|
-
if (!releaseType) {
|
73
|
-
releaseType = await module.exports.getReleaseType(name, cwd);
|
74
|
-
}
|
75
|
-
|
76
72
|
let canBumpVersion = !!(version && name);
|
77
73
|
let canPublish = isPackage;
|
78
|
-
let shouldBumpVersion = canBumpVersion && shouldVersionBump;
|
79
|
-
let shouldPublish = canPublish && shouldBumpVersion;
|
80
74
|
|
81
|
-
|
75
|
+
let shouldVersionBump = false;
|
76
|
+
|
77
|
+
let releaseTree = {
|
82
78
|
oldVersion: version,
|
83
|
-
releaseType,
|
79
|
+
releaseType: defaultReleaseType,
|
84
80
|
cwd,
|
85
81
|
name,
|
86
|
-
|
87
|
-
|
82
|
+
[shouldVersionBumpSymbol]() {
|
83
|
+
shouldVersionBump = true;
|
84
|
+
},
|
85
|
+
get shouldBumpVersion() {
|
86
|
+
return canBumpVersion && shouldVersionBump;
|
87
|
+
},
|
88
|
+
get shouldPublish() {
|
89
|
+
return canPublish && this.shouldBumpVersion;
|
90
|
+
},
|
88
91
|
};
|
92
|
+
|
93
|
+
releaseTrees[name] = releaseTree;
|
94
|
+
|
95
|
+
return releaseTree;
|
89
96
|
}
|
90
97
|
|
91
98
|
async function firstPass({
|
@@ -97,7 +104,14 @@ async function firstPass({
|
|
97
104
|
continue;
|
98
105
|
}
|
99
106
|
|
100
|
-
|
107
|
+
let {
|
108
|
+
packageName: name,
|
109
|
+
cwd,
|
110
|
+
} = dag.node;
|
111
|
+
|
112
|
+
let releaseTree = await init({ dag, releaseTrees });
|
113
|
+
|
114
|
+
releaseTree.releaseType = await module.exports.getReleaseType(name, cwd);
|
101
115
|
}
|
102
116
|
}
|
103
117
|
|
@@ -120,18 +134,19 @@ async function secondPass({
|
|
120
134
|
let doesPackageHaveChanges = !!releaseTrees[dag.node.packageName];
|
121
135
|
if (!doesPackageHaveChanges) {
|
122
136
|
let isDevDep = dag.dependencyType === 'devDependencies';
|
123
|
-
let shouldVersionBump = !shouldExcludeDevChanges || !isDevDep;
|
124
137
|
|
125
138
|
if (dag.node.isPackage && shouldInheritGreaterReleaseType && !isDevDep && shouldBumpInRangeDependencies) {
|
126
|
-
await init({ dag, releaseTrees
|
139
|
+
await init({ dag, releaseTrees });
|
127
140
|
} else if (!isReleaseTypeInRange(parent.oldVersion, parent.releaseType, dag.dependencyRange)) {
|
128
|
-
await init({ dag, releaseTrees
|
141
|
+
await init({ dag, releaseTrees });
|
129
142
|
} else if (shouldBumpInRangeDependencies) {
|
130
|
-
await init({ dag, releaseTrees
|
143
|
+
await init({ dag, releaseTrees });
|
131
144
|
} else {
|
132
145
|
return;
|
133
146
|
}
|
134
147
|
|
148
|
+
let shouldVersionBump = !(shouldExcludeDevChanges && isDevDep);
|
149
|
+
|
135
150
|
if (!shouldVersionBump) {
|
136
151
|
return;
|
137
152
|
}
|
@@ -157,6 +172,7 @@ function thirdPass({
|
|
157
172
|
releaseTrees,
|
158
173
|
packagesWithChanges,
|
159
174
|
shouldInheritGreaterReleaseType,
|
175
|
+
shouldExcludeDevChanges,
|
160
176
|
}) {
|
161
177
|
for (let { dag, changedReleasableFiles } of packagesWithChanges) {
|
162
178
|
if (!changedReleasableFiles.length) {
|
@@ -173,18 +189,24 @@ function thirdPass({
|
|
173
189
|
return;
|
174
190
|
}
|
175
191
|
|
192
|
+
let isDevDep = dag.dependencyType === 'devDependencies';
|
176
193
|
let currentReleaseType = current.releaseType;
|
177
|
-
|
178
194
|
let incomingReleaseType = parent ? parent.releaseType : currentReleaseType;
|
179
195
|
|
180
|
-
if (shouldInheritGreaterReleaseType &&
|
196
|
+
if (shouldInheritGreaterReleaseType && !isDevDep && isReleaseTypeLessThan(currentReleaseType, incomingReleaseType)) {
|
181
197
|
currentReleaseType = incomingReleaseType;
|
182
198
|
}
|
183
199
|
|
184
200
|
current.releaseType = currentReleaseType;
|
185
201
|
|
202
|
+
let shouldVersionBump = !(shouldExcludeDevChanges && isDevDep);
|
203
|
+
|
204
|
+
if (shouldVersionBump) {
|
205
|
+
current[shouldVersionBumpSymbol]();
|
206
|
+
}
|
207
|
+
|
186
208
|
for (let group of dag.node.dependents) {
|
187
|
-
if (
|
209
|
+
if (isCycle(group)) {
|
188
210
|
continue;
|
189
211
|
}
|
190
212
|
|
@@ -221,11 +243,11 @@ function fourthPass({
|
|
221
243
|
|
222
244
|
for (let type of dependencyTypes) {
|
223
245
|
if (!current[type]) {
|
224
|
-
current[type] =
|
246
|
+
current[type] = {};
|
225
247
|
}
|
226
248
|
}
|
227
249
|
|
228
|
-
if (parent && !current[dag.dependencyType]
|
250
|
+
if (parent && !current[dag.dependencyType][parent.name]) {
|
229
251
|
let { name } = parent;
|
230
252
|
|
231
253
|
let oldRange = dag.dependencyRange;
|
@@ -242,10 +264,7 @@ function fourthPass({
|
|
242
264
|
});
|
243
265
|
}
|
244
266
|
|
245
|
-
current[dag.dependencyType]
|
246
|
-
name,
|
247
|
-
newRange,
|
248
|
-
});
|
267
|
+
current[dag.dependencyType][name] = newRange;
|
249
268
|
}
|
250
269
|
|
251
270
|
for (let group of dag.node.dependents) {
|
@@ -293,6 +312,7 @@ async function buildReleaseGraph({
|
|
293
312
|
releaseTrees,
|
294
313
|
packagesWithChanges,
|
295
314
|
shouldInheritGreaterReleaseType,
|
315
|
+
shouldExcludeDevChanges,
|
296
316
|
});
|
297
317
|
|
298
318
|
// dependents have now inherited release type
|
package/src/release.js
CHANGED