release-please 13.19.1 → 13.19.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/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@
4
4
 
5
5
  [1]: https://www.npmjs.com/package/release-please?activeTab=versions
6
6
 
7
+ ## [13.19.4](https://github.com/googleapis/release-please/compare/v13.19.3...v13.19.4) (2022-07-25)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **commits:** remove content before and after BREAKING in body ([#1531](https://github.com/googleapis/release-please/issues/1531)) ([f75e49f](https://github.com/googleapis/release-please/commit/f75e49f6b751347456746d9c4068191d340c8e1e))
13
+ * **python:** make` __init__.py` bump underscore / hyphen agnostic ([4b25a47](https://github.com/googleapis/release-please/commit/4b25a475d53fd4f2eadd14619f701e51275f8e62))
14
+
15
+ ## [13.19.3](https://github.com/googleapis/release-please/compare/v13.19.2...v13.19.3) (2022-07-08)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * stop iterating if we fail to receive commits from a graphql query ([#1518](https://github.com/googleapis/release-please/issues/1518)) ([0f27cb5](https://github.com/googleapis/release-please/commit/0f27cb58d5a21e95a4f1a6c3fcfff019cdfdaff9))
21
+
22
+ ## [13.19.2](https://github.com/googleapis/release-please/compare/v13.19.1...v13.19.2) (2022-07-06)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * move schemas to their own directory and add to dist ([#1512](https://github.com/googleapis/release-please/issues/1512)) ([b7fb4ad](https://github.com/googleapis/release-please/commit/b7fb4ad6182a050a2c2a8376b4dd84d105b83438)), closes [#1511](https://github.com/googleapis/release-please/issues/1511)
28
+
7
29
  ## [13.19.1](https://github.com/googleapis/release-please/compare/v13.19.0...v13.19.1) (2022-07-06)
8
30
 
9
31
 
@@ -92,6 +92,7 @@ function toConventionalChangelogFormat(ast) {
92
92
  text: '', // "text" will be populated if a BREAKING CHANGE token is parsed.
93
93
  };
94
94
  visitWithAncestors(ast, ['breaking-change'], (node, ancestors) => {
95
+ let hitBreakingMarker = false;
95
96
  let parent = ancestors.pop();
96
97
  if (!parent) {
97
98
  return;
@@ -104,7 +105,13 @@ function toConventionalChangelogFormat(ast) {
104
105
  breaking.text = '';
105
106
  // We treat text from the BREAKING CHANGE marker forward as
106
107
  // the breaking change notes:
107
- visit(parent, ['text', 'newline'], (node) => {
108
+ visit(parent, ['breaking-change', 'text', 'newline'], (node) => {
109
+ if (node.type === 'breaking-change') {
110
+ hitBreakingMarker = true;
111
+ return;
112
+ }
113
+ if (!hitBreakingMarker)
114
+ return;
108
115
  breaking.text += node.value;
109
116
  });
110
117
  break;
@@ -488,64 +488,72 @@ class GitHub {
488
488
  }
489
489
  }
490
490
  async mergeCommitsGraphQL(targetBranch, cursor, options = {}) {
491
- var _a;
491
+ var _a, _b;
492
492
  logger_1.logger.debug(`Fetching merge commits on branch ${targetBranch} with cursor: ${cursor}`);
493
- const response = await this.graphqlRequest({
494
- query: `query pullRequestsSince($owner: String!, $repo: String!, $num: Int!, $maxFilesChanged: Int, $targetBranch: String!, $cursor: String) {
495
- repository(owner: $owner, name: $repo) {
496
- ref(qualifiedName: $targetBranch) {
497
- target {
498
- ... on Commit {
499
- history(first: $num, after: $cursor) {
500
- nodes {
501
- associatedPullRequests(first: 10) {
502
- nodes {
503
- number
504
- title
505
- baseRefName
506
- headRefName
507
- labels(first: 10) {
508
- nodes {
509
- name
510
- }
493
+ const query = `query pullRequestsSince($owner: String!, $repo: String!, $num: Int!, $maxFilesChanged: Int, $targetBranch: String!, $cursor: String) {
494
+ repository(owner: $owner, name: $repo) {
495
+ ref(qualifiedName: $targetBranch) {
496
+ target {
497
+ ... on Commit {
498
+ history(first: $num, after: $cursor) {
499
+ nodes {
500
+ associatedPullRequests(first: 10) {
501
+ nodes {
502
+ number
503
+ title
504
+ baseRefName
505
+ headRefName
506
+ labels(first: 10) {
507
+ nodes {
508
+ name
511
509
  }
512
- body
513
- mergeCommit {
514
- oid
510
+ }
511
+ body
512
+ mergeCommit {
513
+ oid
514
+ }
515
+ files(first: $maxFilesChanged) {
516
+ nodes {
517
+ path
515
518
  }
516
- files(first: $maxFilesChanged) {
517
- nodes {
518
- path
519
- }
520
- pageInfo {
521
- endCursor
522
- hasNextPage
523
- }
519
+ pageInfo {
520
+ endCursor
521
+ hasNextPage
524
522
  }
525
523
  }
526
524
  }
527
- sha: oid
528
- message
529
- }
530
- pageInfo {
531
- hasNextPage
532
- endCursor
533
525
  }
526
+ sha: oid
527
+ message
528
+ }
529
+ pageInfo {
530
+ hasNextPage
531
+ endCursor
534
532
  }
535
533
  }
536
534
  }
537
535
  }
538
536
  }
539
- }`,
537
+ }
538
+ }`;
539
+ const params = {
540
540
  cursor,
541
541
  owner: this.repository.owner,
542
542
  repo: this.repository.repo,
543
543
  num: 25,
544
544
  targetBranch,
545
545
  maxFilesChanged: 100, // max is 100
546
+ };
547
+ const response = await this.graphqlRequest({
548
+ query,
549
+ ...params,
546
550
  });
551
+ if (!response) {
552
+ logger_1.logger.warn(`Did not receive a response for query: ${query}`, params);
553
+ return null;
554
+ }
547
555
  // if the branch does exist, return null
548
- if (!response.repository.ref) {
556
+ if (!((_a = response.repository) === null || _a === void 0 ? void 0 : _a.ref)) {
549
557
  logger_1.logger.warn(`Could not find commits for branch ${targetBranch} - it likely does not exist.`);
550
558
  return null;
551
559
  }
@@ -572,7 +580,7 @@ class GitHub {
572
580
  labels: pullRequest.labels.nodes.map(node => node.name),
573
581
  files,
574
582
  };
575
- if (((_a = pullRequest.files.pageInfo) === null || _a === void 0 ? void 0 : _a.hasNextPage) && options.backfillFiles) {
583
+ if (((_b = pullRequest.files.pageInfo) === null || _b === void 0 ? void 0 : _b.hasNextPage) && options.backfillFiles) {
576
584
  logger_1.logger.info(`PR #${pullRequest.number} has many files, backfilling`);
577
585
  commit.files = await this.getCommitFiles(graphCommit.sha);
578
586
  }
@@ -14,7 +14,6 @@
14
14
  // limitations under the License.
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.manifestSchema = exports.configSchema = exports.GitHub = exports.setLogger = exports.registerVersioningStrategy = exports.getVersioningStrategyTypes = exports.registerPlugin = exports.getPluginTypes = exports.registerChangelogNotes = exports.getChangelogTypes = exports.registerReleaseType = exports.getReleaserTypes = exports.Manifest = exports.Errors = void 0;
17
- const path_1 = require("path");
18
17
  exports.Errors = require("./errors");
19
18
  var manifest_1 = require("./manifest");
20
19
  Object.defineProperty(exports, "Manifest", { enumerable: true, get: function () { return manifest_1.Manifest; } });
@@ -34,6 +33,6 @@ var logger_1 = require("./util/logger");
34
33
  Object.defineProperty(exports, "setLogger", { enumerable: true, get: function () { return logger_1.setLogger; } });
35
34
  var github_1 = require("./github");
36
35
  Object.defineProperty(exports, "GitHub", { enumerable: true, get: function () { return github_1.GitHub; } });
37
- exports.configSchema = require((0, path_1.resolve)('./src/schemas/config'));
38
- exports.manifestSchema = require((0, path_1.resolve)('./src/schemas/manifest'));
36
+ exports.configSchema = require('../../schemas/config.json');
37
+ exports.manifestSchema = require('../../schemas/manifest.json');
39
38
  //# sourceMappingURL=index.js.map
@@ -90,20 +90,16 @@ class Python extends base_1.BaseStrategy {
90
90
  logger_1.logger.warn('No project/component found.');
91
91
  }
92
92
  else {
93
- updates.push({
94
- path: this.addPath(`${projectName}/__init__.py`),
93
+ [projectName, projectName.replace(/-/g, '_')]
94
+ .flatMap(packageName => [
95
+ `${packageName}/__init__.py`,
96
+ `src/${packageName}/__init__.py`,
97
+ ])
98
+ .forEach(packagePath => updates.push({
99
+ path: this.addPath(packagePath),
95
100
  createIfMissing: false,
96
- updater: new python_file_with_version_1.PythonFileWithVersion({
97
- version,
98
- }),
99
- });
100
- updates.push({
101
- path: this.addPath(`src/${projectName}/__init__.py`),
102
- createIfMissing: false,
103
- updater: new python_file_with_version_1.PythonFileWithVersion({
104
- version,
105
- }),
106
- });
101
+ updater: new python_file_with_version_1.PythonFileWithVersion({ version }),
102
+ }));
107
103
  }
108
104
  // There should be only one version.py, but foreach in case that is incorrect
109
105
  const versionPyFilesSearch = this.github.findFilesByFilenameAndRef('version.py', this.targetBranch, this.path);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-please",
3
- "version": "13.19.1",
3
+ "version": "13.19.4",
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",
@@ -18,7 +18,8 @@
18
18
  "files": [
19
19
  "build/src",
20
20
  "templates",
21
- "!build/src/**/*.map"
21
+ "!build/src/**/*.map",
22
+ "schemas"
22
23
  ],
23
24
  "repository": "googleapis/release-please",
24
25
  "keywords": [
@@ -0,0 +1,300 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "release-please manifest config schema",
4
+ "description": "Schema for defining manifest config file",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "definitions": {
8
+ "ReleaserConfigOptions": {
9
+ "type": "object",
10
+ "properties": {
11
+ "release-type": {
12
+ "description": "The strategy to use for this component.",
13
+ "type": "string"
14
+ },
15
+ "bump-minor-pre-major": {
16
+ "description": "Breaking changes only bump semver minor if version < 1.0.0",
17
+ "type": "boolean"
18
+ },
19
+ "bump-patch-for-minor-pre-major": {
20
+ "description": "Feature changes only bump semver patch if version < 1.0.0",
21
+ "type": "boolean"
22
+ },
23
+ "changelog-sections": {
24
+ "description": "Override the Changelog configuration sections",
25
+ "type": "array",
26
+ "items": {
27
+ "type": "object",
28
+ "properties": {
29
+ "type": {
30
+ "description": "Semantic commit type (e.g. `feat`, `chore`)",
31
+ "type": "string"
32
+ },
33
+ "section": {
34
+ "description": "Changelog section title",
35
+ "type": "string"
36
+ },
37
+ "hidden": {
38
+ "description": "Skip displaying this type of commit. Defaults to `false`.",
39
+ "type": "boolean"
40
+ }
41
+ },
42
+ "required": ["type", "section"]
43
+ }
44
+ },
45
+ "release-as": {
46
+ "description": "[DEPRECATED] Override the next version of this package. Consider using a `Release-As` commit instead.",
47
+ "type": "string"
48
+ },
49
+ "skip-github-release": {
50
+ "description": "Skip tagging GitHub releases for this package. Defaults to `false`.",
51
+ "type": "boolean"
52
+ },
53
+ "draft": {
54
+ "description": "Create the GitHub release in draft mode. Defaults to `false`.",
55
+ "type": "boolean"
56
+ },
57
+ "prerelease": {
58
+ "description": "Create the GitHub release as prerelease. Defaults to `false`.",
59
+ "type": "boolean"
60
+ },
61
+ "draft-pull-request": {
62
+ "description": "Open the release pull request in draft mode. Defaults to `false`.",
63
+ "type": "boolean"
64
+ },
65
+ "label": {
66
+ "description": "Comma-separated list of labels to add to newly opened pull request",
67
+ "type": "string"
68
+ },
69
+ "release-label": {
70
+ "description": "Comma-separated list of labels to add to a pull request that has been released/tagged",
71
+ "type": "string"
72
+ },
73
+ "include-component-in-tag": {
74
+ "description": "When tagging a release, include the component name as part of the tag. Defaults to `true`.",
75
+ "type": "boolean"
76
+ },
77
+ "include-v-in-tag": {
78
+ "description": "When tagging a release, include `v` in the tag. Defaults to `false`.",
79
+ "type": "boolean"
80
+ },
81
+ "changelog-type": {
82
+ "description": "The type of changelog to use. Defaults to `default`.",
83
+ "type": "string",
84
+ "enum": ["default", "github"]
85
+ },
86
+ "changelog-host": {
87
+ "description": "Generate changelog links to this GitHub host. Useful for running against GitHub Enterprise.",
88
+ "type": "string"
89
+ },
90
+ "pull-request-title-pattern": {
91
+ "description": "Customize the release pull request title.",
92
+ "type": "string"
93
+ },
94
+ "separate-pull-requests": {
95
+ "description": "Open a separate release pull request for each component. Defaults to `false`.",
96
+ "type": "boolean"
97
+ },
98
+ "tag-separator": {
99
+ "description": "Customize the separator between the component and version in the GitHub tag.",
100
+ "type": "string"
101
+ },
102
+ "extra-files": {
103
+ "description": "Specify extra generic files to replace versions.",
104
+ "type": "array",
105
+ "items": {
106
+ "anyOf": [
107
+ {
108
+ "description": "The path to the file. The `Generic` updater uses annotations to replace versions.",
109
+ "type": "string"
110
+ },
111
+ {
112
+ "description": "An extra JSON on YAML file with a targeted update via jsonpath.",
113
+ "type": "object",
114
+ "properties": {
115
+ "type": {
116
+ "description": "The file format type.",
117
+ "enum": ["json", "yaml"]
118
+ },
119
+ "path": {
120
+ "description": "The path to the file.",
121
+ "type": "string"
122
+ },
123
+ "jsonpath": {
124
+ "description": "The jsonpath to the version entry in the file.",
125
+ "type": "string"
126
+ }
127
+ },
128
+ "required": ["type", "path", "jsonpath"]
129
+ },
130
+ {
131
+ "description": "An extra XML file with a targeted update via xpath.",
132
+ "type": "object",
133
+ "properties": {
134
+ "type": {
135
+ "description": "The file format type.",
136
+ "enum": ["xml"]
137
+ },
138
+ "path": {
139
+ "description": "The path to the file.",
140
+ "type": "string"
141
+ },
142
+ "xpath": {
143
+ "description": "The xpath to the version entry in the file.",
144
+ "type": "string"
145
+ }
146
+ },
147
+ "required": ["type", "path", "xpath"]
148
+ },
149
+ {
150
+ "description": "An extra pom.xml file.",
151
+ "type": "object",
152
+ "properties": {
153
+ "type": {
154
+ "description": "The file format type.",
155
+ "enum": ["pom"]
156
+ },
157
+ "path": {
158
+ "description": "The path to the file.",
159
+ "type": "string"
160
+ }
161
+ },
162
+ "required": ["type", "path"]
163
+ }
164
+ ]
165
+ }
166
+ },
167
+ "version-file": {
168
+ "description": "Path to the specialize version file. Used by `ruby` and `simple` strategies.",
169
+ "type": "string"
170
+ },
171
+ "snapshot-label": {
172
+ "description": "Label to add to snapshot pull request. Used by `java` strategies.",
173
+ "type": "string"
174
+ }
175
+ }
176
+ }
177
+ },
178
+ "allOf": [
179
+ {
180
+ "$ref": "#/definitions/ReleaserConfigOptions"
181
+ },
182
+ {
183
+ "properties": {
184
+ "packages": {
185
+ "description": "Per-path component configuration.",
186
+ "type": "object",
187
+ "additionalProperties": {
188
+ "$ref": "#/definitions/ReleaserConfigOptions"
189
+ }
190
+ },
191
+ "bootstrap-sha": {
192
+ "description": "For the initial release of a library, only consider as far back as this commit SHA. This is an uncommon use case and should generally be avoided.",
193
+ "type": "string"
194
+ },
195
+ "last-release-sha": {
196
+ "description": "For any release, only consider as far back as this commit SHA. This is an uncommon use case and should generally be avoided.",
197
+ "type": "string"
198
+ },
199
+ "always-link-local": {
200
+ "description": "When using the `node-workspace` plugin, force all local dependencies to be linked.",
201
+ "type": "boolean"
202
+ },
203
+ "plugins": {
204
+ "description": "Plugins to apply to pull requests. Plugins can be added to perform extra release processing that cannot be achieved by an individual release strategy.",
205
+ "type": "array",
206
+ "items": {
207
+ "anyOf": [
208
+ {
209
+ "description": "The plugin name for plugins that do not require other options.",
210
+ "type": "string"
211
+ },
212
+ {
213
+ "description": "Configuration for the `linked-versions` plugin.",
214
+ "type": "object",
215
+ "properties": {
216
+ "type": {
217
+ "description": "The name of the plugin.",
218
+ "type": "string",
219
+ "enum": ["linked-versions"]
220
+ },
221
+ "groupName": {
222
+ "description": "The name of the group of components.",
223
+ "type": "string"
224
+ },
225
+ "components": {
226
+ "description": "List of component names that are part of this group.",
227
+ "type": "array",
228
+ "items": {
229
+ "type": "string"
230
+ }
231
+ }
232
+ },
233
+ "required": ["type", "groupName", "components"]
234
+ },
235
+ {
236
+ "description": "Other plugins",
237
+ "type": "object",
238
+ "properties": {
239
+ "type": {
240
+ "description": "The name of the plugin.",
241
+ "type": "string"
242
+ }
243
+ }
244
+ }
245
+ ]
246
+ }
247
+ },
248
+ "group-pull-request-title-pattern": {
249
+ "description": "When grouping multiple release pull requests use this pattern for the title.",
250
+ "type": "string"
251
+ },
252
+ "release-search-depth": {
253
+ "description": "When considering previously releases, only look this deep.",
254
+ "type": "number"
255
+ },
256
+ "commit-search-depth": {
257
+ "description": "When considering commit history, only look this many commits deep.",
258
+ "type": "number"
259
+ },
260
+ "sequential-calls": {
261
+ "description": "Whether to open pull requests/releases sequentially rather than concurrently. If you have many components, you may want to set this to avoid secondary rate limits.",
262
+ "type": "boolean"
263
+ }
264
+ },
265
+ "required": ["packages"]
266
+ }
267
+ ],
268
+ "properties": {
269
+ "packages": true,
270
+ "bootstrap-sha": true,
271
+ "last-release-sha": true,
272
+ "always-link-local": true,
273
+ "plugins": true,
274
+ "group-pull-request-title-pattern": true,
275
+ "release-search-depth": true,
276
+ "commit-search-depth": true,
277
+ "sequential-calls": true,
278
+ "release-type": true,
279
+ "bump-minor-pre-major": true,
280
+ "bump-patch-for-minor-pre-major": true,
281
+ "changelog-sections": true,
282
+ "release-as": true,
283
+ "skip-github-release": true,
284
+ "draft": true,
285
+ "prerelease": true,
286
+ "draft-pull-request": true,
287
+ "label": true,
288
+ "release-label": true,
289
+ "include-component-in-tag": true,
290
+ "include-v-in-tag": true,
291
+ "changelog-type": true,
292
+ "changelog-host": true,
293
+ "pull-request-title-pattern": true,
294
+ "separate-pull-requests": true,
295
+ "tag-separator": true,
296
+ "extra-files": true,
297
+ "version-file": true,
298
+ "snapshot-label": true
299
+ }
300
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "release-please manifest config versions",
4
+ "description": "Schema for defining manifest versions file",
5
+ "type": "object",
6
+ "additionalProperties": {
7
+ "type": "string"
8
+ }
9
+ }