release-please 13.4.12 → 13.4.15

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
@@ -4,6 +4,27 @@
4
4
 
5
5
  [1]: https://www.npmjs.com/package/release-please?activeTab=versions
6
6
 
7
+ ### [13.4.15](https://github.com/googleapis/release-please/compare/v13.4.14...v13.4.15) (2022-03-02)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * tagging many GitHub releases should not require a file touched check ([#1321](https://github.com/googleapis/release-please/issues/1321)) ([ab99242](https://github.com/googleapis/release-please/commit/ab9924215e68838e6ec62d283b5712cbff6e6a4c))
13
+
14
+ ### [13.4.14](https://github.com/googleapis/release-please/compare/v13.4.13...v13.4.14) (2022-03-01)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * node-workspace plugin should update package.json versions ([#1319](https://github.com/googleapis/release-please/issues/1319)) ([e2aaacb](https://github.com/googleapis/release-please/commit/e2aaacbab59c7660abe572c5e6ce31ad666a90c5))
20
+
21
+ ### [13.4.13](https://github.com/googleapis/release-please/compare/v13.4.12...v13.4.13) (2022-02-28)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * handle failures during multiple release creation ([#1315](https://github.com/googleapis/release-please/issues/1315)) ([fc856ae](https://github.com/googleapis/release-please/commit/fc856aed1d95def38170eff6381829cd6d7d1e0b))
27
+
7
28
  ### [13.4.12](https://github.com/googleapis/release-please/compare/v13.4.11...v13.4.12) (2022-02-22)
8
29
 
9
30
 
package/README.md CHANGED
@@ -109,6 +109,16 @@ END_COMMIT_OVERRIDE
109
109
  The next time release please runs, it will use that override section as the
110
110
  commit message instead of the merged commit message.
111
111
 
112
+ ## Release Please bot does not create a release PR. Why?
113
+
114
+ Release Please creates a release pull request after it sees the default branch
115
+ contains "releaseable units" since the last release.
116
+ A releasable unit is a commit to the branch with one of the following
117
+ prefixes: "feat" and "fix". (A "chore" commit is not a releasable unit.)
118
+
119
+ Some languages have their specific releasable unit configuration. For example,
120
+ "docs" is a prefix for releasable units in Java and Python.
121
+
112
122
  ## Strategy (Language) types supported
113
123
 
114
124
  Release Please automates releases for the following flavors of repositories:
@@ -332,7 +332,18 @@ const createReleaseCommand = {
332
332
  }
333
333
  if (argv.dryRun) {
334
334
  const releases = await manifest.buildReleases();
335
- logger_1.logger.info(releases);
335
+ logger_1.logger.info(`Would tag ${releases.length} releases:`);
336
+ for (const release of releases) {
337
+ logger_1.logger.info({
338
+ name: release.name,
339
+ tag: release.tag.toString(),
340
+ notes: release.notes,
341
+ sha: release.sha,
342
+ draft: release.draft,
343
+ prerelease: release.prerelease,
344
+ pullNumber: release.pullRequest.number,
345
+ });
346
+ }
336
347
  }
337
348
  else {
338
349
  const releaseNumbers = await manifest.createReleases();
@@ -24,6 +24,7 @@ const factory_1 = require("./factory");
24
24
  const pull_request_body_1 = require("./util/pull-request-body");
25
25
  const merge_1 = require("./plugins/merge");
26
26
  const release_please_manifest_1 = require("./updaters/release-please-manifest");
27
+ const errors_1 = require("./errors");
27
28
  exports.DEFAULT_RELEASE_PLEASE_CONFIG = 'release-please-config.json';
28
29
  exports.DEFAULT_RELEASE_PLEASE_MANIFEST = '.release-please-manifest.json';
29
30
  exports.ROOT_PROJECT_PATH = '.';
@@ -453,29 +454,11 @@ class Manifest {
453
454
  const generator = await this.findMergedReleasePullRequests();
454
455
  const releases = [];
455
456
  for await (const pullRequest of generator) {
456
- logger_1.logger.info('Looking at files touched by path');
457
- const cs = new commit_split_1.CommitSplit({
458
- includeEmpty: true,
459
- packagePaths: Object.keys(this.repositoryConfig),
460
- });
461
- const commits = [
462
- {
463
- sha: pullRequest.sha,
464
- message: pullRequest.title,
465
- files: pullRequest.files,
466
- },
467
- ];
468
- const commitsPerPath = cs.split(commits);
469
457
  for (const path in this.repositoryConfig) {
470
458
  const config = this.repositoryConfig[path];
471
459
  logger_1.logger.info(`Building release for path: ${path}`);
472
460
  logger_1.logger.debug(`type: ${config.releaseType}`);
473
461
  logger_1.logger.debug(`targetBranch: ${this.targetBranch}`);
474
- const pathCommits = path === exports.ROOT_PROJECT_PATH ? commits : commitsPerPath[path];
475
- if (!pathCommits || pathCommits.length === 0) {
476
- logger_1.logger.info(`No commits for path: ${path}, skipping`);
477
- continue;
478
- }
479
462
  const strategy = strategiesByPath[path];
480
463
  const release = await strategy.buildRelease(pullRequest);
481
464
  if (release) {
@@ -489,6 +472,9 @@ class Manifest {
489
472
  release.tag.version.major === 0),
490
473
  });
491
474
  }
475
+ else {
476
+ logger_1.logger.info(`No release necessary for path: ${path}`);
477
+ }
492
478
  }
493
479
  }
494
480
  return releases;
@@ -525,7 +511,25 @@ class Manifest {
525
511
  for (const release of releases) {
526
512
  promises.push(this.createRelease(release));
527
513
  }
528
- const githubReleases = await Promise.all(promises);
514
+ const duplicateReleases = [];
515
+ const githubReleases = [];
516
+ for (const promise of promises) {
517
+ try {
518
+ githubReleases.push(await promise);
519
+ }
520
+ catch (err) {
521
+ if (err instanceof errors_1.DuplicateReleaseError) {
522
+ logger_1.logger.warn(`Duplicate release tag: ${err.tag}`);
523
+ duplicateReleases.push(err);
524
+ }
525
+ else {
526
+ throw err;
527
+ }
528
+ }
529
+ }
530
+ if (duplicateReleases.length > 0 && githubReleases.length === 0) {
531
+ throw duplicateReleases[0];
532
+ }
529
533
  // adjust tags on pullRequest
530
534
  await Promise.all([
531
535
  this.github.removeIssueLabels(this.labels, pullRequest.number),
@@ -102,6 +102,13 @@ class NodeWorkspace extends workspace_1.WorkspacePlugin {
102
102
  throw new Error(`Could not find graph package for ${pkg.name}`);
103
103
  }
104
104
  const updatedPackage = pkg.clone();
105
+ // Update version of the package
106
+ const newVersion = updatedVersions.get(updatedPackage.name);
107
+ if (newVersion) {
108
+ logger_1.logger.info(`Updating ${updatedPackage.name} to ${newVersion}`);
109
+ updatedPackage.version = newVersion.toString();
110
+ }
111
+ // Update dependency versions
105
112
  for (const [depName, resolved] of graphPackage.localDependencies) {
106
113
  const depVersion = updatedVersions.get(depName);
107
114
  if (depVersion && resolved.type !== 'directory') {
@@ -116,7 +123,10 @@ class NodeWorkspace extends workspace_1.WorkspacePlugin {
116
123
  update.updater = new raw_content_1.RawContent(json_stringify_1.jsonStringify(updatedPackage.toJSON(), updatedPackage.rawContent));
117
124
  }
118
125
  else if (update.updater instanceof changelog_1.Changelog) {
119
- update.updater.changelogEntry = appendDependenciesSectionToChangelog(update.updater.changelogEntry, dependencyNotes);
126
+ if (dependencyNotes) {
127
+ update.updater.changelogEntry =
128
+ appendDependenciesSectionToChangelog(update.updater.changelogEntry, dependencyNotes);
129
+ }
120
130
  }
121
131
  return update;
122
132
  });
@@ -143,6 +153,12 @@ class NodeWorkspace extends workspace_1.WorkspacePlugin {
143
153
  throw new Error(`Could not find graph package for ${pkg.name}`);
144
154
  }
145
155
  const updatedPackage = pkg.clone();
156
+ // Update version of the package
157
+ const newVersion = updatedVersions.get(updatedPackage.name);
158
+ if (newVersion) {
159
+ logger_1.logger.info(`Updating ${updatedPackage.name} to ${newVersion}`);
160
+ updatedPackage.version = newVersion.toString();
161
+ }
146
162
  for (const [depName, resolved] of graphPackage.localDependencies) {
147
163
  const depVersion = updatedVersions.get(depName);
148
164
  if (depVersion && resolved.type !== 'directory') {
@@ -173,7 +189,7 @@ class NodeWorkspace extends workspace_1.WorkspacePlugin {
173
189
  createIfMissing: false,
174
190
  updater: new changelog_1.Changelog({
175
191
  version,
176
- changelogEntry: dependencyNotes,
192
+ changelogEntry: appendDependenciesSectionToChangelog('', dependencyNotes),
177
193
  }),
178
194
  },
179
195
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-please",
3
- "version": "13.4.12",
3
+ "version": "13.4.15",
4
4
  "description": "generate release PRs based on the conventionalcommits.org spec",
5
5
  "main": "./build/src/index.js",
6
6
  "bin": "./build/src/bin/release-please.js",