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 +21 -0
- package/README.md +10 -0
- package/build/src/bin/release-please.js +12 -1
- package/build/src/manifest.js +23 -19
- package/build/src/plugins/node-workspace.js +18 -2
- package/package.json +1 -1
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();
|
package/build/src/manifest.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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