@proteinjs/build 1.7.0 → 1.8.1

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.1](https://github.com/proteinjs/build/compare/@proteinjs/build@1.8.0...@proteinjs/build@1.8.1) (2026-04-13)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * replace git pull with fetch + rebase to avoid pull.rebase config issues ([b923e06](https://github.com/proteinjs/build/commit/b923e062277d91a192a493043d4f3a13e1808d50))
12
+
13
+
14
+
15
+
16
+
17
+ # [1.8.0](https://github.com/proteinjs/build/compare/@proteinjs/build@1.7.0...@proteinjs/build@1.8.0) (2026-04-13)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * use Promise<any> for retryOnNetworkError fn param to match cmd return type ([b843193](https://github.com/proteinjs/build/commit/b843193252062142c009e3116b19f4666355c252))
23
+
24
+
25
+ ### Features
26
+
27
+ * add git lock eviction, feature-aware minor bumps, and dirty root repo skip ([678720a](https://github.com/proteinjs/build/commit/678720a9efc2c9ccdd73534033f913d965ee6f43))
28
+ * retry npm install and publish on transient network errors ([d1e9502](https://github.com/proteinjs/build/commit/d1e9502fe4e57dfe661724a6aae41fa40584f86f))
29
+
30
+
31
+
32
+
33
+
6
34
  # [1.7.0](https://github.com/proteinjs/build/compare/@proteinjs/build@1.6.6...@proteinjs/build@1.7.0) (2026-04-09)
7
35
 
8
36
 
@@ -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;AAmoBD,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*/];
@@ -208,9 +217,10 @@ function getGitRepoRoot(dir) {
208
217
  });
209
218
  });
210
219
  }
211
- function pullWorkspace(workspacePath) {
220
+ function pullWorkspace(workspacePath, skipRootRepo) {
221
+ if (skipRootRepo === void 0) { skipRootRepo = false; }
212
222
  return __awaiter(this, void 0, void 0, function () {
213
- var _a, packageMap, sortedPackageNames, filteredPackageNames, pulledRepoRoots, _i, filteredPackageNames_2, packageName, localPackage, packageDir, repoRoot, repoName;
223
+ var _a, packageMap, sortedPackageNames, filteredPackageNames, pulledRepoRoots, _i, filteredPackageNames_2, packageName, localPackage, packageDir, repoRoot, repoName_1, repoName, branch;
214
224
  return __generator(this, function (_b) {
215
225
  switch (_b.label) {
216
226
  case 0: return [4 /*yield*/, util_node_1.PackageUtil.getWorkspaceMetadata(workspacePath)];
@@ -228,7 +238,7 @@ function pullWorkspace(workspacePath) {
228
238
  _i = 0, filteredPackageNames_2 = filteredPackageNames;
229
239
  _b.label = 2;
230
240
  case 2:
231
- if (!(_i < filteredPackageNames_2.length)) return [3 /*break*/, 6];
241
+ if (!(_i < filteredPackageNames_2.length)) return [3 /*break*/, 8];
232
242
  packageName = filteredPackageNames_2[_i];
233
243
  localPackage = packageMap[packageName];
234
244
  packageDir = path.dirname(localPackage.filePath);
@@ -236,20 +246,31 @@ function pullWorkspace(workspacePath) {
236
246
  case 3:
237
247
  repoRoot = _b.sent();
238
248
  if (pulledRepoRoots.has(repoRoot)) {
239
- return [3 /*break*/, 5];
249
+ return [3 /*break*/, 7];
240
250
  }
241
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*/, 7];
256
+ }
242
257
  repoName = path.basename(repoRoot);
243
258
  logger.info({ message: "(".concat(cw.color(repoName), ") pulling latest changes") });
244
- return [4 /*yield*/, (0, util_node_1.cmd)('git', ['pull'], { cwd: repoRoot }, { logPrefix: "[".concat(cw.color(repoName), "] ") })];
259
+ return [4 /*yield*/, (0, util_node_1.cmd)('git', ['fetch'], { cwd: repoRoot }, { logPrefix: "[".concat(cw.color(repoName), "] ") })];
245
260
  case 4:
246
261
  _b.sent();
247
- logger.info({ message: "(".concat(cw.color(repoName), ") pulled latest changes") });
248
- _b.label = 5;
262
+ return [4 /*yield*/, getCurrentBranch(repoRoot)];
249
263
  case 5:
264
+ branch = _b.sent();
265
+ return [4 /*yield*/, (0, util_node_1.cmd)('git', ['rebase', "origin/".concat(branch)], { cwd: repoRoot }, { logPrefix: "[".concat(cw.color(repoName), "] ") })];
266
+ case 6:
267
+ _b.sent();
268
+ logger.info({ message: "(".concat(cw.color(repoName), ") pulled latest changes") });
269
+ _b.label = 7;
270
+ case 7:
250
271
  _i++;
251
272
  return [3 /*break*/, 2];
252
- case 6:
273
+ case 8:
253
274
  logger.info({ message: "> Finished pulling workspace (".concat(workspacePath, ")") });
254
275
  return [2 /*return*/];
255
276
  }
@@ -259,7 +280,7 @@ function pullWorkspace(workspacePath) {
259
280
  function bumpDependencies(localPackage, packageMap, packageGraph, skipBumpingPackageVersion) {
260
281
  if (skipBumpingPackageVersion === void 0) { skipBumpingPackageVersion = false; }
261
282
  return __awaiter(this, void 0, void 0, function () {
262
- var localDependencies, dependenciesChanged, _i, localDependencies_1, localDependency, localDependencyPackage, localDependencyVersion, currentDependencyVersion, newDependencyVersion, currentVersion;
283
+ var localDependencies, dependenciesChanged, _i, localDependencies_1, localDependency, localDependencyPackage, localDependencyVersion, currentDependencyVersion, newDependencyVersion, currentVersion, packageDir, bump;
263
284
  return __generator(this, function (_a) {
264
285
  switch (_a.label) {
265
286
  case 0:
@@ -289,19 +310,23 @@ function bumpDependencies(localPackage, packageMap, packageGraph, skipBumpingPac
289
310
  setDependencyVersion(localDependency, currentDependencyVersion, newDependencyVersion, localPackage);
290
311
  dependenciesChanged = true;
291
312
  }
292
- if (!dependenciesChanged) return [3 /*break*/, 2];
293
- if (!skipBumpingPackageVersion) {
294
- currentVersion = localPackage.packageJson.version;
295
- localPackage.packageJson.version = semver_1.default.inc(currentVersion, 'patch');
296
- logger.info({
297
- message: "(".concat(cw.color(localPackage.name), ") bumping version from ").concat(currentVersion, " -> ").concat(localPackage.packageJson.version),
298
- });
299
- }
300
- return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }])];
313
+ if (!dependenciesChanged) return [3 /*break*/, 4];
314
+ if (!!skipBumpingPackageVersion) return [3 /*break*/, 2];
315
+ currentVersion = localPackage.packageJson.version;
316
+ packageDir = path.dirname(localPackage.filePath);
317
+ return [4 /*yield*/, hasFeatureCommits(packageDir)];
301
318
  case 1:
302
- _a.sent();
319
+ bump = (_a.sent()) ? 'minor' : 'patch';
320
+ localPackage.packageJson.version = semver_1.default.inc(currentVersion, bump);
321
+ logger.info({
322
+ message: "(".concat(cw.color(localPackage.name), ") bumping version (").concat(bump, ") from ").concat(currentVersion, " -> ").concat(localPackage.packageJson.version),
323
+ });
303
324
  _a.label = 2;
304
- case 2: return [2 /*return*/, dependenciesChanged];
325
+ case 2: return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }])];
326
+ case 3:
327
+ _a.sent();
328
+ _a.label = 4;
329
+ case 4: return [2 /*return*/, dependenciesChanged];
305
330
  }
306
331
  });
307
332
  });
@@ -390,7 +415,7 @@ function syncFixedVersionWorkspaces(fixedVersionWorkspacePaths, packageMap, work
390
415
  function syncFixedVersions(workspacePath, localPackages) {
391
416
  var _a;
392
417
  return __awaiter(this, void 0, void 0, function () {
393
- var lernaJson, highestVersion, syncedFixedVersions, _i, localPackages_1, localPackage, currentVersion, lernaJsonPath;
418
+ var lernaJson, bump, highestVersion, syncedFixedVersions, _i, localPackages_1, localPackage, currentVersion, lernaJsonPath;
394
419
  return __generator(this, function (_b) {
395
420
  switch (_b.label) {
396
421
  case 0:
@@ -398,41 +423,44 @@ function syncFixedVersions(workspacePath, localPackages) {
398
423
  if (!lernaJson) {
399
424
  throw new Error("Cannot find lerna.json for workspace: ".concat(workspacePath));
400
425
  }
401
- highestVersion = semver_1.default.inc(lernaJson.version, 'patch');
426
+ return [4 /*yield*/, hasFeatureCommits(workspacePath)];
427
+ case 1:
428
+ bump = (_b.sent()) ? 'minor' : 'patch';
429
+ highestVersion = semver_1.default.inc(lernaJson.version, bump);
402
430
  if (!highestVersion) {
403
431
  throw new Error("Lerna version not specified for workspace: ".concat(workspacePath));
404
432
  }
405
433
  syncedFixedVersions = false;
406
434
  _i = 0, localPackages_1 = localPackages;
407
- _b.label = 1;
408
- case 1:
409
- if (!(_i < localPackages_1.length)) return [3 /*break*/, 4];
435
+ _b.label = 2;
436
+ case 2:
437
+ if (!(_i < localPackages_1.length)) return [3 /*break*/, 5];
410
438
  localPackage = localPackages_1[_i];
411
439
  currentVersion = localPackage.packageJson.version;
412
440
  if (currentVersion === highestVersion) {
413
- return [3 /*break*/, 3];
441
+ return [3 /*break*/, 4];
414
442
  }
415
443
  localPackage.packageJson.version = highestVersion;
416
444
  logger.info({
417
445
  message: "(".concat(cw.color(localPackage.name), ") bumping version from ").concat(currentVersion, " -> ").concat(localPackage.packageJson.version),
418
446
  });
419
447
  return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }])];
420
- case 2:
448
+ case 3:
421
449
  _b.sent();
422
450
  syncedFixedVersions = true;
423
- _b.label = 3;
424
- case 3:
425
- _i++;
426
- return [3 /*break*/, 1];
451
+ _b.label = 4;
427
452
  case 4:
428
- if (!syncedFixedVersions) return [3 /*break*/, 6];
453
+ _i++;
454
+ return [3 /*break*/, 2];
455
+ case 5:
456
+ if (!syncedFixedVersions) return [3 /*break*/, 7];
429
457
  lernaJsonPath = path.join(workspacePath, 'lerna.json');
430
458
  lernaJson.version = highestVersion;
431
459
  return [4 /*yield*/, util_node_1.Fs.writeFiles([{ path: lernaJsonPath, content: JSON.stringify(lernaJson, null, 2) }])];
432
- case 5:
460
+ case 6:
433
461
  _b.sent();
434
- _b.label = 6;
435
- case 6: return [2 /*return*/, syncedFixedVersions ? highestVersion : false];
462
+ _b.label = 7;
463
+ case 7: return [2 /*return*/, syncedFixedVersions ? highestVersion : false];
436
464
  }
437
465
  });
438
466
  });
@@ -440,7 +468,7 @@ function syncFixedVersions(workspacePath, localPackages) {
440
468
  function installWithRetry(localPackage, packageDir) {
441
469
  var _a, _b;
442
470
  return __awaiter(this, void 0, void 0, function () {
443
- var maxRetries, retryDelayMs, attempt, error_1, output, isRegistryPropagationError;
471
+ var maxRetries, retryDelayMs, attempt, error_1, output, isRegistryPropagationError, isRetryable, reason;
444
472
  return __generator(this, function (_c) {
445
473
  switch (_c.label) {
446
474
  case 0:
@@ -461,11 +489,13 @@ function installWithRetry(localPackage, packageDir) {
461
489
  error_1 = _c.sent();
462
490
  output = "".concat((_a = error_1.stdout) !== null && _a !== void 0 ? _a : '').concat((_b = error_1.stderr) !== null && _b !== void 0 ? _b : '');
463
491
  isRegistryPropagationError = /No matching version found/i.test(output) || /ETARGET/i.test(output) || /404 Not Found/i.test(output);
464
- if (!isRegistryPropagationError || attempt === maxRetries) {
492
+ isRetryable = isRegistryPropagationError || isNetworkError(error_1);
493
+ if (!isRetryable || attempt === maxRetries) {
465
494
  throw error_1;
466
495
  }
496
+ reason = isRegistryPropagationError ? 'dependency not yet available on registry' : 'network error';
467
497
  logger.info({
468
- message: "(".concat(cw.color(localPackage.name), ") dependency not yet available on registry, retrying install (attempt ").concat(attempt, "/").concat(maxRetries, ", next retry in ").concat(retryDelayMs / 1000, "s)"),
498
+ message: "(".concat(cw.color(localPackage.name), ") ").concat(reason, ", retrying install (attempt ").concat(attempt, "/").concat(maxRetries, ", next retry in ").concat(retryDelayMs / 1000, "s)"),
469
499
  });
470
500
  return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, retryDelayMs); })];
471
501
  case 5:
@@ -597,15 +627,15 @@ function pushAndTagFixedVersionRepo(dir, version, skipTagging, skipCi) {
597
627
  if (skipTagging === void 0) { skipTagging = false; }
598
628
  if (skipCi === void 0) { skipCi = true; }
599
629
  return __awaiter(this, void 0, void 0, function () {
600
- var dryRun, repoName_1, repoName, latestCommitSha, repoInfo, commit, tagName;
630
+ var dryRun, repoName_2, repoName, latestCommitSha, repoInfo, commit, tagName;
601
631
  return __generator(this, function (_a) {
602
632
  switch (_a.label) {
603
633
  case 0:
604
634
  dryRun = isDryRun();
605
635
  if (dryRun) {
606
- repoName_1 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
636
+ repoName_2 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
607
637
  logger.info({
608
- message: "(".concat(cw.color(repoName_1), ") Dry run: skipping git add/commit/push").concat(version ? " for version ".concat(version) : ''),
638
+ message: "(".concat(cw.color(repoName_2), ") Dry run: skipping git add/commit/push").concat(version ? " for version ".concat(version) : ''),
609
639
  });
610
640
  return [2 /*return*/, undefined];
611
641
  }
@@ -654,9 +684,10 @@ function pushAndTagFixedVersionRepo(dir, version, skipTagging, skipCi) {
654
684
  });
655
685
  });
656
686
  }
657
- function pushMetarepos(dir) {
687
+ function pushMetarepos(dir, skipRootRepo) {
688
+ if (skipRootRepo === void 0) { skipRootRepo = false; }
658
689
  return __awaiter(this, void 0, void 0, function () {
659
- var metarepoPaths, _i, metarepoPaths_1, metarepoPath;
690
+ var metarepoPaths, _i, metarepoPaths_1, metarepoPath, repoName;
660
691
  return __generator(this, function (_a) {
661
692
  switch (_a.label) {
662
693
  case 0: return [4 /*yield*/, util_node_1.Fs.getFilePathsMatchingGlob(dir, '**/.gitmodules', ['**/node_modules/**', '**/dist/**'])];
@@ -669,6 +700,11 @@ function pushMetarepos(dir) {
669
700
  case 2:
670
701
  if (!(_i < metarepoPaths_1.length)) return [3 /*break*/, 5];
671
702
  metarepoPath = metarepoPaths_1[_i];
703
+ if (skipRootRepo && path.resolve(metarepoPath) === path.resolve(dir)) {
704
+ repoName = path.basename(metarepoPath);
705
+ logger.info({ message: "(".concat(cw.color(repoName), ") skipping dirty workspace root repo") });
706
+ return [3 /*break*/, 4];
707
+ }
672
708
  return [4 /*yield*/, pushMetarepo(metarepoPath)];
673
709
  case 3:
674
710
  _a.sent();
@@ -683,15 +719,15 @@ function pushMetarepos(dir) {
683
719
  }
684
720
  function pushMetarepo(dir) {
685
721
  return __awaiter(this, void 0, void 0, function () {
686
- var dryRun, repoName_2, repoName;
722
+ var dryRun, repoName_3, repoName;
687
723
  return __generator(this, function (_a) {
688
724
  switch (_a.label) {
689
725
  case 0:
690
726
  dryRun = isDryRun();
691
727
  if (dryRun) {
692
- repoName_2 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
728
+ repoName_3 = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
693
729
  logger.info({
694
- message: "(".concat(cw.color(repoName_2), ") Dry run: skipping metarepo commit/push for ").concat(dir),
730
+ message: "(".concat(cw.color(repoName_3), ") Dry run: skipping metarepo commit/push for ").concat(dir),
695
731
  });
696
732
  return [2 /*return*/];
697
733
  }
@@ -828,7 +864,7 @@ function publish(localPackage) {
828
864
  catch (_e) {
829
865
  /* ignore malformed URL */
830
866
  }
831
- return [4 /*yield*/, (0, util_node_1.cmd)('npm', args, { cwd: packageDir, env: __assign({}, process.env) }, { logPrefix: "[".concat(cw.color(localPackage.name), "] ") })];
867
+ 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)];
832
868
  case 3:
833
869
  _d.sent();
834
870
  logger.info({ message: "(".concat(cw.color(localPackage.name), ") published ").concat(localPackage.packageJson.version) });
@@ -902,4 +938,120 @@ function getPublishRegistry(publishConfig) {
902
938
  }
903
939
  return 'https://registry.npmjs.org/';
904
940
  }
941
+ function getCurrentBranch(dir) {
942
+ return __awaiter(this, void 0, void 0, function () {
943
+ return __generator(this, function (_a) {
944
+ return [2 /*return*/, new Promise(function (resolve, reject) {
945
+ (0, child_process_1.exec)('git rev-parse --abbrev-ref HEAD', { cwd: dir }, function (error, stdout) {
946
+ if (error) {
947
+ reject(error);
948
+ return;
949
+ }
950
+ resolve(stdout.trim());
951
+ });
952
+ })];
953
+ });
954
+ });
955
+ }
956
+ function isRepoDirty(dir) {
957
+ return __awaiter(this, void 0, void 0, function () {
958
+ return __generator(this, function (_a) {
959
+ return [2 /*return*/, new Promise(function (resolve) {
960
+ (0, child_process_1.exec)('git diff --ignore-submodules HEAD', { cwd: dir }, function (error, stdout) {
961
+ if (error) {
962
+ resolve(false);
963
+ return;
964
+ }
965
+ resolve(stdout.trim().length > 0);
966
+ });
967
+ })];
968
+ });
969
+ });
970
+ }
971
+ function hasFeatureCommits(dir) {
972
+ return __awaiter(this, void 0, void 0, function () {
973
+ return __generator(this, function (_a) {
974
+ return [2 /*return*/, new Promise(function (resolve) {
975
+ (0, child_process_1.exec)('git log @{u}..HEAD --oneline', { cwd: dir }, function (error, stdout) {
976
+ if (error || !stdout.trim()) {
977
+ resolve(false);
978
+ return;
979
+ }
980
+ var hasFeature = stdout.split('\n').some(function (line) { return /^[a-f0-9]+\s+feat[\s(:]/i.test(line); });
981
+ resolve(hasFeature);
982
+ });
983
+ })];
984
+ });
985
+ });
986
+ }
987
+ function evictGitLocks(workspacePath) {
988
+ return __awaiter(this, void 0, void 0, function () {
989
+ var gitDir, lockFiles;
990
+ return __generator(this, function (_a) {
991
+ switch (_a.label) {
992
+ case 0:
993
+ gitDir = path.join(workspacePath, '.git');
994
+ return [4 /*yield*/, util_node_1.Fs.getFilePathsMatchingGlob(gitDir, '**/*.lock')];
995
+ case 1:
996
+ lockFiles = _a.sent();
997
+ if (lockFiles.length === 0) {
998
+ return [2 /*return*/];
999
+ }
1000
+ logger.info({ message: "> Evicting ".concat(lockFiles.length, " git lock file(s) from workspace") });
1001
+ return [4 /*yield*/, util_node_1.Fs.deleteFiles(lockFiles)];
1002
+ case 2:
1003
+ _a.sent();
1004
+ logger.info({ message: "> Evicted git lock files" });
1005
+ return [2 /*return*/];
1006
+ }
1007
+ });
1008
+ });
1009
+ }
1010
+ exports.evictGitLocks = evictGitLocks;
1011
+ function isNetworkError(error) {
1012
+ var _a, _b;
1013
+ var output = "".concat((_a = error.stdout) !== null && _a !== void 0 ? _a : '').concat((_b = error.stderr) !== null && _b !== void 0 ? _b : '');
1014
+ return (/ECONNRESET/i.test(output) || /ETIMEDOUT/i.test(output) || /ENOTFOUND/i.test(output) ||
1015
+ /EAI_AGAIN/i.test(output) || /ECONNREFUSED/i.test(output) || /socket hang up/i.test(output) ||
1016
+ /network/i.test(output));
1017
+ }
1018
+ function retryOnNetworkError(fn, label, maxRetries, retryDelayMs) {
1019
+ if (maxRetries === void 0) { maxRetries = 3; }
1020
+ if (retryDelayMs === void 0) { retryDelayMs = 15000; }
1021
+ return __awaiter(this, void 0, void 0, function () {
1022
+ var attempt, error_2;
1023
+ return __generator(this, function (_a) {
1024
+ switch (_a.label) {
1025
+ case 0:
1026
+ attempt = 1;
1027
+ _a.label = 1;
1028
+ case 1:
1029
+ if (!(attempt <= maxRetries)) return [3 /*break*/, 7];
1030
+ _a.label = 2;
1031
+ case 2:
1032
+ _a.trys.push([2, 4, , 6]);
1033
+ return [4 /*yield*/, fn()];
1034
+ case 3:
1035
+ _a.sent();
1036
+ return [2 /*return*/];
1037
+ case 4:
1038
+ error_2 = _a.sent();
1039
+ if (!isNetworkError(error_2) || attempt === maxRetries) {
1040
+ throw error_2;
1041
+ }
1042
+ logger.info({
1043
+ message: "(".concat(cw.color(label), ") network error, retrying (attempt ").concat(attempt, "/").concat(maxRetries, ", next retry in ").concat(retryDelayMs / 1000, "s)"),
1044
+ });
1045
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, retryDelayMs); })];
1046
+ case 5:
1047
+ _a.sent();
1048
+ return [3 /*break*/, 6];
1049
+ case 6:
1050
+ attempt++;
1051
+ return [3 /*break*/, 1];
1052
+ case 7: return [2 /*return*/];
1053
+ }
1054
+ });
1055
+ });
1056
+ }
905
1057
  //# 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.7.0",
3
+ "version": "1.8.1",
4
4
  "description": "Workspace build tools",
5
5
  "main": "./dist/generated/index.js",
6
6
  "types": "./dist/generated/index.d.ts",
@@ -58,5 +58,5 @@
58
58
  "webpack": "5.90.0",
59
59
  "webpack-cli": "5.1.4"
60
60
  },
61
- "gitHead": "08a23fada4365fe72c8f7c34ea22ff0b1742fa93"
61
+ "gitHead": "9ad6943a83c65ce747bdf07e015aaddba0cab8fe"
62
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
  }
@@ -112,7 +117,7 @@ async function getGitRepoRoot(dir: string): Promise<string> {
112
117
  });
113
118
  }
114
119
 
115
- async function pullWorkspace(workspacePath: string) {
120
+ async function pullWorkspace(workspacePath: string, skipRootRepo = false) {
116
121
  const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
117
122
  const filteredPackageNames = sortedPackageNames.filter((packageName) => {
118
123
  const localPackage = packageMap[packageName];
@@ -134,9 +139,16 @@ async function pullWorkspace(workspacePath: string) {
134
139
  continue;
135
140
  }
136
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
+ }
137
147
  const repoName = path.basename(repoRoot);
138
148
  logger.info({ message: `(${cw.color(repoName)}) pulling latest changes` });
139
- await cmd('git', ['pull'], { cwd: repoRoot }, { logPrefix: `[${cw.color(repoName)}] ` });
149
+ await cmd('git', ['fetch'], { cwd: repoRoot }, { logPrefix: `[${cw.color(repoName)}] ` });
150
+ const branch = await getCurrentBranch(repoRoot);
151
+ await cmd('git', ['rebase', `origin/${branch}`], { cwd: repoRoot }, { logPrefix: `[${cw.color(repoName)}] ` });
140
152
  logger.info({ message: `(${cw.color(repoName)}) pulled latest changes` });
141
153
  }
142
154
 
@@ -184,9 +196,11 @@ async function bumpDependencies(
184
196
  if (dependenciesChanged) {
185
197
  if (!skipBumpingPackageVersion) {
186
198
  const currentVersion = localPackage.packageJson.version;
187
- localPackage.packageJson.version = semver.inc(currentVersion, 'patch');
199
+ const packageDir = path.dirname(localPackage.filePath);
200
+ const bump = (await hasFeatureCommits(packageDir)) ? 'minor' : 'patch';
201
+ localPackage.packageJson.version = semver.inc(currentVersion, bump);
188
202
  logger.info({
189
- message: `(${cw.color(localPackage.name)}) bumping version from ${currentVersion} -> ${localPackage.packageJson.version}`,
203
+ message: `(${cw.color(localPackage.name)}) bumping version (${bump}) from ${currentVersion} -> ${localPackage.packageJson.version}`,
190
204
  });
191
205
  }
192
206
  await Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }]);
@@ -284,7 +298,8 @@ async function syncFixedVersions(workspacePath: string, localPackages: LocalPack
284
298
  throw new Error(`Cannot find lerna.json for workspace: ${workspacePath}`);
285
299
  }
286
300
 
287
- const highestVersion = semver.inc(lernaJson.version, 'patch');
301
+ const bump = (await hasFeatureCommits(workspacePath)) ? 'minor' : 'patch';
302
+ const highestVersion = semver.inc(lernaJson.version, bump);
288
303
  if (!highestVersion) {
289
304
  throw new Error(`Lerna version not specified for workspace: ${workspacePath}`);
290
305
  }
@@ -324,11 +339,13 @@ async function installWithRetry(localPackage: LocalPackage, packageDir: string)
324
339
  const output = `${error.stdout ?? ''}${error.stderr ?? ''}`;
325
340
  const isRegistryPropagationError =
326
341
  /No matching version found/i.test(output) || /ETARGET/i.test(output) || /404 Not Found/i.test(output);
327
- if (!isRegistryPropagationError || attempt === maxRetries) {
342
+ const isRetryable = isRegistryPropagationError || isNetworkError(error);
343
+ if (!isRetryable || attempt === maxRetries) {
328
344
  throw error;
329
345
  }
346
+ const reason = isRegistryPropagationError ? 'dependency not yet available on registry' : 'network error';
330
347
  logger.info({
331
- message: `(${cw.color(localPackage.name)}) dependency not yet available on registry, retrying install (attempt ${attempt}/${maxRetries}, next retry in ${retryDelayMs / 1000}s)`,
348
+ message: `(${cw.color(localPackage.name)}) ${reason}, retrying install (attempt ${attempt}/${maxRetries}, next retry in ${retryDelayMs / 1000}s)`,
332
349
  });
333
350
  await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
334
351
  }
@@ -477,11 +494,16 @@ async function pushAndTagFixedVersionRepo(
477
494
  return commit;
478
495
  }
479
496
 
480
- async function pushMetarepos(dir: string) {
497
+ async function pushMetarepos(dir: string, skipRootRepo = false) {
481
498
  const metarepoPaths = (await Fs.getFilePathsMatchingGlob(dir, '**/.gitmodules', ['**/node_modules/**', '**/dist/**']))
482
499
  .map((gitmodulesPath) => path.dirname(gitmodulesPath))
483
500
  .sort((a, b) => b.localeCompare(a));
484
501
  for (const metarepoPath of metarepoPaths) {
502
+ if (skipRootRepo && path.resolve(metarepoPath) === path.resolve(dir)) {
503
+ const repoName = path.basename(metarepoPath);
504
+ logger.info({ message: `(${cw.color(repoName)}) skipping dirty workspace root repo` });
505
+ continue;
506
+ }
485
507
  await pushMetarepo(metarepoPath);
486
508
  }
487
509
  }
@@ -601,11 +623,11 @@ async function publish(localPackage: LocalPackage) {
601
623
  /* ignore malformed URL */
602
624
  }
603
625
 
604
- await cmd(
605
- 'npm',
606
- args,
607
- { cwd: packageDir, env: { ...process.env } },
608
- { logPrefix: `[${cw.color(localPackage.name)}] ` }
626
+ await retryOnNetworkError(
627
+ () => cmd('npm', args, { cwd: packageDir, env: { ...process.env } }, { logPrefix: `[${cw.color(localPackage.name)}] ` }),
628
+ localPackage.name,
629
+ 3,
630
+ 15_000
609
631
  );
610
632
 
611
633
  logger.info({ message: `(${cw.color(localPackage.name)}) published ${localPackage.packageJson.version}` });
@@ -664,3 +686,83 @@ function getPublishRegistry(publishConfig: { registry?: string }) {
664
686
 
665
687
  return 'https://registry.npmjs.org/';
666
688
  }
689
+
690
+ async function getCurrentBranch(dir: string): Promise<string> {
691
+ return new Promise((resolve, reject) => {
692
+ exec('git rev-parse --abbrev-ref HEAD', { cwd: dir }, (error, stdout) => {
693
+ if (error) {
694
+ reject(error);
695
+ return;
696
+ }
697
+ resolve(stdout.trim());
698
+ });
699
+ });
700
+ }
701
+
702
+ async function isRepoDirty(dir: string): Promise<boolean> {
703
+ return new Promise((resolve) => {
704
+ exec('git diff --ignore-submodules HEAD', { cwd: dir }, (error, stdout) => {
705
+ if (error) {
706
+ resolve(false);
707
+ return;
708
+ }
709
+ resolve(stdout.trim().length > 0);
710
+ });
711
+ });
712
+ }
713
+
714
+ async function hasFeatureCommits(dir: string): Promise<boolean> {
715
+ return new Promise((resolve) => {
716
+ exec('git log @{u}..HEAD --oneline', { cwd: dir }, (error, stdout) => {
717
+ if (error || !stdout.trim()) {
718
+ resolve(false);
719
+ return;
720
+ }
721
+ const hasFeature = stdout.split('\n').some((line) => /^[a-f0-9]+\s+feat[\s(:]/i.test(line));
722
+ resolve(hasFeature);
723
+ });
724
+ });
725
+ }
726
+
727
+ export async function evictGitLocks(workspacePath: string) {
728
+ const gitDir = path.join(workspacePath, '.git');
729
+ const lockFiles = await Fs.getFilePathsMatchingGlob(gitDir, '**/*.lock');
730
+ if (lockFiles.length === 0) {
731
+ return;
732
+ }
733
+
734
+ logger.info({ message: `> Evicting ${lockFiles.length} git lock file(s) from workspace` });
735
+ await Fs.deleteFiles(lockFiles);
736
+ logger.info({ message: `> Evicted git lock files` });
737
+ }
738
+
739
+ function isNetworkError(error: any): boolean {
740
+ const output = `${error.stdout ?? ''}${error.stderr ?? ''}`;
741
+ return (
742
+ /ECONNRESET/i.test(output) || /ETIMEDOUT/i.test(output) || /ENOTFOUND/i.test(output) ||
743
+ /EAI_AGAIN/i.test(output) || /ECONNREFUSED/i.test(output) || /socket hang up/i.test(output) ||
744
+ /network/i.test(output)
745
+ );
746
+ }
747
+
748
+ async function retryOnNetworkError(
749
+ fn: () => Promise<any>,
750
+ label: string,
751
+ maxRetries = 3,
752
+ retryDelayMs = 15_000
753
+ ): Promise<void> {
754
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
755
+ try {
756
+ await fn();
757
+ return;
758
+ } catch (error: any) {
759
+ if (!isNetworkError(error) || attempt === maxRetries) {
760
+ throw error;
761
+ }
762
+ logger.info({
763
+ message: `(${cw.color(label)}) network error, retrying (attempt ${attempt}/${maxRetries}, next retry in ${retryDelayMs / 1000}s)`,
764
+ });
765
+ await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
766
+ }
767
+ }
768
+ }