release-please 12.5.0 → 13.0.0-candidate.2

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.
Files changed (253) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +4 -0
  3. package/build/src/bin/release-please.d.ts +55 -11
  4. package/build/src/bin/release-please.js +419 -152
  5. package/build/src/bootstrapper.d.ts +12 -0
  6. package/build/src/bootstrapper.js +60 -0
  7. package/build/src/changelog-notes/default.d.ts +17 -0
  8. package/build/src/changelog-notes/default.js +72 -0
  9. package/build/src/changelog-notes.d.ts +17 -0
  10. package/build/src/{updaters/java/readme.js → changelog-notes.js} +2 -7
  11. package/build/src/commit.d.ts +26 -0
  12. package/build/src/{util/to-conventional-changelog-format.js → commit.js} +97 -2
  13. package/build/src/errors/index.d.ts +0 -5
  14. package/build/src/errors/index.js +1 -10
  15. package/build/src/factory.d.ts +25 -37
  16. package/build/src/factory.js +160 -150
  17. package/build/src/github.d.ts +154 -884
  18. package/build/src/github.js +608 -1036
  19. package/build/src/manifest.d.ts +191 -47
  20. package/build/src/manifest.js +599 -487
  21. package/build/src/plugin.d.ts +20 -0
  22. package/build/src/{plugins/plugin.js → plugin.js} +10 -9
  23. package/build/src/plugins/cargo-workspace.d.ts +48 -18
  24. package/build/src/plugins/cargo-workspace.js +247 -328
  25. package/build/src/plugins/merge.d.ts +11 -0
  26. package/build/src/plugins/merge.js +83 -0
  27. package/build/src/plugins/node-workspace.d.ts +35 -17
  28. package/build/src/plugins/node-workspace.js +234 -271
  29. package/build/src/plugins/workspace.d.ts +102 -0
  30. package/build/src/plugins/workspace.js +170 -0
  31. package/build/src/pull-request.d.ts +10 -0
  32. package/build/src/{updaters/java/pom-xml.js → pull-request.js} +2 -7
  33. package/build/src/release-notes.d.ts +29 -0
  34. package/build/src/release-notes.js +71 -0
  35. package/build/src/release-pull-request.d.ts +13 -0
  36. package/build/src/release-pull-request.js +16 -0
  37. package/build/src/release.d.ts +6 -0
  38. package/build/src/release.js +16 -0
  39. package/build/src/repository.d.ts +5 -0
  40. package/build/src/repository.js +16 -0
  41. package/build/src/strategies/dart.d.ts +8 -0
  42. package/build/src/strategies/dart.js +63 -0
  43. package/build/src/strategies/elixir.d.ts +5 -0
  44. package/build/src/{releasers → strategies}/elixir.js +18 -14
  45. package/build/src/strategies/go-yoshi.d.ts +13 -0
  46. package/build/src/strategies/go-yoshi.js +106 -0
  47. package/build/src/strategies/go.d.ts +5 -0
  48. package/build/src/{releasers → strategies}/go.js +11 -12
  49. package/build/src/strategies/helm.d.ts +8 -0
  50. package/build/src/strategies/helm.js +63 -0
  51. package/build/src/strategies/java-yoshi.d.ts +24 -0
  52. package/build/src/strategies/java-yoshi.js +203 -0
  53. package/build/src/strategies/krm-blueprint.d.ts +7 -0
  54. package/build/src/{releasers → strategies}/krm-blueprint.js +26 -22
  55. package/build/src/strategies/node.d.ts +9 -0
  56. package/build/src/strategies/node.js +82 -0
  57. package/build/src/strategies/ocaml.d.ts +5 -0
  58. package/build/src/{releasers → strategies}/ocaml.js +34 -28
  59. package/build/src/strategies/php-yoshi.d.ts +10 -0
  60. package/build/src/strategies/php-yoshi.js +213 -0
  61. package/build/src/strategies/php.d.ts +6 -0
  62. package/build/src/{releasers → strategies}/php.js +24 -23
  63. package/build/src/strategies/python.d.ts +8 -0
  64. package/build/src/strategies/python.js +117 -0
  65. package/build/src/strategies/ruby-yoshi.d.ts +17 -0
  66. package/build/src/strategies/ruby-yoshi.js +116 -0
  67. package/build/src/strategies/ruby.d.ts +13 -0
  68. package/build/src/{releasers → strategies}/ruby.js +26 -27
  69. package/build/src/strategies/rust.d.ts +20 -0
  70. package/build/src/strategies/rust.js +120 -0
  71. package/build/src/strategies/simple.d.ts +5 -0
  72. package/build/src/{releasers → strategies}/simple.js +18 -14
  73. package/build/src/strategies/terraform-module.d.ts +7 -0
  74. package/build/src/{releasers → strategies}/terraform-module.js +29 -23
  75. package/build/src/strategy.d.ts +100 -0
  76. package/build/src/strategy.js +233 -0
  77. package/build/src/update.d.ts +23 -0
  78. package/build/src/{updaters/update.js → update.js} +1 -1
  79. package/build/src/updaters/changelog.d.ts +7 -10
  80. package/build/src/updaters/changelog.js +3 -9
  81. package/build/src/updaters/changelog.js.map +1 -1
  82. package/build/src/updaters/composite.d.ts +19 -0
  83. package/build/src/updaters/composite.js +42 -0
  84. package/build/src/updaters/dart/pubspec-yaml.d.ts +12 -0
  85. package/build/src/updaters/{pubspec-yaml.js → dart/pubspec-yaml.js} +13 -12
  86. package/build/src/updaters/default.d.ts +21 -0
  87. package/build/src/updaters/{version-txt.js → default.js} +16 -10
  88. package/build/src/updaters/dotnet/csproj.d.ts +12 -0
  89. package/build/src/updaters/{java/google-utils.js → dotnet/csproj.js} +16 -13
  90. package/build/src/updaters/elixir/elixir-mix-exs.d.ts +12 -0
  91. package/build/src/updaters/{elixir-mix-exs.js → elixir/elixir-mix-exs.js} +12 -10
  92. package/build/src/updaters/helm/chart-yaml.d.ts +10 -11
  93. package/build/src/updaters/helm/chart-yaml.js +12 -10
  94. package/build/src/updaters/java/java-update.d.ts +14 -0
  95. package/build/src/updaters/java/{java_update.js → java-update.js} +22 -22
  96. package/build/src/updaters/java/versions-manifest.d.ts +12 -2
  97. package/build/src/updaters/java/versions-manifest.js +20 -4
  98. package/build/src/updaters/krm/krm-blueprint-version.d.ts +10 -11
  99. package/build/src/updaters/krm/krm-blueprint-version.js +13 -12
  100. package/build/src/updaters/node/package-json.d.ts +12 -0
  101. package/build/src/updaters/{package-json.js → node/package-json.js} +14 -16
  102. package/build/src/updaters/node/package-lock-json.d.ts +8 -0
  103. package/build/src/updaters/node/package-lock-json.js +36 -0
  104. package/build/src/updaters/node/samples-package-json.d.ts +23 -0
  105. package/build/src/updaters/{samples-package-json.js → node/samples-package-json.js} +19 -8
  106. package/build/src/updaters/ocaml/dune-project.d.ts +10 -11
  107. package/build/src/updaters/ocaml/dune-project.js +11 -9
  108. package/build/src/updaters/ocaml/esy-json.d.ts +10 -11
  109. package/build/src/updaters/ocaml/esy-json.js +12 -10
  110. package/build/src/updaters/ocaml/opam.d.ts +10 -11
  111. package/build/src/updaters/ocaml/opam.js +11 -9
  112. package/build/src/updaters/php/php-client-version.d.ts +12 -0
  113. package/build/src/updaters/{php-client-version.js → php/php-client-version.js} +10 -9
  114. package/build/src/updaters/php/php-manifest.d.ts +13 -0
  115. package/build/src/updaters/{php-manifest.js → php/php-manifest.js} +17 -15
  116. package/build/src/updaters/php/root-composer-update-packages.d.ts +12 -0
  117. package/build/src/updaters/{root-composer-update-packages.js → php/root-composer-update-packages.js} +17 -16
  118. package/build/src/updaters/python/pyproject-toml.d.ts +10 -11
  119. package/build/src/updaters/python/pyproject-toml.js +13 -11
  120. package/build/src/updaters/python/python-file-with-version.d.ts +7 -11
  121. package/build/src/updaters/python/python-file-with-version.js +7 -8
  122. package/build/src/updaters/python/setup-cfg.d.ts +10 -11
  123. package/build/src/updaters/python/setup-cfg.js +10 -8
  124. package/build/src/updaters/python/setup-py.d.ts +10 -11
  125. package/build/src/updaters/python/setup-py.js +10 -8
  126. package/build/src/updaters/raw-content.d.ts +19 -0
  127. package/build/src/{plugins/index.js → updaters/raw-content.js} +23 -12
  128. package/build/src/updaters/release-please-config.d.ts +8 -0
  129. package/build/src/updaters/release-please-config.js +41 -0
  130. package/build/src/updaters/release-please-manifest.d.ts +2 -11
  131. package/build/src/updaters/release-please-manifest.js +11 -14
  132. package/build/src/updaters/ruby/version-rb.d.ts +12 -0
  133. package/build/src/updaters/{version-rb.js → ruby/version-rb.js} +10 -8
  134. package/build/src/updaters/rust/cargo-lock.d.ts +7 -11
  135. package/build/src/updaters/rust/cargo-lock.js +14 -16
  136. package/build/src/updaters/rust/cargo-toml.d.ts +7 -11
  137. package/build/src/updaters/rust/cargo-toml.js +19 -21
  138. package/build/src/updaters/terraform/module-version.d.ts +10 -11
  139. package/build/src/updaters/terraform/module-version.js +11 -9
  140. package/build/src/updaters/terraform/readme.d.ts +10 -11
  141. package/build/src/updaters/terraform/readme.js +11 -10
  142. package/build/src/updaters/terraform/readme.js.map +1 -1
  143. package/build/src/util/branch-name.d.ts +5 -4
  144. package/build/src/util/branch-name.js +13 -10
  145. package/build/src/{commit-split.d.ts → util/commit-split.d.ts} +2 -4
  146. package/build/src/{commit-split.js → util/commit-split.js} +4 -2
  147. package/build/src/util/indent-commit.d.ts +1 -1
  148. package/build/src/util/logger.d.ts +5 -2
  149. package/build/src/util/logger.js +9 -4
  150. package/build/src/util/pull-request-body.d.ts +20 -0
  151. package/build/src/util/pull-request-body.js +129 -0
  152. package/build/src/util/pull-request-title.d.ts +8 -6
  153. package/build/src/util/pull-request-title.js +20 -6
  154. package/build/src/util/tag-name.d.ts +9 -0
  155. package/build/src/util/tag-name.js +41 -0
  156. package/build/src/{updaters → util}/toml-edit.d.ts +0 -0
  157. package/build/src/{updaters → util}/toml-edit.js +0 -0
  158. package/build/src/version.d.ts +11 -0
  159. package/build/src/version.js +45 -0
  160. package/build/src/versioning-strategies/always-bump-patch.d.ts +7 -0
  161. package/build/src/{updaters/package-lock-json.js → versioning-strategies/always-bump-patch.js} +8 -11
  162. package/build/src/versioning-strategies/default.d.ts +15 -0
  163. package/build/src/versioning-strategies/default.js +67 -0
  164. package/build/src/versioning-strategies/dependency-manifest.d.ts +7 -0
  165. package/build/src/versioning-strategies/dependency-manifest.js +90 -0
  166. package/build/src/versioning-strategies/java-add-snapshot.d.ts +9 -0
  167. package/build/src/versioning-strategies/java-add-snapshot.js +53 -0
  168. package/build/src/versioning-strategies/java-snapshot.d.ts +9 -0
  169. package/build/src/versioning-strategies/java-snapshot.js +67 -0
  170. package/build/src/versioning-strategies/service-pack.d.ts +7 -0
  171. package/build/src/versioning-strategies/service-pack.js +40 -0
  172. package/build/src/versioning-strategy.d.ts +28 -0
  173. package/build/src/versioning-strategy.js +55 -0
  174. package/package.json +9 -8
  175. package/build/src/constants.d.ts +0 -6
  176. package/build/src/constants.js +0 -23
  177. package/build/src/conventional-commits.d.ts +0 -53
  178. package/build/src/conventional-commits.js +0 -167
  179. package/build/src/github-release.d.ts +0 -34
  180. package/build/src/github-release.js +0 -92
  181. package/build/src/graphql-to-commits.d.ts +0 -60
  182. package/build/src/graphql-to-commits.js +0 -112
  183. package/build/src/index.d.ts +0 -94
  184. package/build/src/index.js +0 -32
  185. package/build/src/plugins/index.d.ts +0 -5
  186. package/build/src/plugins/plugin.d.ts +0 -21
  187. package/build/src/release-pr.d.ts +0 -101
  188. package/build/src/release-pr.js +0 -461
  189. package/build/src/releasers/dart.d.ts +0 -9
  190. package/build/src/releasers/dart.js +0 -65
  191. package/build/src/releasers/elixir.d.ts +0 -5
  192. package/build/src/releasers/go-yoshi.d.ts +0 -10
  193. package/build/src/releasers/go-yoshi.js +0 -162
  194. package/build/src/releasers/go.d.ts +0 -6
  195. package/build/src/releasers/helm.d.ts +0 -9
  196. package/build/src/releasers/helm.js +0 -66
  197. package/build/src/releasers/index.d.ts +0 -7
  198. package/build/src/releasers/index.js +0 -76
  199. package/build/src/releasers/java/bump_type.d.ts +0 -4
  200. package/build/src/releasers/java/bump_type.js +0 -38
  201. package/build/src/releasers/java/stability.d.ts +0 -5
  202. package/build/src/releasers/java/stability.js +0 -37
  203. package/build/src/releasers/java/version.d.ts +0 -13
  204. package/build/src/releasers/java/version.js +0 -112
  205. package/build/src/releasers/java-backport.d.ts +0 -9
  206. package/build/src/releasers/java-backport.js +0 -43
  207. package/build/src/releasers/java-bom.d.ts +0 -16
  208. package/build/src/releasers/java-bom.js +0 -83
  209. package/build/src/releasers/java-lts.d.ts +0 -9
  210. package/build/src/releasers/java-lts.js +0 -47
  211. package/build/src/releasers/java-yoshi.d.ts +0 -28
  212. package/build/src/releasers/java-yoshi.js +0 -304
  213. package/build/src/releasers/krm-blueprint.d.ts +0 -6
  214. package/build/src/releasers/node.d.ts +0 -10
  215. package/build/src/releasers/node.js +0 -84
  216. package/build/src/releasers/ocaml.d.ts +0 -5
  217. package/build/src/releasers/php-yoshi.d.ts +0 -5
  218. package/build/src/releasers/php-yoshi.js +0 -191
  219. package/build/src/releasers/php.d.ts +0 -7
  220. package/build/src/releasers/python.d.ts +0 -11
  221. package/build/src/releasers/python.js +0 -127
  222. package/build/src/releasers/ruby-yoshi.d.ts +0 -5
  223. package/build/src/releasers/ruby-yoshi.js +0 -142
  224. package/build/src/releasers/ruby.d.ts +0 -11
  225. package/build/src/releasers/rust.d.ts +0 -30
  226. package/build/src/releasers/rust.js +0 -163
  227. package/build/src/releasers/simple.d.ts +0 -5
  228. package/build/src/releasers/terraform-module.d.ts +0 -6
  229. package/build/src/updaters/elixir-mix-exs.d.ts +0 -13
  230. package/build/src/updaters/java/google-utils.d.ts +0 -13
  231. package/build/src/updaters/java/java_update.d.ts +0 -13
  232. package/build/src/updaters/java/pom-xml.d.ts +0 -3
  233. package/build/src/updaters/java/readme.d.ts +0 -3
  234. package/build/src/updaters/java/readme.js.map +0 -1
  235. package/build/src/updaters/package-json.d.ts +0 -16
  236. package/build/src/updaters/package-lock-json.d.ts +0 -7
  237. package/build/src/updaters/php-client-version.d.ts +0 -13
  238. package/build/src/updaters/php-manifest.d.ts +0 -13
  239. package/build/src/updaters/pubspec-yaml.d.ts +0 -13
  240. package/build/src/updaters/root-composer-update-package.d.ts +0 -13
  241. package/build/src/updaters/root-composer-update-package.js +0 -45
  242. package/build/src/updaters/root-composer-update-packages.d.ts +0 -13
  243. package/build/src/updaters/samples-package-json.d.ts +0 -13
  244. package/build/src/updaters/update.d.ts +0 -20
  245. package/build/src/updaters/version-rb.d.ts +0 -13
  246. package/build/src/updaters/version-txt.d.ts +0 -12
  247. package/build/src/updaters/version.d.ts +0 -13
  248. package/build/src/updaters/version.js +0 -31
  249. package/build/src/util/checkpoint.d.ts +0 -6
  250. package/build/src/util/checkpoint.js +0 -33
  251. package/build/src/util/release-notes.d.ts +0 -7
  252. package/build/src/util/release-notes.js +0 -34
  253. package/build/src/util/to-conventional-changelog-format.d.ts +0 -2
@@ -1,83 +0,0 @@
1
- "use strict";
2
- // Copyright 2020 Google LLC
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.JavaBom = void 0;
17
- // Java
18
- const bump_type_1 = require("./java/bump_type");
19
- const version_1 = require("./java/version");
20
- const java_yoshi_1 = require("./java-yoshi");
21
- const DEPENDENCY_UPDATE_REGEX = /^deps: update dependency (.*) to (v.*)(\s\(#\d+\))?$/m;
22
- const DEPENDENCY_PATCH_VERSION_REGEX = /^v\d+\.\d+\.[1-9]\d*(-.*)?/;
23
- class JavaBom extends java_yoshi_1.JavaYoshi {
24
- async coerceVersions(cc, _candidate, latestTag, currentVersions) {
25
- const bumpType = await this.getBumpType(cc, latestTag);
26
- const newVersions = new Map();
27
- for (const [k, version] of currentVersions) {
28
- newVersions.set(k, version_1.Version.parse(version).bump(bumpType).toString());
29
- }
30
- return newVersions;
31
- }
32
- async getBumpType(cc, latestTag) {
33
- if (!this.bumpType) {
34
- this.bumpType = this.snapshot
35
- ? 'snapshot'
36
- : bump_type_1.maxBumpType([
37
- JavaBom.determineBumpType(cc.commits),
38
- bump_type_1.fromSemverReleaseType((await cc.suggestBump((latestTag === null || latestTag === void 0 ? void 0 : latestTag.version) || this.defaultInitialVersion())).releaseType),
39
- ]);
40
- }
41
- return this.bumpType;
42
- }
43
- async coerceReleaseCandidate(cc, latestTag, _preRelease = false) {
44
- const bumpType = await this.getBumpType(cc, latestTag);
45
- return {
46
- version: latestTag
47
- ? version_1.Version.parse(latestTag.version).bump(bumpType).toString()
48
- : this.defaultInitialVersion(),
49
- previousTag: latestTag === null || latestTag === void 0 ? void 0 : latestTag.version,
50
- };
51
- }
52
- static dependencyUpdates(commits) {
53
- const versionsMap = new Map();
54
- commits.forEach(commit => {
55
- const match = commit.message.match(DEPENDENCY_UPDATE_REGEX);
56
- if (!match)
57
- return;
58
- // commits are sorted by latest first, so if there is a collision,
59
- // then we've already recorded the latest version
60
- if (versionsMap.has(match[1]))
61
- return;
62
- versionsMap.set(match[1], match[2]);
63
- });
64
- return versionsMap;
65
- }
66
- static isNonPatchVersion(commit) {
67
- let match = commit.message.match(DEPENDENCY_UPDATE_REGEX);
68
- if (!match)
69
- return false;
70
- match = match[2].match(DEPENDENCY_PATCH_VERSION_REGEX);
71
- if (!match)
72
- return true;
73
- return false;
74
- }
75
- static determineBumpType(commits) {
76
- if (commits.some(this.isNonPatchVersion)) {
77
- return 'minor';
78
- }
79
- return 'patch';
80
- }
81
- }
82
- exports.JavaBom = JavaBom;
83
- //# sourceMappingURL=java-bom.js.map
@@ -1,9 +0,0 @@
1
- import { ReleaseCandidate } from '../release-pr';
2
- import { ConventionalCommits } from '../conventional-commits';
3
- import { GitHubTag } from '../github';
4
- import { VersionsMap } from '../updaters/update';
5
- import { JavaYoshi } from './java-yoshi';
6
- export declare class JavaLTS extends JavaYoshi {
7
- protected coerceVersions(_cc: ConventionalCommits, _candidate: ReleaseCandidate, _latestTag: GitHubTag | undefined, currentVersions: VersionsMap): Promise<VersionsMap>;
8
- protected coerceReleaseCandidate(cc: ConventionalCommits, latestTag: GitHubTag | undefined, _preRelease?: boolean): Promise<ReleaseCandidate>;
9
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- // Copyright 2021 Google LLC
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.JavaLTS = void 0;
17
- // Java
18
- const version_1 = require("./java/version");
19
- const java_yoshi_1 = require("./java-yoshi");
20
- class JavaLTS extends java_yoshi_1.JavaYoshi {
21
- async coerceVersions(_cc, _candidate, _latestTag, currentVersions) {
22
- // Example versioning:
23
- // 1.2.3
24
- // 1.2.3-sp.1-SNAPSHOT
25
- // 1.2.3-sp.1
26
- // 1.2.3-sp.2-SNAPSHOT
27
- const bumpType = this.snapshot ? 'lts-snapshot' : 'lts';
28
- const newVersions = new Map();
29
- for (const [k, version] of currentVersions) {
30
- newVersions.set(k, version_1.Version.parse(version).bump(bumpType).toString());
31
- }
32
- return newVersions;
33
- }
34
- async coerceReleaseCandidate(cc, latestTag, _preRelease = false) {
35
- var _a;
36
- const bumpType = this.snapshot ? 'lts-snapshot' : 'lts';
37
- const version = version_1.Version.parse((_a = latestTag === null || latestTag === void 0 ? void 0 : latestTag.version) !== null && _a !== void 0 ? _a : this.defaultInitialVersion())
38
- .bump(bumpType)
39
- .toString();
40
- return {
41
- previousTag: latestTag === null || latestTag === void 0 ? void 0 : latestTag.version,
42
- version,
43
- };
44
- }
45
- }
46
- exports.JavaLTS = JavaLTS;
47
- //# sourceMappingURL=java-lts.js.map
@@ -1,28 +0,0 @@
1
- import { BranchName } from '../util/branch-name';
2
- import { GitHubFileContents, GitHubTag } from '../github';
3
- import { ConventionalCommits } from '../conventional-commits';
4
- import { ReleaseCandidate } from '..';
5
- import { VersionsMap, Update } from '../updaters/update';
6
- import { PackageName, ReleasePR } from '../release-pr';
7
- export declare class JavaYoshi extends ReleasePR {
8
- private versionsManifestContent?;
9
- protected getVersionManifestContent(): Promise<GitHubFileContents>;
10
- protected _run(): Promise<number | undefined>;
11
- protected generateChangelog(cc: ConventionalCommits, candidate: ReleaseCandidate): Promise<string>;
12
- protected coerceReleaseCandidate(cc: ConventionalCommits, latestTag: GitHubTag | undefined, preRelease?: boolean): Promise<ReleaseCandidate>;
13
- protected buildJavaUpdates(changelogEntry: string, candidateVersions: VersionsMap, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
14
- protected supportsSnapshots(): boolean;
15
- defaultInitialVersion(): string;
16
- protected coerceVersions(cc: ConventionalCommits, candidate: ReleaseCandidate, _latestTag: GitHubTag | undefined, currentVersions: VersionsMap): Promise<VersionsMap>;
17
- protected buildBranchName(_version: string, includePackageName: boolean): Promise<BranchName>;
18
- protected buildPullRequestTitle(version: string, includePackageName: boolean): Promise<string>;
19
- /**
20
- * Normalize version parsing when searching for a latest release.
21
- *
22
- * @param version The raw version string
23
- * @param preRelease Whether to allow pre-release versions or not
24
- * @returns {string|null} The normalized version string or null if
25
- * we want to disallow this version.
26
- */
27
- protected normalizeVersion(version: string, preRelease?: boolean): string | null;
28
- }
@@ -1,304 +0,0 @@
1
- "use strict";
2
- // Copyright 2019 Google LLC
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.JavaYoshi = void 0;
17
- const branch_name_1 = require("../util/branch-name");
18
- const pull_request_title_1 = require("../util/pull-request-title");
19
- const versions_manifest_1 = require("../updaters/java/versions-manifest");
20
- const conventional_commits_1 = require("../conventional-commits");
21
- const version_1 = require("./java/version");
22
- const release_pr_1 = require("../release-pr");
23
- const changelog_1 = require("../updaters/changelog");
24
- const readme_1 = require("../updaters/java/readme");
25
- const google_utils_1 = require("../updaters/java/google-utils");
26
- const pom_xml_1 = require("../updaters/java/pom-xml");
27
- const java_update_1 = require("../updaters/java/java_update");
28
- const stability_1 = require("./java/stability");
29
- const bump_type_1 = require("./java/bump_type");
30
- const logger_1 = require("../util/logger");
31
- const errors_1 = require("../errors");
32
- const CHANGELOG_SECTIONS = [
33
- { type: 'feat', section: 'Features' },
34
- { type: 'fix', section: 'Bug Fixes' },
35
- { type: 'perf', section: 'Performance Improvements' },
36
- { type: 'deps', section: 'Dependencies' },
37
- { type: 'revert', section: 'Reverts' },
38
- { type: 'docs', section: 'Documentation' },
39
- { type: 'style', section: 'Styles', hidden: true },
40
- { type: 'chore', section: 'Miscellaneous Chores', hidden: true },
41
- { type: 'refactor', section: 'Code Refactoring', hidden: true },
42
- { type: 'test', section: 'Tests', hidden: true },
43
- { type: 'build', section: 'Build System', hidden: true },
44
- { type: 'ci', section: 'Continuous Integration', hidden: true },
45
- ];
46
- class JavaYoshi extends release_pr_1.ReleasePR {
47
- async getVersionManifestContent() {
48
- if (!this.versionsManifestContent) {
49
- try {
50
- this.versionsManifestContent = await this.gh.getFileContents('versions.txt');
51
- }
52
- catch (e) {
53
- if (e instanceof errors_1.GitHubAPIError) {
54
- if (e.status === 404) {
55
- // on missing file, throw a configuration error
56
- throw new errors_1.MissingRequiredFileError('versions.txt', JavaYoshi.name, this.gh.repo);
57
- }
58
- }
59
- throw e;
60
- }
61
- }
62
- return this.versionsManifestContent;
63
- }
64
- async _run() {
65
- const versionsManifestContent = await this.getVersionManifestContent();
66
- const currentVersions = versions_manifest_1.VersionsManifest.parseVersions(versionsManifestContent.parsedContent);
67
- const snapshotNeeded = versions_manifest_1.VersionsManifest.needsSnapshot(versionsManifestContent.parsedContent);
68
- if (!this.snapshot) {
69
- // if a snapshot is not explicitly requested, decided what type
70
- // of release based on whether a snapshot is needed or not
71
- this.snapshot = snapshotNeeded;
72
- }
73
- else if (!snapshotNeeded) {
74
- logger_1.logger.warn('release asked for a snapshot, but no snapshot is needed');
75
- return undefined;
76
- }
77
- if (this.snapshot) {
78
- this.labels = ['type: process'];
79
- }
80
- const latestTag = await this.latestTag();
81
- const commits = this.snapshot
82
- ? [
83
- {
84
- sha: 'abc123',
85
- message: 'fix: ',
86
- files: [],
87
- },
88
- ]
89
- : await this.commits({
90
- sha: latestTag ? latestTag.sha : undefined,
91
- labels: true,
92
- });
93
- if (commits.length === 0) {
94
- logger_1.logger.warn(`no commits found since ${latestTag ? latestTag.sha : 'beginning of time'}`);
95
- return undefined;
96
- }
97
- let prSHA = commits[0].sha;
98
- // Snapshots populate a fake "fix:"" commit, so that they will always
99
- // result in a patch update. We still need to know the HEAD sba, so that
100
- // we can use this as a starting point for the snapshot PR:
101
- if (this.snapshot && (latestTag === null || latestTag === void 0 ? void 0 : latestTag.sha)) {
102
- const latestCommit = (await this.commits({
103
- sha: latestTag.sha,
104
- perPage: 1,
105
- labels: true,
106
- }))[0];
107
- prSHA = latestCommit ? latestCommit.sha : latestTag.sha;
108
- }
109
- const cc = new conventional_commits_1.ConventionalCommits({
110
- commits,
111
- owner: this.gh.owner,
112
- repository: this.gh.repo,
113
- bumpMinorPreMajor: this.bumpMinorPreMajor,
114
- changelogSections: CHANGELOG_SECTIONS,
115
- });
116
- const candidate = await this.coerceReleaseCandidate(cc, latestTag);
117
- const candidateVersions = await this.coerceVersions(cc, candidate, latestTag, currentVersions);
118
- const changelogEntry = await this.generateChangelog(cc, candidate);
119
- // don't create a release candidate until user facing changes
120
- // (fix, feat, BREAKING CHANGE) have been made; a CHANGELOG that's
121
- // one line is a good indicator that there were no interesting commits.
122
- if (this.changelogEmpty(changelogEntry) && !this.snapshot) {
123
- logger_1.logger.warn(`no user facing commits found since ${latestTag ? latestTag.sha : 'beginning of time'}`);
124
- return undefined;
125
- }
126
- const packageName = await this.getPackageName();
127
- const updates = await this.buildJavaUpdates(changelogEntry, candidateVersions, candidate, packageName);
128
- return await this.openPR({
129
- sha: prSHA,
130
- changelogEntry: `${changelogEntry}\n---\n`,
131
- updates,
132
- version: candidate.version,
133
- includePackageName: this.monorepoTags,
134
- });
135
- }
136
- async generateChangelog(cc, candidate) {
137
- if (this.snapshot) {
138
- return '### Updating meta-information for bleeding-edge SNAPSHOT release.';
139
- }
140
- return await cc.generateChangelogEntry({
141
- version: candidate.version,
142
- currentTag: `v${candidate.version}`,
143
- previousTag: candidate.previousTag,
144
- });
145
- }
146
- async coerceReleaseCandidate(cc, latestTag, preRelease = false) {
147
- var _a;
148
- if (this.snapshot) {
149
- const version = version_1.Version.parse((_a = latestTag === null || latestTag === void 0 ? void 0 : latestTag.version) !== null && _a !== void 0 ? _a : this.defaultInitialVersion())
150
- .bump('snapshot')
151
- .toString();
152
- return {
153
- previousTag: latestTag === null || latestTag === void 0 ? void 0 : latestTag.version,
154
- version,
155
- };
156
- }
157
- return await super.coerceReleaseCandidate(cc, latestTag, preRelease);
158
- }
159
- async buildJavaUpdates(changelogEntry, candidateVersions, candidate, packageName) {
160
- const updates = [];
161
- if (!this.snapshot) {
162
- updates.push(new changelog_1.Changelog({
163
- path: this.changelogPath,
164
- changelogEntry,
165
- versions: candidateVersions,
166
- version: candidate.version,
167
- packageName: packageName.name,
168
- }));
169
- updates.push(new readme_1.Readme({
170
- path: 'README.md',
171
- changelogEntry,
172
- versions: candidateVersions,
173
- version: candidate.version,
174
- packageName: packageName.name,
175
- }));
176
- updates.push(new google_utils_1.GoogleUtils({
177
- // TODO(@chingor): should this use search like pom.xml?
178
- path: 'google-api-client/src/main/java/com/google/api/client/googleapis/GoogleUtils.java',
179
- changelogEntry,
180
- versions: candidateVersions,
181
- version: candidate.version,
182
- packageName: packageName.name,
183
- }));
184
- }
185
- updates.push(new versions_manifest_1.VersionsManifest({
186
- path: 'versions.txt',
187
- changelogEntry,
188
- versions: candidateVersions,
189
- version: candidate.version,
190
- packageName: packageName.name,
191
- contents: await this.getVersionManifestContent(),
192
- }));
193
- const pomFilesSearch = this.gh.findFilesByFilename('pom.xml');
194
- const buildFilesSearch = this.gh.findFilesByFilename('build.gradle');
195
- const dependenciesSearch = this.gh.findFilesByFilename('dependencies.properties');
196
- const pomFiles = await pomFilesSearch;
197
- pomFiles.forEach(path => {
198
- updates.push(new pom_xml_1.PomXML({
199
- path,
200
- changelogEntry,
201
- versions: candidateVersions,
202
- version: candidate.version,
203
- packageName: packageName.name,
204
- }));
205
- });
206
- const buildFiles = await buildFilesSearch;
207
- buildFiles.forEach(path => {
208
- updates.push(new java_update_1.JavaUpdate({
209
- path,
210
- changelogEntry,
211
- versions: candidateVersions,
212
- version: candidate.version,
213
- packageName: packageName.name,
214
- }));
215
- });
216
- const dependenciesFiles = await dependenciesSearch;
217
- dependenciesFiles.forEach(path => {
218
- updates.push(new java_update_1.JavaUpdate({
219
- path,
220
- changelogEntry,
221
- versions: candidateVersions,
222
- version: candidate.version,
223
- packageName: packageName.name,
224
- }));
225
- });
226
- this.extraFiles.forEach(path => {
227
- updates.push(new java_update_1.JavaUpdate({
228
- path,
229
- changelogEntry,
230
- versions: candidateVersions,
231
- version: candidate.version,
232
- packageName: packageName.name,
233
- }));
234
- });
235
- return updates;
236
- }
237
- supportsSnapshots() {
238
- return true;
239
- }
240
- defaultInitialVersion() {
241
- return '0.1.0';
242
- }
243
- async coerceVersions(cc, candidate, _latestTag, currentVersions) {
244
- const newVersions = new Map();
245
- for (const [k, version] of currentVersions) {
246
- if (candidate.version === '1.0.0' && stability_1.isStableArtifact(k)) {
247
- newVersions.set(k, '1.0.0');
248
- }
249
- else {
250
- const bump = await cc.suggestBump(version);
251
- const newVersion = version_1.Version.parse(version);
252
- newVersion.bump(this.snapshot ? 'snapshot' : bump_type_1.fromSemverReleaseType(bump.releaseType));
253
- newVersions.set(k, newVersion.toString());
254
- }
255
- }
256
- return newVersions;
257
- }
258
- // Begin release configuration
259
- // Override this method to use static branch names
260
- // If you modify this, you must ensure that the releaser can parse the tag version
261
- // from the pull request.
262
- async buildBranchName(_version, includePackageName) {
263
- const defaultBranch = await this.gh.getDefaultBranch();
264
- const packageName = await this.getPackageName();
265
- if (includePackageName && packageName.getComponent()) {
266
- return branch_name_1.BranchName.ofComponentTargetBranch(packageName.getComponent(), defaultBranch);
267
- }
268
- return branch_name_1.BranchName.ofTargetBranch(defaultBranch);
269
- }
270
- // Override this method to modify the pull request title
271
- async buildPullRequestTitle(version, includePackageName) {
272
- const defaultBranch = await this.gh.getDefaultBranch();
273
- const repoDefaultBranch = await this.gh.getRepositoryDefaultBranch();
274
- // If we are proposing a release to a non-default branch, add the target
275
- // branch in the pull request title.
276
- // TODO: consider pushing this change up to the default pull request title
277
- if (repoDefaultBranch === defaultBranch) {
278
- return super.buildPullRequestTitle(version, includePackageName);
279
- }
280
- const packageName = await this.getPackageName();
281
- const pullRequestTitle = includePackageName
282
- ? pull_request_title_1.PullRequestTitle.ofComponentTargetBranchVersion(packageName.name, defaultBranch, version)
283
- : pull_request_title_1.PullRequestTitle.ofTargetBranchVersion(defaultBranch, version);
284
- return pullRequestTitle.toString();
285
- }
286
- /**
287
- * Normalize version parsing when searching for a latest release.
288
- *
289
- * @param version The raw version string
290
- * @param preRelease Whether to allow pre-release versions or not
291
- * @returns {string|null} The normalized version string or null if
292
- * we want to disallow this version.
293
- */
294
- normalizeVersion(version, preRelease = false) {
295
- // Consider any version with a '-SNAPSHOT' as a pre-release version
296
- if (!preRelease && version.endsWith('-SNAPSHOT')) {
297
- logger_1.logger.info('preRelease not requested and found snapshot - ignoring...');
298
- return null;
299
- }
300
- return version;
301
- }
302
- }
303
- exports.JavaYoshi = JavaYoshi;
304
- //# sourceMappingURL=java-yoshi.js.map
@@ -1,6 +0,0 @@
1
- import { ReleaseCandidate, PackageName, ReleasePR } from '../release-pr';
2
- import { Update } from '../updaters/update';
3
- export declare class KRMBlueprint extends ReleasePR {
4
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
5
- defaultInitialVersion(): string;
6
- }
@@ -1,10 +0,0 @@
1
- import { ReleasePR, ReleaseCandidate, PackageName } from '../release-pr';
2
- import { Update } from '../updaters/update';
3
- export declare class Node extends ReleasePR {
4
- private pkgJsonContents?;
5
- private _packageName?;
6
- enableSimplePrereleaseParsing: boolean;
7
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
8
- getPackageName(): Promise<PackageName>;
9
- private getPkgJsonContents;
10
- }
@@ -1,84 +0,0 @@
1
- "use strict";
2
- // Copyright 2019 Google LLC
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.Node = void 0;
17
- const release_pr_1 = require("../release-pr");
18
- // Generic
19
- const changelog_1 = require("../updaters/changelog");
20
- // JavaScript
21
- const package_json_1 = require("../updaters/package-json");
22
- const package_lock_json_1 = require("../updaters/package-lock-json");
23
- const samples_package_json_1 = require("../updaters/samples-package-json");
24
- class Node extends release_pr_1.ReleasePR {
25
- constructor() {
26
- super(...arguments);
27
- this.enableSimplePrereleaseParsing = true;
28
- }
29
- async buildUpdates(changelogEntry, candidate, packageName) {
30
- const updates = [];
31
- const lockFiles = ['package-lock.json', 'npm-shrinkwrap.json'];
32
- lockFiles.forEach(lockFile => {
33
- updates.push(new package_lock_json_1.PackageLockJson({
34
- path: this.addPath(lockFile),
35
- changelogEntry,
36
- version: candidate.version,
37
- packageName: packageName.name,
38
- }));
39
- });
40
- updates.push(new samples_package_json_1.SamplesPackageJson({
41
- path: this.addPath('samples/package.json'),
42
- changelogEntry,
43
- version: candidate.version,
44
- packageName: packageName.name,
45
- }));
46
- updates.push(new changelog_1.Changelog({
47
- path: this.addPath(this.changelogPath),
48
- changelogEntry,
49
- version: candidate.version,
50
- packageName: packageName.name,
51
- }));
52
- updates.push(new package_json_1.PackageJson({
53
- path: this.addPath('package.json'),
54
- changelogEntry,
55
- version: candidate.version,
56
- packageName: packageName.name,
57
- contents: await this.getPkgJsonContents(),
58
- }));
59
- return updates;
60
- }
61
- // Always prefer the package.json name
62
- async getPackageName() {
63
- var _a;
64
- if (this._packageName === undefined) {
65
- const pkgJsonContents = await this.getPkgJsonContents();
66
- const pkg = JSON.parse(pkgJsonContents.parsedContent);
67
- this.packageName = this._packageName = (_a = pkg.name) !== null && _a !== void 0 ? _a : this.packageName;
68
- }
69
- return {
70
- name: this.packageName,
71
- getComponent: () => this.packageName.match(/^@[\w-]+\//)
72
- ? this.packageName.split('/')[1]
73
- : this.packageName,
74
- };
75
- }
76
- async getPkgJsonContents() {
77
- if (!this.pkgJsonContents) {
78
- this.pkgJsonContents = await this.gh.getFileContents(this.addPath('package.json'));
79
- }
80
- return this.pkgJsonContents;
81
- }
82
- }
83
- exports.Node = Node;
84
- //# sourceMappingURL=node.js.map
@@ -1,5 +0,0 @@
1
- import { ReleasePR, ReleaseCandidate, PackageName } from '../release-pr';
2
- import { Update } from '../updaters/update';
3
- export declare class OCaml extends ReleasePR {
4
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
5
- }
@@ -1,5 +0,0 @@
1
- import { ReleasePR } from '../release-pr';
2
- export declare class PHPYoshi extends ReleasePR {
3
- protected _run(): Promise<number | undefined>;
4
- private releaseAllPHPLibraries;
5
- }