@proteinjs/build 1.6.6 → 1.8.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,34 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.8.0](https://github.com/proteinjs/build/compare/@proteinjs/build@1.7.0...@proteinjs/build@1.8.0) (2026-04-13)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * use Promise<any> for retryOnNetworkError fn param to match cmd return type ([b843193](https://github.com/proteinjs/build/commit/b843193252062142c009e3116b19f4666355c252))
12
+
13
+
14
+ ### Features
15
+
16
+ * add git lock eviction, feature-aware minor bumps, and dirty root repo skip ([678720a](https://github.com/proteinjs/build/commit/678720a9efc2c9ccdd73534033f913d965ee6f43))
17
+ * retry npm install and publish on transient network errors ([d1e9502](https://github.com/proteinjs/build/commit/d1e9502fe4e57dfe661724a6aae41fa40584f86f))
18
+
19
+
20
+
21
+
22
+
23
+ # [1.7.0](https://github.com/proteinjs/build/compare/@proteinjs/build@1.6.6...@proteinjs/build@1.7.0) (2026-04-09)
24
+
25
+
26
+ ### Features
27
+
28
+ * **version:** retry npm install on registry propagation delays, deduplicate git pulls ([5d0c516](https://github.com/proteinjs/build/commit/5d0c516eaa124f3236a70e801c16818ebac2cae4))
29
+
30
+
31
+
32
+
33
+
6
34
  ## [1.6.3](https://github.com/proteinjs/build/compare/@proteinjs/build@1.6.2...@proteinjs/build@1.6.3) (2025-11-22)
7
35
 
8
36
 
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Brent Bahry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,2 +1,3 @@
1
1
  export declare function versionWorkspace(): Promise<void>;
2
+ export declare function evictGitLocks(workspacePath: string): Promise<void>;
2
3
  //# sourceMappingURL=versionWorkspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionWorkspace.d.ts","sourceRoot":"","sources":["../../src/versionWorkspace.ts"],"names":[],"mappings":"AAaA,wBAAsB,gBAAgB,kBAiErC"}
1
+ {"version":3,"file":"versionWorkspace.d.ts","sourceRoot":"","sources":["../../src/versionWorkspace.ts"],"names":[],"mappings":"AAaA,wBAAsB,gBAAgB,kBAsErC;AAqnBD,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,iBAUxD"}
@@ -82,7 +82,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
82
82
  return (mod && mod.__esModule) ? mod : { "default": mod };
83
83
  };
84
84
  Object.defineProperty(exports, "__esModule", { value: true });
85
- exports.versionWorkspace = void 0;
85
+ exports.evictGitLocks = exports.versionWorkspace = void 0;
86
86
  var path = __importStar(require("path"));
87
87
  var child_process_1 = require("child_process");
88
88
  var util_node_1 = require("@proteinjs/util-node");
@@ -95,7 +95,7 @@ var logger = new logger_1.Logger({ name: cw.color('workspace:', logColors_1.prim
95
95
  var fixedVersionWorkspacesToVersion = {};
96
96
  function versionWorkspace() {
97
97
  return __awaiter(this, void 0, void 0, function () {
98
- var dryRun, workspacePath, _a, packageMap, packageGraph, sortedPackageNames, workspaceToPackageMap, skippedPackages, filteredPackageNames, _i, filteredPackageNames_1, packageName, localPackage, skipBumpingPackageVersion, dependenciesChanged, pushWithoutSync;
98
+ var dryRun, workspacePath, workspaceRootDirty, _a, packageMap, packageGraph, sortedPackageNames, workspaceToPackageMap, skippedPackages, filteredPackageNames, _i, filteredPackageNames_1, packageName, localPackage, skipBumpingPackageVersion, dependenciesChanged, pushWithoutSync;
99
99
  return __generator(this, function (_b) {
100
100
  switch (_b.label) {
101
101
  case 0:
@@ -104,15 +104,24 @@ function versionWorkspace() {
104
104
  logger.info({ message: 'Dry run mode enabled. Publish and push operations will be skipped.' });
105
105
  }
106
106
  workspacePath = process.cwd();
107
- if (!dryRun) return [3 /*break*/, 1];
108
- logger.info({ message: "> Dry run: skipping pullWorkspace for (".concat(workspacePath, ")") });
109
- return [3 /*break*/, 3];
110
- case 1: return [4 /*yield*/, pullWorkspace(workspacePath)];
111
- case 2:
107
+ return [4 /*yield*/, evictGitLocks(workspacePath)];
108
+ case 1:
112
109
  _b.sent();
113
- _b.label = 3;
114
- case 3: return [4 /*yield*/, util_node_1.PackageUtil.getWorkspaceMetadata(workspacePath)];
110
+ return [4 /*yield*/, isRepoDirty(workspacePath)];
111
+ case 2:
112
+ workspaceRootDirty = _b.sent();
113
+ if (workspaceRootDirty) {
114
+ logger.info({ message: "> Workspace root is dirty, will skip pull/push for root repo" });
115
+ }
116
+ if (!dryRun) return [3 /*break*/, 3];
117
+ logger.info({ message: "> Dry run: skipping pullWorkspace for (".concat(workspacePath, ")") });
118
+ return [3 /*break*/, 5];
119
+ case 3: return [4 /*yield*/, pullWorkspace(workspacePath, workspaceRootDirty)];
115
120
  case 4:
121
+ _b.sent();
122
+ _b.label = 5;
123
+ case 5: return [4 /*yield*/, util_node_1.PackageUtil.getWorkspaceMetadata(workspacePath)];
124
+ case 6:
116
125
  _a = _b.sent(), packageMap = _a.packageMap, packageGraph = _a.packageGraph, sortedPackageNames = _a.sortedPackageNames, workspaceToPackageMap = _a.workspaceToPackageMap;
117
126
  skippedPackages = ['root', 'typescript-parser'];
118
127
  filteredPackageNames = sortedPackageNames.filter(function (packageName) {
@@ -124,50 +133,50 @@ function versionWorkspace() {
124
133
  });
125
134
  logger.info({ message: "> Versioning workspace (".concat(workspacePath, ")") });
126
135
  _i = 0, filteredPackageNames_1 = filteredPackageNames;
127
- _b.label = 5;
128
- case 5:
129
- if (!(_i < filteredPackageNames_1.length)) return [3 /*break*/, 12];
136
+ _b.label = 7;
137
+ case 7:
138
+ if (!(_i < filteredPackageNames_1.length)) return [3 /*break*/, 14];
130
139
  packageName = filteredPackageNames_1[_i];
131
140
  localPackage = packageMap[packageName];
132
141
  skipBumpingPackageVersion = isInFixedVersionWorkspace(localPackage);
133
142
  return [4 /*yield*/, bumpDependencies(localPackage, packageMap, packageGraph, skipBumpingPackageVersion)];
134
- case 6:
143
+ case 8:
135
144
  dependenciesChanged = _b.sent();
136
145
  if (!dependenciesChanged) {
137
- return [3 /*break*/, 11];
146
+ return [3 /*break*/, 13];
138
147
  }
139
148
  return [4 /*yield*/, buildAndTest(localPackage)];
140
- case 7:
149
+ case 9:
141
150
  _b.sent();
142
151
  if (isInFixedVersionWorkspace(localPackage) && localPackage.workspace) {
143
152
  fixedVersionWorkspacesToVersion[localPackage.workspace.path] = true;
144
153
  logger.info({
145
154
  message: "(".concat(cw.color(packageName), ") skipping version push for package in a fixed-version workspace"),
146
155
  });
147
- return [3 /*break*/, 11];
156
+ return [3 /*break*/, 13];
148
157
  }
149
- if (!shouldPublishPackage(localPackage)) return [3 /*break*/, 9];
158
+ if (!shouldPublishPackage(localPackage)) return [3 /*break*/, 11];
150
159
  return [4 /*yield*/, publish(localPackage)];
151
- case 8:
152
- _b.sent();
153
- _b.label = 9;
154
- case 9: return [4 /*yield*/, pushAndTag(localPackage)];
155
160
  case 10:
156
161
  _b.sent();
157
162
  _b.label = 11;
158
- case 11:
159
- _i++;
160
- return [3 /*break*/, 5];
163
+ case 11: return [4 /*yield*/, pushAndTag(localPackage)];
161
164
  case 12:
165
+ _b.sent();
166
+ _b.label = 13;
167
+ case 13:
168
+ _i++;
169
+ return [3 /*break*/, 7];
170
+ case 14:
162
171
  pushWithoutSync = true;
163
172
  return [4 /*yield*/, syncFixedVersionWorkspaces(Object.keys(fixedVersionWorkspacesToVersion), packageMap, workspaceToPackageMap, pushWithoutSync)];
164
- case 13:
173
+ case 15:
165
174
  _b.sent();
166
- return [4 /*yield*/, pushMetarepos(workspacePath)];
167
- case 14:
175
+ return [4 /*yield*/, pushMetarepos(workspacePath, workspaceRootDirty)];
176
+ case 16:
168
177
  _b.sent();
169
178
  return [4 /*yield*/, symlinkWorkspace(workspacePath, filteredPackageNames, packageMap)];
170
- case 15:
179
+ case 17:
171
180
  _b.sent();
172
181
  logger.info({ message: "> Finished versioning workspace (".concat(workspacePath, ")") });
173
182
  return [2 /*return*/];
@@ -193,9 +202,25 @@ function isInFixedVersionWorkspace(localPackage) {
193
202
  localPackage.workspace.lernaJson &&
194
203
  localPackage.workspace.lernaJson.version !== 'independent');
195
204
  }
196
- function pullWorkspace(workspacePath) {
205
+ function getGitRepoRoot(dir) {
206
+ return __awaiter(this, void 0, void 0, function () {
207
+ return __generator(this, function (_a) {
208
+ return [2 /*return*/, new Promise(function (resolve, reject) {
209
+ (0, child_process_1.exec)('git rev-parse --show-toplevel', { cwd: dir }, function (error, stdout) {
210
+ if (error) {
211
+ reject(error);
212
+ return;
213
+ }
214
+ resolve(stdout.trim());
215
+ });
216
+ })];
217
+ });
218
+ });
219
+ }
220
+ function pullWorkspace(workspacePath, skipRootRepo) {
221
+ if (skipRootRepo === void 0) { skipRootRepo = false; }
197
222
  return __awaiter(this, void 0, void 0, function () {
198
- var _a, packageMap, sortedPackageNames, filteredPackageNames, _i, filteredPackageNames_2, packageName, localPackage;
223
+ var _a, packageMap, sortedPackageNames, filteredPackageNames, pulledRepoRoots, _i, filteredPackageNames_2, packageName, localPackage, packageDir, repoRoot, repoName_1, repoName;
199
224
  return __generator(this, function (_b) {
200
225
  switch (_b.label) {
201
226
  case 0: return [4 /*yield*/, util_node_1.PackageUtil.getWorkspaceMetadata(workspacePath)];
@@ -208,21 +233,38 @@ function pullWorkspace(workspacePath) {
208
233
  !!((_b = localPackage.packageJson.scripts) === null || _b === void 0 ? void 0 : _b.build) &&
209
234
  packageName != 'typescript-parser');
210
235
  });
236
+ pulledRepoRoots = new Set();
211
237
  logger.info({ message: "> Pulling workspace (".concat(workspacePath, ")") });
212
238
  _i = 0, filteredPackageNames_2 = filteredPackageNames;
213
239
  _b.label = 2;
214
240
  case 2:
215
- if (!(_i < filteredPackageNames_2.length)) return [3 /*break*/, 5];
241
+ if (!(_i < filteredPackageNames_2.length)) return [3 /*break*/, 6];
216
242
  packageName = filteredPackageNames_2[_i];
217
243
  localPackage = packageMap[packageName];
218
- return [4 /*yield*/, pull(localPackage)];
244
+ packageDir = path.dirname(localPackage.filePath);
245
+ return [4 /*yield*/, getGitRepoRoot(packageDir)];
219
246
  case 3:
220
- _b.sent();
221
- _b.label = 4;
247
+ repoRoot = _b.sent();
248
+ if (pulledRepoRoots.has(repoRoot)) {
249
+ return [3 /*break*/, 5];
250
+ }
251
+ pulledRepoRoots.add(repoRoot);
252
+ if (skipRootRepo && path.resolve(repoRoot) === path.resolve(workspacePath)) {
253
+ repoName_1 = path.basename(repoRoot);
254
+ logger.info({ message: "(".concat(cw.color(repoName_1), ") skipping pull for dirty workspace root repo") });
255
+ return [3 /*break*/, 5];
256
+ }
257
+ repoName = path.basename(repoRoot);
258
+ logger.info({ message: "(".concat(cw.color(repoName), ") pulling latest changes") });
259
+ return [4 /*yield*/, (0, util_node_1.cmd)('git', ['pull'], { cwd: repoRoot }, { logPrefix: "[".concat(cw.color(repoName), "] ") })];
222
260
  case 4:
261
+ _b.sent();
262
+ logger.info({ message: "(".concat(cw.color(repoName), ") pulled latest changes") });
263
+ _b.label = 5;
264
+ case 5:
223
265
  _i++;
224
266
  return [3 /*break*/, 2];
225
- case 5:
267
+ case 6:
226
268
  logger.info({ message: "> Finished pulling workspace (".concat(workspacePath, ")") });
227
269
  return [2 /*return*/];
228
270
  }
@@ -232,7 +274,7 @@ function pullWorkspace(workspacePath) {
232
274
  function bumpDependencies(localPackage, packageMap, packageGraph, skipBumpingPackageVersion) {
233
275
  if (skipBumpingPackageVersion === void 0) { skipBumpingPackageVersion = false; }
234
276
  return __awaiter(this, void 0, void 0, function () {
235
- var localDependencies, dependenciesChanged, _i, localDependencies_1, localDependency, localDependencyPackage, localDependencyVersion, currentDependencyVersion, newDependencyVersion, currentVersion;
277
+ var localDependencies, dependenciesChanged, _i, localDependencies_1, localDependency, localDependencyPackage, localDependencyVersion, currentDependencyVersion, newDependencyVersion, currentVersion, packageDir, bump;
236
278
  return __generator(this, function (_a) {
237
279
  switch (_a.label) {
238
280
  case 0:
@@ -262,19 +304,23 @@ function bumpDependencies(localPackage, packageMap, packageGraph, skipBumpingPac
262
304
  setDependencyVersion(localDependency, currentDependencyVersion, newDependencyVersion, localPackage);
263
305
  dependenciesChanged = true;
264
306
  }
265
- if (!dependenciesChanged) return [3 /*break*/, 2];
266
- if (!skipBumpingPackageVersion) {
267
- currentVersion = localPackage.packageJson.version;
268
- localPackage.packageJson.version = semver_1.default.inc(currentVersion, 'patch');
269
- logger.info({
270
- message: "(".concat(cw.color(localPackage.name), ") bumping version from ").concat(currentVersion, " -> ").concat(localPackage.packageJson.version),
271
- });
272
- }
273
- return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }])];
307
+ if (!dependenciesChanged) return [3 /*break*/, 4];
308
+ if (!!skipBumpingPackageVersion) return [3 /*break*/, 2];
309
+ currentVersion = localPackage.packageJson.version;
310
+ packageDir = path.dirname(localPackage.filePath);
311
+ return [4 /*yield*/, hasFeatureCommits(packageDir)];
274
312
  case 1:
275
- _a.sent();
313
+ bump = (_a.sent()) ? 'minor' : 'patch';
314
+ localPackage.packageJson.version = semver_1.default.inc(currentVersion, bump);
315
+ logger.info({
316
+ message: "(".concat(cw.color(localPackage.name), ") bumping version (").concat(bump, ") from ").concat(currentVersion, " -> ").concat(localPackage.packageJson.version),
317
+ });
276
318
  _a.label = 2;
277
- case 2: return [2 /*return*/, dependenciesChanged];
319
+ case 2: return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }])];
320
+ case 3:
321
+ _a.sent();
322
+ _a.label = 4;
323
+ case 4: return [2 /*return*/, dependenciesChanged];
278
324
  }
279
325
  });
280
326
  });
@@ -363,7 +409,7 @@ function syncFixedVersionWorkspaces(fixedVersionWorkspacePaths, packageMap, work
363
409
  function syncFixedVersions(workspacePath, localPackages) {
364
410
  var _a;
365
411
  return __awaiter(this, void 0, void 0, function () {
366
- var lernaJson, highestVersion, syncedFixedVersions, _i, localPackages_1, localPackage, currentVersion, lernaJsonPath;
412
+ var lernaJson, bump, highestVersion, syncedFixedVersions, _i, localPackages_1, localPackage, currentVersion, lernaJsonPath;
367
413
  return __generator(this, function (_b) {
368
414
  switch (_b.label) {
369
415
  case 0:
@@ -371,41 +417,88 @@ function syncFixedVersions(workspacePath, localPackages) {
371
417
  if (!lernaJson) {
372
418
  throw new Error("Cannot find lerna.json for workspace: ".concat(workspacePath));
373
419
  }
374
- highestVersion = semver_1.default.inc(lernaJson.version, 'patch');
420
+ return [4 /*yield*/, hasFeatureCommits(workspacePath)];
421
+ case 1:
422
+ bump = (_b.sent()) ? 'minor' : 'patch';
423
+ highestVersion = semver_1.default.inc(lernaJson.version, bump);
375
424
  if (!highestVersion) {
376
425
  throw new Error("Lerna version not specified for workspace: ".concat(workspacePath));
377
426
  }
378
427
  syncedFixedVersions = false;
379
428
  _i = 0, localPackages_1 = localPackages;
380
- _b.label = 1;
381
- case 1:
382
- if (!(_i < localPackages_1.length)) return [3 /*break*/, 4];
429
+ _b.label = 2;
430
+ case 2:
431
+ if (!(_i < localPackages_1.length)) return [3 /*break*/, 5];
383
432
  localPackage = localPackages_1[_i];
384
433
  currentVersion = localPackage.packageJson.version;
385
434
  if (currentVersion === highestVersion) {
386
- return [3 /*break*/, 3];
435
+ return [3 /*break*/, 4];
387
436
  }
388
437
  localPackage.packageJson.version = highestVersion;
389
438
  logger.info({
390
439
  message: "(".concat(cw.color(localPackage.name), ") bumping version from ").concat(currentVersion, " -> ").concat(localPackage.packageJson.version),
391
440
  });
392
441
  return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }])];
393
- case 2:
442
+ case 3:
394
443
  _b.sent();
395
444
  syncedFixedVersions = true;
396
- _b.label = 3;
397
- case 3:
398
- _i++;
399
- return [3 /*break*/, 1];
445
+ _b.label = 4;
400
446
  case 4:
401
- if (!syncedFixedVersions) return [3 /*break*/, 6];
447
+ _i++;
448
+ return [3 /*break*/, 2];
449
+ case 5:
450
+ if (!syncedFixedVersions) return [3 /*break*/, 7];
402
451
  lernaJsonPath = path.join(workspacePath, 'lerna.json');
403
452
  lernaJson.version = highestVersion;
404
453
  return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: lernaJsonPath, content: JSON.stringify(lernaJson, null, 2) }])];
405
- case 5:
454
+ case 6:
406
455
  _b.sent();
407
- _b.label = 6;
408
- case 6: return [2 /*return*/, syncedFixedVersions ? highestVersion : false];
456
+ _b.label = 7;
457
+ case 7: return [2 /*return*/, syncedFixedVersions ? highestVersion : false];
458
+ }
459
+ });
460
+ });
461
+ }
462
+ function installWithRetry(localPackage, packageDir) {
463
+ var _a, _b;
464
+ return __awaiter(this, void 0, void 0, function () {
465
+ var maxRetries, retryDelayMs, attempt, error_1, output, isRegistryPropagationError, isRetryable, reason;
466
+ return __generator(this, function (_c) {
467
+ switch (_c.label) {
468
+ case 0:
469
+ maxRetries = 10;
470
+ retryDelayMs = 90000;
471
+ attempt = 1;
472
+ _c.label = 1;
473
+ case 1:
474
+ if (!(attempt <= maxRetries)) return [3 /*break*/, 7];
475
+ _c.label = 2;
476
+ case 2:
477
+ _c.trys.push([2, 4, , 6]);
478
+ return [4 /*yield*/, (0, util_node_1.cmd)('npm', ['install'], { cwd: packageDir }, { logPrefix: "[".concat(cw.color(localPackage.name), "] ") })];
479
+ case 3:
480
+ _c.sent();
481
+ return [2 /*return*/];
482
+ case 4:
483
+ error_1 = _c.sent();
484
+ output = "".concat((_a = error_1.stdout) !== null && _a !== void 0 ? _a : '').concat((_b = error_1.stderr) !== null && _b !== void 0 ? _b : '');
485
+ isRegistryPropagationError = /No matching version found/i.test(output) || /ETARGET/i.test(output) || /404 Not Found/i.test(output);
486
+ isRetryable = isRegistryPropagationError || isNetworkError(error_1);
487
+ if (!isRetryable || attempt === maxRetries) {
488
+ throw error_1;
489
+ }
490
+ reason = isRegistryPropagationError ? 'dependency not yet available on registry' : 'network error';
491
+ logger.info({
492
+ message: "(".concat(cw.color(localPackage.name), ") ").concat(reason, ", retrying install (attempt ").concat(attempt, "/").concat(maxRetries, ", next retry in ").concat(retryDelayMs / 1000, "s)"),
493
+ });
494
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, retryDelayMs); })];
495
+ case 5:
496
+ _c.sent();
497
+ return [3 /*break*/, 6];
498
+ case 6:
499
+ attempt++;
500
+ return [3 /*break*/, 1];
501
+ case 7: return [2 /*return*/];
409
502
  }
410
503
  });
411
504
  });
@@ -424,7 +517,7 @@ function buildAndTest(localPackage) {
424
517
  _b.sent();
425
518
  logger.info({ message: "(".concat(cw.color(localPackage.name), ") cleaned package") });
426
519
  logger.info({ message: "(".concat(cw.color(localPackage.name), ") installing latest dependency versions") });
427
- return [4 /*yield*/, (0, util_node_1.cmd)('npm', ['install'], { cwd: packageDir }, { logPrefix: "[".concat(cw.color(localPackage.name), "] ") })];
520
+ return [4 /*yield*/, installWithRetry(localPackage, packageDir)];
428
521
  case 2:
429
522
  _b.sent();
430
523
  logger.info({ message: "(".concat(cw.color(localPackage.name), ") installed latest dependency versions") });
@@ -528,15 +621,15 @@ function pushAndTagFixedVersionRepo(dir, version, skipTagging, skipCi) {
528
621
  if (skipTagging === void 0) { skipTagging = false; }
529
622
  if (skipCi === void 0) { skipCi = true; }
530
623
  return __awaiter(this, void 0, void 0, function () {
531
- var dryRun, repoName_1, repoName, latestCommitSha, repoInfo, commit, tagName;
624
+ var dryRun, repoName_2, repoName, latestCommitSha, repoInfo, commit, tagName;
532
625
  return __generator(this, function (_a) {
533
626
  switch (_a.label) {
534
627
  case 0:
535
628
  dryRun = isDryRun();
536
629
  if (dryRun) {
537
- repoName_1 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
630
+ repoName_2 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
538
631
  logger.info({
539
- message: "(".concat(cw.color(repoName_1), ") Dry run: skipping git add/commit/push").concat(version ? " for version ".concat(version) : ''),
632
+ message: "(".concat(cw.color(repoName_2), ") Dry run: skipping git add/commit/push").concat(version ? " for version ".concat(version) : ''),
540
633
  });
541
634
  return [2 /*return*/, undefined];
542
635
  }
@@ -585,9 +678,10 @@ function pushAndTagFixedVersionRepo(dir, version, skipTagging, skipCi) {
585
678
  });
586
679
  });
587
680
  }
588
- function pushMetarepos(dir) {
681
+ function pushMetarepos(dir, skipRootRepo) {
682
+ if (skipRootRepo === void 0) { skipRootRepo = false; }
589
683
  return __awaiter(this, void 0, void 0, function () {
590
- var metarepoPaths, _i, metarepoPaths_1, metarepoPath;
684
+ var metarepoPaths, _i, metarepoPaths_1, metarepoPath, repoName;
591
685
  return __generator(this, function (_a) {
592
686
  switch (_a.label) {
593
687
  case 0: return [4 /*yield*/, util_node_1.Fs.getFilePathsMatchingGlob(dir, '**/.gitmodules', ['**/node_modules/**', '**/dist/**'])];
@@ -600,6 +694,11 @@ function pushMetarepos(dir) {
600
694
  case 2:
601
695
  if (!(_i < metarepoPaths_1.length)) return [3 /*break*/, 5];
602
696
  metarepoPath = metarepoPaths_1[_i];
697
+ if (skipRootRepo && path.resolve(metarepoPath) === path.resolve(dir)) {
698
+ repoName = path.basename(metarepoPath);
699
+ logger.info({ message: "(".concat(cw.color(repoName), ") skipping dirty workspace root repo") });
700
+ return [3 /*break*/, 4];
701
+ }
603
702
  return [4 /*yield*/, pushMetarepo(metarepoPath)];
604
703
  case 3:
605
704
  _a.sent();
@@ -614,15 +713,15 @@ function pushMetarepos(dir) {
614
713
  }
615
714
  function pushMetarepo(dir) {
616
715
  return __awaiter(this, void 0, void 0, function () {
617
- var dryRun, repoName_2, repoName;
716
+ var dryRun, repoName_3, repoName;
618
717
  return __generator(this, function (_a) {
619
718
  switch (_a.label) {
620
719
  case 0:
621
720
  dryRun = isDryRun();
622
721
  if (dryRun) {
623
- repoName_2 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
722
+ repoName_3 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
624
723
  logger.info({
625
- message: "(".concat(cw.color(repoName_2), ") Dry run: skipping metarepo commit/push for ").concat(dir),
724
+ message: "(".concat(cw.color(repoName_3), ") Dry run: skipping metarepo commit/push for ").concat(dir),
626
725
  });
627
726
  return [2 /*return*/];
628
727
  }
@@ -759,7 +858,7 @@ function publish(localPackage) {
759
858
  catch (_e) {
760
859
  /* ignore malformed URL */
761
860
  }
762
- return [4 /*yield*/, (0, util_node_1.cmd)('npm', args, { cwd: packageDir, env: __assign({}, process.env) }, { logPrefix: "[".concat(cw.color(localPackage.name), "] ") })];
861
+ return [4 /*yield*/, retryOnNetworkError(function () { return (0, util_node_1.cmd)('npm', args, { cwd: packageDir, env: __assign({}, process.env) }, { logPrefix: "[".concat(cw.color(localPackage.name), "] ") }); }, localPackage.name, 3, 15000)];
763
862
  case 3:
764
863
  _d.sent();
765
864
  logger.info({ message: "(".concat(cw.color(localPackage.name), ") published ").concat(localPackage.packageJson.version) });
@@ -833,4 +932,105 @@ function getPublishRegistry(publishConfig) {
833
932
  }
834
933
  return 'https://registry.npmjs.org/';
835
934
  }
935
+ function isRepoDirty(dir) {
936
+ return __awaiter(this, void 0, void 0, function () {
937
+ return __generator(this, function (_a) {
938
+ return [2 /*return*/, new Promise(function (resolve) {
939
+ (0, child_process_1.exec)('git diff --ignore-submodules HEAD', { cwd: dir }, function (error, stdout) {
940
+ if (error) {
941
+ resolve(false);
942
+ return;
943
+ }
944
+ resolve(stdout.trim().length > 0);
945
+ });
946
+ })];
947
+ });
948
+ });
949
+ }
950
+ function hasFeatureCommits(dir) {
951
+ return __awaiter(this, void 0, void 0, function () {
952
+ return __generator(this, function (_a) {
953
+ return [2 /*return*/, new Promise(function (resolve) {
954
+ (0, child_process_1.exec)('git log @{u}..HEAD --oneline', { cwd: dir }, function (error, stdout) {
955
+ if (error || !stdout.trim()) {
956
+ resolve(false);
957
+ return;
958
+ }
959
+ var hasFeature = stdout.split('\n').some(function (line) { return /^[a-f0-9]+\s+feat[\s(:]/i.test(line); });
960
+ resolve(hasFeature);
961
+ });
962
+ })];
963
+ });
964
+ });
965
+ }
966
+ function evictGitLocks(workspacePath) {
967
+ return __awaiter(this, void 0, void 0, function () {
968
+ var gitDir, lockFiles;
969
+ return __generator(this, function (_a) {
970
+ switch (_a.label) {
971
+ case 0:
972
+ gitDir = path.join(workspacePath, '.git');
973
+ return [4 /*yield*/, util_node_1.Fs.getFilePathsMatchingGlob(gitDir, '**/*.lock')];
974
+ case 1:
975
+ lockFiles = _a.sent();
976
+ if (lockFiles.length === 0) {
977
+ return [2 /*return*/];
978
+ }
979
+ logger.info({ message: "> Evicting ".concat(lockFiles.length, " git lock file(s) from workspace") });
980
+ return [4 /*yield*/, util_node_1.Fs.deleteFiles(lockFiles)];
981
+ case 2:
982
+ _a.sent();
983
+ logger.info({ message: "> Evicted git lock files" });
984
+ return [2 /*return*/];
985
+ }
986
+ });
987
+ });
988
+ }
989
+ exports.evictGitLocks = evictGitLocks;
990
+ function isNetworkError(error) {
991
+ var _a, _b;
992
+ var output = "".concat((_a = error.stdout) !== null && _a !== void 0 ? _a : '').concat((_b = error.stderr) !== null && _b !== void 0 ? _b : '');
993
+ return (/ECONNRESET/i.test(output) || /ETIMEDOUT/i.test(output) || /ENOTFOUND/i.test(output) ||
994
+ /EAI_AGAIN/i.test(output) || /ECONNREFUSED/i.test(output) || /socket hang up/i.test(output) ||
995
+ /network/i.test(output));
996
+ }
997
+ function retryOnNetworkError(fn, label, maxRetries, retryDelayMs) {
998
+ if (maxRetries === void 0) { maxRetries = 3; }
999
+ if (retryDelayMs === void 0) { retryDelayMs = 15000; }
1000
+ return __awaiter(this, void 0, void 0, function () {
1001
+ var attempt, error_2;
1002
+ return __generator(this, function (_a) {
1003
+ switch (_a.label) {
1004
+ case 0:
1005
+ attempt = 1;
1006
+ _a.label = 1;
1007
+ case 1:
1008
+ if (!(attempt <= maxRetries)) return [3 /*break*/, 7];
1009
+ _a.label = 2;
1010
+ case 2:
1011
+ _a.trys.push([2, 4, , 6]);
1012
+ return [4 /*yield*/, fn()];
1013
+ case 3:
1014
+ _a.sent();
1015
+ return [2 /*return*/];
1016
+ case 4:
1017
+ error_2 = _a.sent();
1018
+ if (!isNetworkError(error_2) || attempt === maxRetries) {
1019
+ throw error_2;
1020
+ }
1021
+ logger.info({
1022
+ message: "(".concat(cw.color(label), ") network error, retrying (attempt ").concat(attempt, "/").concat(maxRetries, ", next retry in ").concat(retryDelayMs / 1000, "s)"),
1023
+ });
1024
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, retryDelayMs); })];
1025
+ case 5:
1026
+ _a.sent();
1027
+ return [3 /*break*/, 6];
1028
+ case 6:
1029
+ attempt++;
1030
+ return [3 /*break*/, 1];
1031
+ case 7: return [2 /*return*/];
1032
+ }
1033
+ });
1034
+ });
1035
+ }
836
1036
  //# sourceMappingURL=versionWorkspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionWorkspace.js","sourceRoot":"","sources":["../../src/versionWorkspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionWorkspace.js","sourceRoot":"","sources":["../../src/versionWorkspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/build",
3
- "version": "1.6.6",
3
+ "version": "1.8.0",
4
4
  "description": "Workspace build tools",
5
5
  "main": "./dist/generated/index.js",
6
6
  "types": "./dist/generated/index.d.ts",
@@ -57,5 +57,6 @@
57
57
  "typescript": "5.2.2",
58
58
  "webpack": "5.90.0",
59
59
  "webpack-cli": "5.1.4"
60
- }
60
+ },
61
+ "gitHead": "1139c87c46d1a02ab46d1552c5176f10eba00257"
61
62
  }
@@ -18,10 +18,15 @@ export async function versionWorkspace() {
18
18
  logger.info({ message: 'Dry run mode enabled. Publish and push operations will be skipped.' });
19
19
  }
20
20
  const workspacePath = process.cwd();
21
+ await evictGitLocks(workspacePath);
22
+ const workspaceRootDirty = await isRepoDirty(workspacePath);
23
+ if (workspaceRootDirty) {
24
+ logger.info({ message: `> Workspace root is dirty, will skip pull/push for root repo` });
25
+ }
21
26
  if (dryRun) {
22
27
  logger.info({ message: `> Dry run: skipping pullWorkspace for (${workspacePath})` });
23
28
  } else {
24
- await pullWorkspace(workspacePath);
29
+ await pullWorkspace(workspacePath, workspaceRootDirty);
25
30
  }
26
31
 
27
32
  const { packageMap, packageGraph, sortedPackageNames, workspaceToPackageMap } =
@@ -73,7 +78,7 @@ export async function versionWorkspace() {
73
78
  workspaceToPackageMap,
74
79
  pushWithoutSync
75
80
  );
76
- await pushMetarepos(workspacePath);
81
+ await pushMetarepos(workspacePath, workspaceRootDirty);
77
82
  await symlinkWorkspace(workspacePath, filteredPackageNames, packageMap);
78
83
  logger.info({ message: `> Finished versioning workspace (${workspacePath})` });
79
84
  }
@@ -100,7 +105,19 @@ function isInFixedVersionWorkspace(localPackage: LocalPackage) {
100
105
  );
101
106
  }
102
107
 
103
- async function pullWorkspace(workspacePath: string) {
108
+ async function getGitRepoRoot(dir: string): Promise<string> {
109
+ return new Promise((resolve, reject) => {
110
+ exec('git rev-parse --show-toplevel', { cwd: dir }, (error, stdout) => {
111
+ if (error) {
112
+ reject(error);
113
+ return;
114
+ }
115
+ resolve(stdout.trim());
116
+ });
117
+ });
118
+ }
119
+
120
+ async function pullWorkspace(workspacePath: string, skipRootRepo = false) {
104
121
  const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
105
122
  const filteredPackageNames = sortedPackageNames.filter((packageName) => {
106
123
  const localPackage = packageMap[packageName];
@@ -111,10 +128,26 @@ async function pullWorkspace(workspacePath: string) {
111
128
  );
112
129
  });
113
130
 
131
+ // Deduplicate: pull once per unique leaf git repo (repos that directly contain packages)
132
+ const pulledRepoRoots = new Set<string>();
114
133
  logger.info({ message: `> Pulling workspace (${workspacePath})` });
115
134
  for (const packageName of filteredPackageNames) {
116
135
  const localPackage = packageMap[packageName];
117
- await pull(localPackage);
136
+ const packageDir = path.dirname(localPackage.filePath);
137
+ const repoRoot = await getGitRepoRoot(packageDir);
138
+ if (pulledRepoRoots.has(repoRoot)) {
139
+ continue;
140
+ }
141
+ pulledRepoRoots.add(repoRoot);
142
+ if (skipRootRepo && path.resolve(repoRoot) === path.resolve(workspacePath)) {
143
+ const repoName = path.basename(repoRoot);
144
+ logger.info({ message: `(${cw.color(repoName)}) skipping pull for dirty workspace root repo` });
145
+ continue;
146
+ }
147
+ const repoName = path.basename(repoRoot);
148
+ logger.info({ message: `(${cw.color(repoName)}) pulling latest changes` });
149
+ await cmd('git', ['pull'], { cwd: repoRoot }, { logPrefix: `[${cw.color(repoName)}] ` });
150
+ logger.info({ message: `(${cw.color(repoName)}) pulled latest changes` });
118
151
  }
119
152
 
120
153
  logger.info({ message: `> Finished pulling workspace (${workspacePath})` });
@@ -161,9 +194,11 @@ async function bumpDependencies(
161
194
  if (dependenciesChanged) {
162
195
  if (!skipBumpingPackageVersion) {
163
196
  const currentVersion = localPackage.packageJson.version;
164
- localPackage.packageJson.version = semver.inc(currentVersion, 'patch');
197
+ const packageDir = path.dirname(localPackage.filePath);
198
+ const bump = (await hasFeatureCommits(packageDir)) ? 'minor' : 'patch';
199
+ localPackage.packageJson.version = semver.inc(currentVersion, bump);
165
200
  logger.info({
166
- message: `(${cw.color(localPackage.name)}) bumping version from ${currentVersion} -> ${localPackage.packageJson.version}`,
201
+ message: `(${cw.color(localPackage.name)}) bumping version (${bump}) from ${currentVersion} -> ${localPackage.packageJson.version}`,
167
202
  });
168
203
  }
169
204
  await Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }]);
@@ -261,7 +296,8 @@ async function syncFixedVersions(workspacePath: string, localPackages: LocalPack
261
296
  throw new Error(`Cannot find lerna.json for workspace: ${workspacePath}`);
262
297
  }
263
298
 
264
- const highestVersion = semver.inc(lernaJson.version, 'patch');
299
+ const bump = (await hasFeatureCommits(workspacePath)) ? 'minor' : 'patch';
300
+ const highestVersion = semver.inc(lernaJson.version, bump);
265
301
  if (!highestVersion) {
266
302
  throw new Error(`Lerna version not specified for workspace: ${workspacePath}`);
267
303
  }
@@ -290,13 +326,37 @@ async function syncFixedVersions(workspacePath: string, localPackages: LocalPack
290
326
  return syncedFixedVersions ? highestVersion : false;
291
327
  }
292
328
 
329
+ async function installWithRetry(localPackage: LocalPackage, packageDir: string) {
330
+ const maxRetries = 10;
331
+ const retryDelayMs = 90_000;
332
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
333
+ try {
334
+ await cmd('npm', ['install'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
335
+ return;
336
+ } catch (error: any) {
337
+ const output = `${error.stdout ?? ''}${error.stderr ?? ''}`;
338
+ const isRegistryPropagationError =
339
+ /No matching version found/i.test(output) || /ETARGET/i.test(output) || /404 Not Found/i.test(output);
340
+ const isRetryable = isRegistryPropagationError || isNetworkError(error);
341
+ if (!isRetryable || attempt === maxRetries) {
342
+ throw error;
343
+ }
344
+ const reason = isRegistryPropagationError ? 'dependency not yet available on registry' : 'network error';
345
+ logger.info({
346
+ message: `(${cw.color(localPackage.name)}) ${reason}, retrying install (attempt ${attempt}/${maxRetries}, next retry in ${retryDelayMs / 1000}s)`,
347
+ });
348
+ await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
349
+ }
350
+ }
351
+ }
352
+
293
353
  async function buildAndTest(localPackage: LocalPackage) {
294
354
  const packageDir = path.dirname(localPackage.filePath);
295
355
  logger.info({ message: `(${cw.color(localPackage.name)}) cleaning package` });
296
356
  await cmd('npm', ['run', 'clean'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
297
357
  logger.info({ message: `(${cw.color(localPackage.name)}) cleaned package` });
298
358
  logger.info({ message: `(${cw.color(localPackage.name)}) installing latest dependency versions` });
299
- await cmd('npm', ['install'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
359
+ await installWithRetry(localPackage, packageDir);
300
360
  logger.info({ message: `(${cw.color(localPackage.name)}) installed latest dependency versions` });
301
361
  if (hasLintConfig(localPackage)) {
302
362
  logger.info({ message: `Linting ${cw.color(localPackage.name)} (${packageDir})` });
@@ -432,11 +492,16 @@ async function pushAndTagFixedVersionRepo(
432
492
  return commit;
433
493
  }
434
494
 
435
- async function pushMetarepos(dir: string) {
495
+ async function pushMetarepos(dir: string, skipRootRepo = false) {
436
496
  const metarepoPaths = (await Fs.getFilePathsMatchingGlob(dir, '**/.gitmodules', ['**/node_modules/**', '**/dist/**']))
437
497
  .map((gitmodulesPath) => path.dirname(gitmodulesPath))
438
498
  .sort((a, b) => b.localeCompare(a));
439
499
  for (const metarepoPath of metarepoPaths) {
500
+ if (skipRootRepo && path.resolve(metarepoPath) === path.resolve(dir)) {
501
+ const repoName = path.basename(metarepoPath);
502
+ logger.info({ message: `(${cw.color(repoName)}) skipping dirty workspace root repo` });
503
+ continue;
504
+ }
440
505
  await pushMetarepo(metarepoPath);
441
506
  }
442
507
  }
@@ -556,11 +621,11 @@ async function publish(localPackage: LocalPackage) {
556
621
  /* ignore malformed URL */
557
622
  }
558
623
 
559
- await cmd(
560
- 'npm',
561
- args,
562
- { cwd: packageDir, env: { ...process.env } },
563
- { logPrefix: `[${cw.color(localPackage.name)}] ` }
624
+ await retryOnNetworkError(
625
+ () => cmd('npm', args, { cwd: packageDir, env: { ...process.env } }, { logPrefix: `[${cw.color(localPackage.name)}] ` }),
626
+ localPackage.name,
627
+ 3,
628
+ 15_000
564
629
  );
565
630
 
566
631
  logger.info({ message: `(${cw.color(localPackage.name)}) published ${localPackage.packageJson.version}` });
@@ -619,3 +684,71 @@ function getPublishRegistry(publishConfig: { registry?: string }) {
619
684
 
620
685
  return 'https://registry.npmjs.org/';
621
686
  }
687
+
688
+ async function isRepoDirty(dir: string): Promise<boolean> {
689
+ return new Promise((resolve) => {
690
+ exec('git diff --ignore-submodules HEAD', { cwd: dir }, (error, stdout) => {
691
+ if (error) {
692
+ resolve(false);
693
+ return;
694
+ }
695
+ resolve(stdout.trim().length > 0);
696
+ });
697
+ });
698
+ }
699
+
700
+ async function hasFeatureCommits(dir: string): Promise<boolean> {
701
+ return new Promise((resolve) => {
702
+ exec('git log @{u}..HEAD --oneline', { cwd: dir }, (error, stdout) => {
703
+ if (error || !stdout.trim()) {
704
+ resolve(false);
705
+ return;
706
+ }
707
+ const hasFeature = stdout.split('\n').some((line) => /^[a-f0-9]+\s+feat[\s(:]/i.test(line));
708
+ resolve(hasFeature);
709
+ });
710
+ });
711
+ }
712
+
713
+ export async function evictGitLocks(workspacePath: string) {
714
+ const gitDir = path.join(workspacePath, '.git');
715
+ const lockFiles = await Fs.getFilePathsMatchingGlob(gitDir, '**/*.lock');
716
+ if (lockFiles.length === 0) {
717
+ return;
718
+ }
719
+
720
+ logger.info({ message: `> Evicting ${lockFiles.length} git lock file(s) from workspace` });
721
+ await Fs.deleteFiles(lockFiles);
722
+ logger.info({ message: `> Evicted git lock files` });
723
+ }
724
+
725
+ function isNetworkError(error: any): boolean {
726
+ const output = `${error.stdout ?? ''}${error.stderr ?? ''}`;
727
+ return (
728
+ /ECONNRESET/i.test(output) || /ETIMEDOUT/i.test(output) || /ENOTFOUND/i.test(output) ||
729
+ /EAI_AGAIN/i.test(output) || /ECONNREFUSED/i.test(output) || /socket hang up/i.test(output) ||
730
+ /network/i.test(output)
731
+ );
732
+ }
733
+
734
+ async function retryOnNetworkError(
735
+ fn: () => Promise<any>,
736
+ label: string,
737
+ maxRetries = 3,
738
+ retryDelayMs = 15_000
739
+ ): Promise<void> {
740
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
741
+ try {
742
+ await fn();
743
+ return;
744
+ } catch (error: any) {
745
+ if (!isNetworkError(error) || attempt === maxRetries) {
746
+ throw error;
747
+ }
748
+ logger.info({
749
+ message: `(${cw.color(label)}) network error, retrying (attempt ${attempt}/${maxRetries}, next retry in ${retryDelayMs / 1000}s)`,
750
+ });
751
+ await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
752
+ }
753
+ }
754
+ }