release-monorepo-semantically 1.9.2 → 1.9.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.
package/README.md CHANGED
@@ -82,7 +82,7 @@ Every step accepts `--context <json>` (except `report`, which produces it) and `
82
82
  | Command | Action | Does |
83
83
  | ----------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
84
84
  | `report` | (only one) | Discovers workspace packages, computes version bumps from commits since each package's last release tag, fails if the working tree isn't clean. Writes the release context as JSON to stdout. |
85
- | `package-json` | (only one) | Updates internal dependency versions in each released package's `package.json` to exact versions. |
85
+ | `package-json` | (only one) | Updates internal dependency versions in each released package's `package.json` to exact versions, in the `dependencies`/`devDependencies` block each was declared in (peer ranges are left alone), then refreshes the workspace lockfile. |
86
86
  | `package-manager` | _(default)_ | Bumps each released package's version via `pnpm version`. |
87
87
  | `package-manager` | `publish` | Publishes each released package via `pnpm publish`. Kept separate from the version bump so a pipeline can't reach the registry by accident. |
88
88
  | `changelog` | (only one) | Renders and prepends a changelog entry per released package. `--template <path>` and `--changelog-name <value>` (default `CHANGELOG.md`) override the defaults. |
@@ -27,7 +27,13 @@ export declare class NpmPackage implements Sortable {
27
27
  hasDependency(depPkgName: string): boolean;
28
28
  getCommitTag(): string;
29
29
  private findDependencyVersionByNameOrFail;
30
- private hasOutdatedDependency;
30
+ /**
31
+ * Every block that declares `depName` at something other than `newVersion`.
32
+ * A dependency can legitimately be declared twice (a devDependency next to a
33
+ * runtime one), and each declaration has to be refreshed, or the release
34
+ * leaves a stale specifier behind.
35
+ */
36
+ private findOutdatedDependencySections;
31
37
  getDependencyUpdates(releasedVersions: Map<string, string>): DependencyVersionChange[];
32
38
  hasDependencyUpdates(releasedVersions: Map<string, string>): boolean;
33
39
  getNewVersion(bumpType: SemVerBumpType): string;
@@ -1 +1 @@
1
- {"version":3,"file":"NpmPackage.d.ts","sourceRoot":"","sources":["../../src/domain/NpmPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,qBAAa,UAAW,YAAW,QAAQ;IAUvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAdlD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;IAI9E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU;gBAKtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGlD,MAAM,IAAI,cAAc;IAWxB,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAIvD,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,qBAAqB;IAK7B,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB,EAAE;IAiBtF,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1D,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;CAahD"}
1
+ {"version":3,"file":"NpmPackage.d.ts","sourceRoot":"","sources":["../../src/domain/NpmPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAA0C,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,qBAAa,UAAW,YAAW,QAAQ;IAUvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAdlD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;IAI9E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU;gBAKtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGlD,MAAM,IAAI,cAAc;IAWxB,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAIvD,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iCAAiC;IAQzC;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B;IAOtC,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB,EAAE;IAmBtF,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1D,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;CAahD"}
@@ -1,3 +1,4 @@
1
+ import { DEPENDENCY_SECTIONS } from './ReleaseTypes.js';
1
2
  import { SemVerBumpType } from './SemVerBumpType.js';
2
3
  import { MissingDependencyVersionException } from '../exceptions/DomainException.js';
3
4
  export class NpmPackage {
@@ -40,25 +41,35 @@ export class NpmPackage {
40
41
  getCommitTag() {
41
42
  return `${this.name}@${this.version}`;
42
43
  }
43
- findDependencyVersionByNameOrFail(depName) {
44
- const dependencyVersion = this.dependencies[depName] ?? this.devDependencies[depName];
44
+ findDependencyVersionByNameOrFail(depName, sections) {
45
+ const dependencyVersion = sections.map((section) => this[section][depName]).find(Boolean);
45
46
  if (!dependencyVersion) {
46
47
  throw new MissingDependencyVersionException(this.name, depName);
47
48
  }
48
49
  return dependencyVersion;
49
50
  }
50
- hasOutdatedDependency(depName, newVersion) {
51
- const dependencyVersion = this.dependencies[depName] ?? this.devDependencies[depName];
52
- return Boolean(dependencyVersion) && dependencyVersion !== newVersion;
51
+ /**
52
+ * Every block that declares `depName` at something other than `newVersion`.
53
+ * A dependency can legitimately be declared twice (a devDependency next to a
54
+ * runtime one), and each declaration has to be refreshed, or the release
55
+ * leaves a stale specifier behind.
56
+ */
57
+ findOutdatedDependencySections(depName, newVersion) {
58
+ return DEPENDENCY_SECTIONS.filter((section) => {
59
+ const dependencyVersion = this[section][depName];
60
+ return Boolean(dependencyVersion) && dependencyVersion !== newVersion;
61
+ });
53
62
  }
54
63
  getDependencyUpdates(releasedVersions) {
55
64
  const changes = [];
56
65
  for (const [depName, newVersion] of releasedVersions) {
57
- if (this.hasOutdatedDependency(depName, newVersion)) {
66
+ const sections = this.findOutdatedDependencySections(depName, newVersion);
67
+ if (sections.length > 0) {
58
68
  changes.push({
59
69
  packageName: depName,
60
- oldVersion: this.findDependencyVersionByNameOrFail(depName),
70
+ oldVersion: this.findDependencyVersionByNameOrFail(depName, sections),
61
71
  newVersion,
72
+ sections,
62
73
  });
63
74
  }
64
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NpmPackage.js","sourceRoot":"","sources":["../../src/domain/NpmPackage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NpmPackage.js","sourceRoot":"","sources":["../../src/domain/NpmPackage.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface PackageJSON {
4
4
  private?: boolean;
5
5
  dependencies?: Record<string, string>;
6
6
  devDependencies?: Record<string, string>;
7
+ peerDependencies?: Record<string, string>;
7
8
  workspaces?: string[];
8
9
  }
9
10
  //# sourceMappingURL=PackageJSON.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PackageJSON.d.ts","sourceRoot":"","sources":["../../src/domain/PackageJSON.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB"}
1
+ {"version":3,"file":"PackageJSON.d.ts","sourceRoot":"","sources":["../../src/domain/PackageJSON.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -1,6 +1,22 @@
1
+ /**
2
+ * The package.json blocks an internal dependency version may be declared in,
3
+ * and therefore the only blocks a release is allowed to write a bump back to.
4
+ *
5
+ * `peerDependencies` is deliberately absent: a peer range expresses
6
+ * compatibility (`>=56`), not a pinned version, so pinning it to the freshly
7
+ * released version would be wrong.
8
+ */
9
+ export declare const DEPENDENCY_SECTIONS: readonly ["dependencies", "devDependencies"];
10
+ export type DependencySection = (typeof DEPENDENCY_SECTIONS)[number];
1
11
  export interface DependencyVersionChange {
2
12
  packageName: string;
3
13
  oldVersion: string;
4
14
  newVersion: string;
15
+ /**
16
+ * Every block the outdated version was read from. The bump is written back
17
+ * to exactly these blocks, so a dependency declared only as a devDependency
18
+ * never grows a `dependencies` entry alongside it.
19
+ */
20
+ sections: DependencySection[];
5
21
  }
6
22
  //# sourceMappingURL=ReleaseTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseTypes.d.ts","sourceRoot":"","sources":["../../src/domain/ReleaseTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"ReleaseTypes.d.ts","sourceRoot":"","sources":["../../src/domain/ReleaseTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,8CAA+C,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B"}
@@ -1,2 +1,10 @@
1
- export {};
1
+ /**
2
+ * The package.json blocks an internal dependency version may be declared in,
3
+ * and therefore the only blocks a release is allowed to write a bump back to.
4
+ *
5
+ * `peerDependencies` is deliberately absent: a peer range expresses
6
+ * compatibility (`>=56`), not a pinned version, so pinning it to the freshly
7
+ * released version would be wrong.
8
+ */
9
+ export const DEPENDENCY_SECTIONS = ['dependencies', 'devDependencies'];
2
10
  //# sourceMappingURL=ReleaseTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseTypes.js","sourceRoot":"","sources":["../../src/domain/ReleaseTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ReleaseTypes.js","sourceRoot":"","sources":["../../src/domain/ReleaseTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAU,CAAC"}
@@ -3,11 +3,21 @@ import { ILogger } from '../../services/ConsoleLogger.js';
3
3
  import { z } from 'zod';
4
4
  import { PLUGIN_CONFIG_SCHEMA } from './PackageJsonConfig.js';
5
5
  import { type StepOptions } from '../../utils/cli.js';
6
+ import { PackageManager } from '../packageManager/services/PackageManager.js';
6
7
  export declare class PackageController {
7
8
  private readonly config;
8
9
  private readonly fs;
10
+ private readonly packageManager;
11
+ private readonly cwd;
9
12
  private readonly logger;
10
- constructor(config: z.infer<typeof PLUGIN_CONFIG_SCHEMA>, fs: IFileSystemService, logger: ILogger);
13
+ constructor(config: z.infer<typeof PLUGIN_CONFIG_SCHEMA>, fs: IFileSystemService, packageManager: PackageManager, cwd: string, logger: ILogger);
11
14
  updateDependencies(options: StepOptions): void;
15
+ /**
16
+ * Rewriting a manifest changes a specifier the lockfile has recorded, so an
17
+ * unrefreshed lockfile fails every later `install --frozen-lockfile` — not
18
+ * just the release build. The refresh belongs to this step so the release
19
+ * commit carries both halves of the change.
20
+ */
21
+ private refreshLockfile;
12
22
  }
13
23
  //# sourceMappingURL=PackageController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PackageController.d.ts","sourceRoot":"","sources":["../../../src/features/packageJson/PackageController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,yCAAyC,CAAC;AACpG,OAAO,EAAE,OAAO,EAAc,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAc,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI1E,OAAO,EAAuC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE3F,qBACa,iBAAiB;IAEsC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACxD,OAAO,CAAC,QAAQ,CAAC,EAAE;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFiB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,EAC7E,EAAE,EAAE,kBAAkB,EACZ,MAAM,EAAE,OAAO;IAO3E,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CA2B/C"}
1
+ {"version":3,"file":"PackageController.d.ts","sourceRoot":"","sources":["../../../src/features/packageJson/PackageController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,yCAAyC,CAAC;AACpG,OAAO,EAAE,OAAO,EAAc,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAc,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI1E,OAAO,EAAuC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAqB,MAAM,8CAA8C,CAAC;AAGjG,qBACa,iBAAiB;IAEsC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACxD,OAAO,CAAC,QAAQ,CAAC,EAAE;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAJiB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,EAC7E,EAAE,EAAE,kBAAkB,EAC1B,cAAc,EAAE,cAAc,EAC5B,GAAG,EAAE,MAAM,EACC,MAAM,EAAE,OAAO;IAO3E,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IA2C9C;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CASxB"}
@@ -20,27 +20,43 @@ import { action, command, execute, onDefault, schema } from '../../cli/index.js'
20
20
  import { constant as c } from '../../utils/utils.js';
21
21
  import { deserializeContext } from '../../domain/ReleaseControllerContext.js';
22
22
  import { isDryRun, STEP_OPTIONS, stepCommand } from '../../utils/cli.js';
23
+ import { PackageManagerKey } from '../packageManager/services/PackageManager.js';
24
+ import { globalConfig } from '../../domain/GlobalConfig.js';
23
25
  let PackageController = class PackageController {
24
26
  config;
25
27
  fs;
28
+ packageManager;
29
+ cwd;
26
30
  logger;
27
- constructor(config, fs, logger) {
31
+ constructor(config, fs, packageManager, cwd, logger) {
28
32
  this.config = config;
29
33
  this.fs = fs;
34
+ this.packageManager = packageManager;
35
+ this.cwd = cwd;
30
36
  this.logger = logger;
31
37
  }
32
38
  updateDependencies(options) {
33
39
  const { releasedPackages, releasedVersions } = deserializeContext(options.context);
34
40
  const dryRun = isDryRun(options, this.config);
41
+ let manifestsChanged = false;
35
42
  for (const pkg of releasedPackages) {
36
43
  const changes = pkg.getDependencyUpdates(releasedVersions);
37
44
  if (changes.length === 0) {
38
45
  continue;
39
46
  }
40
47
  const packageJson = this.fs.readPackageJsonOrFail(pkg.dirname);
41
- packageJson.dependencies ??= {};
42
48
  for (const change of changes) {
43
- packageJson.dependencies[change.packageName] = change.newVersion;
49
+ // The bump goes back into the blocks the outdated version was read
50
+ // from, and nowhere else. Writing it to `dependencies` unconditionally
51
+ // left the devDependency it came from stale and handed consumers a
52
+ // duplicate copy of a package they already had as a peer.
53
+ for (const section of change.sections) {
54
+ const declaredDependencies = packageJson[section];
55
+ if (declaredDependencies?.[change.packageName] === undefined) {
56
+ continue;
57
+ }
58
+ declaredDependencies[change.packageName] = change.newVersion;
59
+ }
44
60
  this.logger.info(`BUMP ${change.packageName}@${change.newVersion}`);
45
61
  }
46
62
  if (dryRun) {
@@ -48,8 +64,26 @@ let PackageController = class PackageController {
48
64
  continue;
49
65
  }
50
66
  this.fs.writeToPackageJsonOrFail(pkg.dirname, packageJson);
67
+ manifestsChanged = true;
51
68
  this.logger.info(`SAVE ${pkg.name} package.json`);
52
69
  }
70
+ if (manifestsChanged) {
71
+ this.refreshLockfile();
72
+ }
73
+ }
74
+ /**
75
+ * Rewriting a manifest changes a specifier the lockfile has recorded, so an
76
+ * unrefreshed lockfile fails every later `install --frozen-lockfile` — not
77
+ * just the release build. The refresh belongs to this step so the release
78
+ * commit carries both halves of the change.
79
+ */
80
+ refreshLockfile() {
81
+ const { lockfileName } = this.packageManager;
82
+ if (!this.fs.fileExists(lockfileName)) {
83
+ return;
84
+ }
85
+ this.packageManager.refreshLockfile(this.cwd);
86
+ this.logger.info(`LOCK ${lockfileName} refreshed`);
53
87
  }
54
88
  };
55
89
  __decorate([
@@ -65,8 +99,10 @@ PackageController = __decorate([
65
99
  register(bindTo('package-json')),
66
100
  __param(0, inject(pluginsConfigService(CONFIG_KEY, PLUGIN_CONFIG_SCHEMA))),
67
101
  __param(1, inject(IFileSystemServiceKey)),
68
- __param(2, inject(ILoggerKey.args('package-json'))),
69
- __metadata("design:paramtypes", [Object, Object, Object])
102
+ __param(2, inject(PackageManagerKey)),
103
+ __param(3, inject(globalConfig('cwd'))),
104
+ __param(4, inject(ILoggerKey.args('package-json'))),
105
+ __metadata("design:paramtypes", [Object, Object, Object, String, Object])
70
106
  ], PackageController);
71
107
  export { PackageController };
72
108
  //# sourceMappingURL=PackageController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PackageController.js","sourceRoot":"","sources":["../../../src/features/packageJson/PackageController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAsB,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACpG,OAAO,EAAW,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAoB,MAAM,oBAAoB,CAAC;AAGpF,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEuD;IACjC;IACU;IAH5D,YACmF,MAA4C,EAC7E,EAAsB,EACZ,MAAe;QAFQ,WAAM,GAAN,MAAM,CAAsC;QAC7E,OAAE,GAAF,EAAE,CAAoB;QACZ,WAAM,GAAN,MAAM,CAAS;IACxE,CAAC;IAMJ,kBAAkB,CAAC,OAAoB;QACrC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/D,WAAW,CAAC,YAAY,KAAK,EAAE,CAAC;YAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;gBACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,yBAAyB,CAAC,CAAC;gBACzE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAA;AA3BC;IAJC,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACzB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACvB,MAAM,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC;;;;2DA2BxC;AArCU,iBAAiB;IAD7B,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAG5B,WAAA,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC9D,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;;GAJ/B,iBAAiB,CAsC7B"}
1
+ {"version":3,"file":"PackageController.js","sourceRoot":"","sources":["../../../src/features/packageJson/PackageController.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import 'reflect-metadata';
2
2
  import { PackageManager } from './PackageManager.js';
3
3
  export declare class PNPMPackageManager implements PackageManager {
4
+ readonly lockfileName = "pnpm-lock.yaml";
4
5
  bumpVersion(cwd: string, version: string): void;
6
+ refreshLockfile(cwd: string): void;
5
7
  publish(cwd: string): void;
6
8
  }
7
9
  //# sourceMappingURL=PNPMPackageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PNPMPackageManager.d.ts","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PNPMPackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAIxE,qBACa,kBAAmB,YAAW,cAAc;IACvD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAO/C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAM3B"}
1
+ {"version":3,"file":"PNPMPackageManager.d.ts","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PNPMPackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAIxE,qBACa,kBAAmB,YAAW,cAAc;IACvD,QAAQ,CAAC,YAAY,oBAAoB;IAEzC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAO/C,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOlC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAM3B"}
@@ -10,12 +10,19 @@ import { bindTo, register } from 'ts-ioc-container';
10
10
  import { PackageManagerKey } from './PackageManager.js';
11
11
  import { whenPackageManagerConfigEqual } from '../PackageManagerConfig.js';
12
12
  let PNPMPackageManager = class PNPMPackageManager {
13
+ lockfileName = 'pnpm-lock.yaml';
13
14
  bumpVersion(cwd, version) {
14
15
  execSync(`pnpm version ${version} --no-git-tag-version`, {
15
16
  cwd,
16
17
  stdio: 'pipe',
17
18
  });
18
19
  }
20
+ refreshLockfile(cwd) {
21
+ execSync('pnpm install --lockfile-only --ignore-scripts', {
22
+ cwd,
23
+ stdio: 'pipe',
24
+ });
25
+ }
19
26
  publish(cwd) {
20
27
  execSync('pnpm publish --no-git-checks', {
21
28
  cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"PNPMPackageManager.js","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PNPMPackageManager.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAGpE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,WAAW,CAAC,GAAW,EAAE,OAAe;QACtC,QAAQ,CAAC,gBAAgB,OAAO,uBAAuB,EAAE;YACvD,GAAG;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,QAAQ,CAAC,8BAA8B,EAAE;YACvC,GAAG;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAdY,kBAAkB;IAD9B,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;GACtE,kBAAkB,CAc9B"}
1
+ {"version":3,"file":"PNPMPackageManager.js","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PNPMPackageManager.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAGpE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACpB,YAAY,GAAG,gBAAgB,CAAC;IAEzC,WAAW,CAAC,GAAW,EAAE,OAAe;QACtC,QAAQ,CAAC,gBAAgB,OAAO,uBAAuB,EAAE;YACvD,GAAG;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,QAAQ,CAAC,+CAA+C,EAAE;YACxD,GAAG;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,QAAQ,CAAC,8BAA8B,EAAE;YACvC,GAAG;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvBY,kBAAkB;IAD9B,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;GACtE,kBAAkB,CAuB9B"}
@@ -1,6 +1,14 @@
1
1
  import { SingleToken } from 'ts-ioc-container';
2
2
  export interface PackageManager {
3
+ /** Lockfile this package manager maintains, relative to the workspace root. */
4
+ readonly lockfileName: string;
3
5
  bumpVersion(cwd: string, version: string): void;
6
+ /**
7
+ * Reconciles the lockfile with the manifests on disk. Resolution only — it
8
+ * must not touch `node_modules`, since a release step runs against an
9
+ * already-installed workspace.
10
+ */
11
+ refreshLockfile(cwd: string): void;
4
12
  publish(cwd: string): void;
5
13
  }
6
14
  export declare const PackageManagerKey: SingleToken<PackageManager>;
@@ -1 +1 @@
1
- {"version":3,"file":"PackageManager.d.ts","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB,6BAAqD,CAAC"}
1
+ {"version":3,"file":"PackageManager.d.ts","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB,6BAAqD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAiB,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../../../src/features/packageManager/services/PackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAe/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAiB,iBAAiB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-monorepo-semantically",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "description": "cli commands to manage versioning of package in monorepo and generate changelog",
5
5
  "license": "ISC",
6
6
  "author": "",