release-monorepo-semantically 1.9.2 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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,30 @@
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];
11
+ /**
12
+ * A specifier using pnpm's `workspace:` protocol always points at the copy in
13
+ * this workspace, so it is never stale and must not be rewritten to an exact
14
+ * version. Rewriting it would replace a local link with a version that is only
15
+ * published later in the release, leaving the lockfile refresh with nothing to
16
+ * resolve. `pnpm publish` substitutes the real version into the tarball.
17
+ */
18
+ export declare function isWorkspaceProtocol(specifier: string): boolean;
1
19
  export interface DependencyVersionChange {
2
20
  packageName: string;
3
21
  oldVersion: string;
4
22
  newVersion: string;
23
+ /**
24
+ * Every block the outdated version was read from. The bump is written back
25
+ * to exactly these blocks, so a dependency declared only as a devDependency
26
+ * never grows a `dependencies` entry alongside it.
27
+ */
28
+ sections: DependencySection[];
5
29
  }
6
30
  //# 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;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,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,20 @@
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'];
10
+ /**
11
+ * A specifier using pnpm's `workspace:` protocol always points at the copy in
12
+ * this workspace, so it is never stale and must not be rewritten to an exact
13
+ * version. Rewriting it would replace a local link with a version that is only
14
+ * published later in the release, leaving the lockfile refresh with nothing to
15
+ * resolve. `pnpm publish` substitutes the real version into the tarball.
16
+ */
17
+ export function isWorkspaceProtocol(specifier) {
18
+ return specifier.startsWith('workspace:');
19
+ }
2
20
  //# 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;AAIhF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC5C,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;AAIjG,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;IA4D9C;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CASxB"}
@@ -20,36 +20,86 @@ 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';
25
+ import { isWorkspaceProtocol } from '../../domain/ReleaseTypes.js';
23
26
  let PackageController = class PackageController {
24
27
  config;
25
28
  fs;
29
+ packageManager;
30
+ cwd;
26
31
  logger;
27
- constructor(config, fs, logger) {
32
+ constructor(config, fs, packageManager, cwd, logger) {
28
33
  this.config = config;
29
34
  this.fs = fs;
35
+ this.packageManager = packageManager;
36
+ this.cwd = cwd;
30
37
  this.logger = logger;
31
38
  }
32
39
  updateDependencies(options) {
33
40
  const { releasedPackages, releasedVersions } = deserializeContext(options.context);
34
41
  const dryRun = isDryRun(options, this.config);
42
+ let manifestsChanged = false;
35
43
  for (const pkg of releasedPackages) {
36
44
  const changes = pkg.getDependencyUpdates(releasedVersions);
37
45
  if (changes.length === 0) {
38
46
  continue;
39
47
  }
40
48
  const packageJson = this.fs.readPackageJsonOrFail(pkg.dirname);
41
- packageJson.dependencies ??= {};
49
+ let manifestRewritten = false;
42
50
  for (const change of changes) {
43
- packageJson.dependencies[change.packageName] = change.newVersion;
44
- this.logger.info(`BUMP ${change.packageName}@${change.newVersion}`);
51
+ // The bump goes back into the blocks the outdated version was read
52
+ // from, and nowhere else. Writing it to `dependencies` unconditionally
53
+ // left the devDependency it came from stale and handed consumers a
54
+ // duplicate copy of a package they already had as a peer.
55
+ let changeApplied = false;
56
+ for (const section of change.sections) {
57
+ const declaredDependencies = packageJson[section];
58
+ if (declaredDependencies === undefined) {
59
+ continue;
60
+ }
61
+ const declaredVersion = declaredDependencies[change.packageName];
62
+ if (declaredVersion === undefined || isWorkspaceProtocol(declaredVersion)) {
63
+ continue;
64
+ }
65
+ declaredDependencies[change.packageName] = change.newVersion;
66
+ changeApplied = true;
67
+ }
68
+ if (changeApplied) {
69
+ manifestRewritten = true;
70
+ this.logger.info(`BUMP ${change.packageName}@${change.newVersion}`);
71
+ }
72
+ }
73
+ // Every declaration was on the workspace protocol, so the manifest on
74
+ // disk is already correct and neither it nor the lockfile needs writing.
75
+ if (!manifestRewritten) {
76
+ continue;
45
77
  }
46
78
  if (dryRun) {
47
79
  this.logger.info(`SKIP SAVE ${pkg.name} package.json (dry-run)`);
48
80
  continue;
49
81
  }
50
82
  this.fs.writeToPackageJsonOrFail(pkg.dirname, packageJson);
83
+ manifestsChanged = true;
51
84
  this.logger.info(`SAVE ${pkg.name} package.json`);
52
85
  }
86
+ if (manifestsChanged) {
87
+ this.refreshLockfile();
88
+ }
89
+ }
90
+ /**
91
+ * Rewriting a manifest changes a specifier the lockfile has recorded, so an
92
+ * unrefreshed lockfile fails every later `install --frozen-lockfile` — not
93
+ * just the release build. The refresh belongs to this step so the release
94
+ * commit carries both halves of the change.
95
+ */
96
+ refreshLockfile() {
97
+ const { lockfileName } = this.packageManager;
98
+ if (!this.fs.fileExists(lockfileName)) {
99
+ return;
100
+ }
101
+ this.packageManager.refreshLockfile(this.cwd);
102
+ this.logger.info(`LOCK ${lockfileName} refreshed`);
53
103
  }
54
104
  };
55
105
  __decorate([
@@ -65,8 +115,10 @@ PackageController = __decorate([
65
115
  register(bindTo('package-json')),
66
116
  __param(0, inject(pluginsConfigService(CONFIG_KEY, PLUGIN_CONFIG_SCHEMA))),
67
117
  __param(1, inject(IFileSystemServiceKey)),
68
- __param(2, inject(ILoggerKey.args('package-json'))),
69
- __metadata("design:paramtypes", [Object, Object, Object])
118
+ __param(2, inject(PackageManagerKey)),
119
+ __param(3, inject(globalConfig('cwd'))),
120
+ __param(4, inject(ILoggerKey.args('package-json'))),
121
+ __metadata("design:paramtypes", [Object, Object, Object, String, Object])
70
122
  ], PackageController);
71
123
  export { PackageController };
72
124
  //# sourceMappingURL=PackageController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PackageController.js","sourceRoot":"","sources":["../../../src/features/packageJson/PackageController.ts"],"names":[],"mappings":"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"}
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.4",
4
4
  "description": "cli commands to manage versioning of package in monorepo and generate changelog",
5
5
  "license": "ISC",
6
6
  "author": "",