release-please 12.3.0 → 13.0.0-candidate.0

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 (244) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +5 -0
  3. package/build/src/bin/release-please.d.ts +51 -11
  4. package/build/src/bin/release-please.js +409 -150
  5. package/build/src/bootstrapper.d.ts +12 -0
  6. package/build/src/bootstrapper.js +60 -0
  7. package/build/src/commit.d.ts +26 -0
  8. package/build/src/{util/to-conventional-changelog-format.js → commit.js} +97 -2
  9. package/build/src/errors/index.d.ts +0 -5
  10. package/build/src/errors/index.js +1 -10
  11. package/build/src/factory.d.ts +25 -37
  12. package/build/src/factory.js +159 -150
  13. package/build/src/github.d.ts +151 -883
  14. package/build/src/github.js +584 -1013
  15. package/build/src/manifest.d.ts +177 -48
  16. package/build/src/manifest.js +583 -487
  17. package/build/src/plugin.d.ts +20 -0
  18. package/build/src/{plugins/plugin.js → plugin.js} +10 -9
  19. package/build/src/plugins/cargo-workspace.d.ts +48 -18
  20. package/build/src/plugins/cargo-workspace.js +247 -328
  21. package/build/src/plugins/merge.d.ts +11 -0
  22. package/build/src/plugins/merge.js +83 -0
  23. package/build/src/plugins/node-workspace.d.ts +35 -17
  24. package/build/src/plugins/node-workspace.js +234 -271
  25. package/build/src/plugins/workspace.d.ts +102 -0
  26. package/build/src/plugins/workspace.js +170 -0
  27. package/build/src/pull-request.d.ts +10 -0
  28. package/build/src/{updaters/java/readme.js → pull-request.js} +2 -7
  29. package/build/src/release-notes.d.ts +29 -0
  30. package/build/src/release-notes.js +71 -0
  31. package/build/src/release-pull-request.d.ts +13 -0
  32. package/build/src/{updaters/java/pom-xml.js → release-pull-request.js} +2 -7
  33. package/build/src/release.d.ts +6 -0
  34. package/build/src/release.js +16 -0
  35. package/build/src/repository.d.ts +5 -0
  36. package/build/src/repository.js +16 -0
  37. package/build/src/strategies/dart.d.ts +8 -0
  38. package/build/src/strategies/dart.js +63 -0
  39. package/build/src/strategies/elixir.d.ts +5 -0
  40. package/build/src/{releasers → strategies}/elixir.js +18 -14
  41. package/build/src/strategies/go-yoshi.d.ts +13 -0
  42. package/build/src/strategies/go-yoshi.js +106 -0
  43. package/build/src/strategies/go.d.ts +5 -0
  44. package/build/src/{releasers → strategies}/go.js +11 -12
  45. package/build/src/strategies/helm.d.ts +8 -0
  46. package/build/src/strategies/helm.js +63 -0
  47. package/build/src/strategies/java-yoshi.d.ts +24 -0
  48. package/build/src/strategies/java-yoshi.js +203 -0
  49. package/build/src/strategies/krm-blueprint.d.ts +7 -0
  50. package/build/src/{releasers → strategies}/krm-blueprint.js +26 -22
  51. package/build/src/strategies/node.d.ts +9 -0
  52. package/build/src/strategies/node.js +82 -0
  53. package/build/src/strategies/ocaml.d.ts +5 -0
  54. package/build/src/{releasers → strategies}/ocaml.js +34 -28
  55. package/build/src/strategies/php-yoshi.d.ts +9 -0
  56. package/build/src/strategies/php-yoshi.js +214 -0
  57. package/build/src/strategies/php.d.ts +6 -0
  58. package/build/src/{releasers → strategies}/php.js +24 -23
  59. package/build/src/strategies/python.d.ts +8 -0
  60. package/build/src/strategies/python.js +117 -0
  61. package/build/src/strategies/ruby-yoshi.d.ts +17 -0
  62. package/build/src/strategies/ruby-yoshi.js +116 -0
  63. package/build/src/strategies/ruby.d.ts +13 -0
  64. package/build/src/{releasers → strategies}/ruby.js +26 -27
  65. package/build/src/strategies/rust.d.ts +20 -0
  66. package/build/src/strategies/rust.js +120 -0
  67. package/build/src/strategies/simple.d.ts +5 -0
  68. package/build/src/{releasers → strategies}/simple.js +18 -14
  69. package/build/src/strategies/terraform-module.d.ts +7 -0
  70. package/build/src/{releasers → strategies}/terraform-module.js +29 -23
  71. package/build/src/strategy.d.ts +99 -0
  72. package/build/src/strategy.js +237 -0
  73. package/build/src/update.d.ts +23 -0
  74. package/build/src/{updaters/update.js → update.js} +1 -1
  75. package/build/src/updaters/changelog.d.ts +7 -10
  76. package/build/src/updaters/changelog.js +3 -9
  77. package/build/src/updaters/changelog.js.map +1 -1
  78. package/build/src/updaters/composite.d.ts +19 -0
  79. package/build/src/updaters/composite.js +42 -0
  80. package/build/src/updaters/dart/pubspec-yaml.d.ts +12 -0
  81. package/build/src/updaters/dart/pubspec-yaml.js +45 -0
  82. package/build/src/updaters/default.d.ts +21 -0
  83. package/build/src/updaters/{version-txt.js → default.js} +16 -10
  84. package/build/src/updaters/dotnet/csproj.d.ts +12 -0
  85. package/build/src/updaters/{java/google-utils.js → dotnet/csproj.js} +16 -13
  86. package/build/src/updaters/elixir/elixir-mix-exs.d.ts +12 -0
  87. package/build/src/updaters/{elixir-mix-exs.js → elixir/elixir-mix-exs.js} +12 -10
  88. package/build/src/updaters/helm/chart-yaml.d.ts +10 -11
  89. package/build/src/updaters/helm/chart-yaml.js +12 -10
  90. package/build/src/updaters/java/java-update.d.ts +14 -0
  91. package/build/src/updaters/java/{java_update.js → java-update.js} +22 -22
  92. package/build/src/updaters/java/versions-manifest.d.ts +12 -2
  93. package/build/src/updaters/java/versions-manifest.js +20 -4
  94. package/build/src/updaters/krm/krm-blueprint-version.d.ts +10 -11
  95. package/build/src/updaters/krm/krm-blueprint-version.js +13 -12
  96. package/build/src/updaters/node/package-json.d.ts +12 -0
  97. package/build/src/updaters/{package-json.js → node/package-json.js} +14 -16
  98. package/build/src/updaters/node/package-lock-json.d.ts +8 -0
  99. package/build/src/updaters/node/package-lock-json.js +36 -0
  100. package/build/src/updaters/node/samples-package-json.d.ts +23 -0
  101. package/build/src/updaters/{samples-package-json.js → node/samples-package-json.js} +19 -8
  102. package/build/src/updaters/ocaml/dune-project.d.ts +10 -11
  103. package/build/src/updaters/ocaml/dune-project.js +11 -9
  104. package/build/src/updaters/ocaml/esy-json.d.ts +10 -11
  105. package/build/src/updaters/ocaml/esy-json.js +12 -10
  106. package/build/src/updaters/ocaml/opam.d.ts +10 -11
  107. package/build/src/updaters/ocaml/opam.js +11 -9
  108. package/build/src/updaters/php/php-client-version.d.ts +12 -0
  109. package/build/src/updaters/{php-client-version.js → php/php-client-version.js} +10 -9
  110. package/build/src/updaters/php/php-manifest.d.ts +13 -0
  111. package/build/src/updaters/{php-manifest.js → php/php-manifest.js} +17 -15
  112. package/build/src/updaters/php/root-composer-update-packages.d.ts +12 -0
  113. package/build/src/updaters/{root-composer-update-packages.js → php/root-composer-update-packages.js} +17 -16
  114. package/build/src/updaters/python/pyproject-toml.d.ts +10 -11
  115. package/build/src/updaters/python/pyproject-toml.js +13 -11
  116. package/build/src/updaters/python/python-file-with-version.d.ts +7 -11
  117. package/build/src/updaters/python/python-file-with-version.js +7 -8
  118. package/build/src/updaters/python/setup-cfg.d.ts +10 -11
  119. package/build/src/updaters/python/setup-cfg.js +10 -8
  120. package/build/src/updaters/python/setup-py.d.ts +10 -11
  121. package/build/src/updaters/python/setup-py.js +10 -8
  122. package/build/src/updaters/raw-content.d.ts +19 -0
  123. package/build/src/{plugins/index.js → updaters/raw-content.js} +23 -12
  124. package/build/src/updaters/release-please-config.d.ts +8 -0
  125. package/build/src/updaters/release-please-config.js +41 -0
  126. package/build/src/updaters/release-please-manifest.d.ts +2 -11
  127. package/build/src/updaters/release-please-manifest.js +11 -14
  128. package/build/src/updaters/ruby/version-rb.d.ts +12 -0
  129. package/build/src/updaters/{version-rb.js → ruby/version-rb.js} +10 -8
  130. package/build/src/updaters/rust/cargo-lock.d.ts +7 -11
  131. package/build/src/updaters/rust/cargo-lock.js +14 -16
  132. package/build/src/updaters/rust/cargo-toml.d.ts +7 -11
  133. package/build/src/updaters/rust/cargo-toml.js +19 -21
  134. package/build/src/updaters/terraform/module-version.d.ts +10 -11
  135. package/build/src/updaters/terraform/module-version.js +11 -9
  136. package/build/src/updaters/terraform/readme.d.ts +10 -11
  137. package/build/src/updaters/terraform/readme.js +11 -10
  138. package/build/src/updaters/terraform/readme.js.map +1 -1
  139. package/build/src/util/branch-name.d.ts +5 -4
  140. package/build/src/util/branch-name.js +13 -10
  141. package/build/src/{commit-split.d.ts → util/commit-split.d.ts} +2 -4
  142. package/build/src/{commit-split.js → util/commit-split.js} +4 -2
  143. package/build/src/util/indent-commit.d.ts +1 -1
  144. package/build/src/util/logger.d.ts +5 -2
  145. package/build/src/util/logger.js +9 -4
  146. package/build/src/util/pull-request-body.d.ts +20 -0
  147. package/build/src/util/pull-request-body.js +129 -0
  148. package/build/src/util/pull-request-title.d.ts +8 -6
  149. package/build/src/util/pull-request-title.js +20 -6
  150. package/build/src/util/tag-name.d.ts +9 -0
  151. package/build/src/util/tag-name.js +41 -0
  152. package/build/src/{updaters → util}/toml-edit.d.ts +0 -0
  153. package/build/src/{updaters → util}/toml-edit.js +0 -0
  154. package/build/src/version.d.ts +11 -0
  155. package/build/src/version.js +45 -0
  156. package/build/src/versioning-strategies/always-bump-patch.d.ts +7 -0
  157. package/build/src/{updaters/package-lock-json.js → versioning-strategies/always-bump-patch.js} +8 -11
  158. package/build/src/versioning-strategies/default.d.ts +15 -0
  159. package/build/src/versioning-strategies/default.js +67 -0
  160. package/build/src/versioning-strategies/dependency-manifest.d.ts +7 -0
  161. package/build/src/versioning-strategies/dependency-manifest.js +90 -0
  162. package/build/src/versioning-strategies/java-add-snapshot.d.ts +9 -0
  163. package/build/src/versioning-strategies/java-add-snapshot.js +53 -0
  164. package/build/src/versioning-strategies/java-snapshot.d.ts +9 -0
  165. package/build/src/versioning-strategies/java-snapshot.js +67 -0
  166. package/build/src/versioning-strategies/service-pack.d.ts +7 -0
  167. package/build/src/versioning-strategies/service-pack.js +40 -0
  168. package/build/src/versioning-strategy.d.ts +28 -0
  169. package/build/src/versioning-strategy.js +55 -0
  170. package/package.json +9 -8
  171. package/build/src/constants.d.ts +0 -6
  172. package/build/src/constants.js +0 -23
  173. package/build/src/conventional-commits.d.ts +0 -53
  174. package/build/src/conventional-commits.js +0 -167
  175. package/build/src/github-release.d.ts +0 -34
  176. package/build/src/github-release.js +0 -92
  177. package/build/src/graphql-to-commits.d.ts +0 -60
  178. package/build/src/graphql-to-commits.js +0 -112
  179. package/build/src/index.d.ts +0 -94
  180. package/build/src/index.js +0 -32
  181. package/build/src/plugins/index.d.ts +0 -5
  182. package/build/src/plugins/plugin.d.ts +0 -21
  183. package/build/src/release-pr.d.ts +0 -101
  184. package/build/src/release-pr.js +0 -461
  185. package/build/src/releasers/elixir.d.ts +0 -5
  186. package/build/src/releasers/go-yoshi.d.ts +0 -10
  187. package/build/src/releasers/go-yoshi.js +0 -162
  188. package/build/src/releasers/go.d.ts +0 -6
  189. package/build/src/releasers/helm.d.ts +0 -9
  190. package/build/src/releasers/helm.js +0 -66
  191. package/build/src/releasers/index.d.ts +0 -7
  192. package/build/src/releasers/index.js +0 -72
  193. package/build/src/releasers/java/bump_type.d.ts +0 -4
  194. package/build/src/releasers/java/bump_type.js +0 -38
  195. package/build/src/releasers/java/stability.d.ts +0 -5
  196. package/build/src/releasers/java/stability.js +0 -37
  197. package/build/src/releasers/java/version.d.ts +0 -13
  198. package/build/src/releasers/java/version.js +0 -112
  199. package/build/src/releasers/java-bom.d.ts +0 -16
  200. package/build/src/releasers/java-bom.js +0 -83
  201. package/build/src/releasers/java-lts.d.ts +0 -9
  202. package/build/src/releasers/java-lts.js +0 -47
  203. package/build/src/releasers/java-yoshi.d.ts +0 -28
  204. package/build/src/releasers/java-yoshi.js +0 -304
  205. package/build/src/releasers/krm-blueprint.d.ts +0 -6
  206. package/build/src/releasers/node.d.ts +0 -10
  207. package/build/src/releasers/node.js +0 -84
  208. package/build/src/releasers/ocaml.d.ts +0 -5
  209. package/build/src/releasers/php-yoshi.d.ts +0 -5
  210. package/build/src/releasers/php-yoshi.js +0 -191
  211. package/build/src/releasers/php.d.ts +0 -7
  212. package/build/src/releasers/python.d.ts +0 -11
  213. package/build/src/releasers/python.js +0 -127
  214. package/build/src/releasers/ruby-yoshi.d.ts +0 -5
  215. package/build/src/releasers/ruby-yoshi.js +0 -142
  216. package/build/src/releasers/ruby.d.ts +0 -11
  217. package/build/src/releasers/rust.d.ts +0 -30
  218. package/build/src/releasers/rust.js +0 -163
  219. package/build/src/releasers/simple.d.ts +0 -5
  220. package/build/src/releasers/terraform-module.d.ts +0 -6
  221. package/build/src/updaters/elixir-mix-exs.d.ts +0 -13
  222. package/build/src/updaters/java/google-utils.d.ts +0 -13
  223. package/build/src/updaters/java/java_update.d.ts +0 -13
  224. package/build/src/updaters/java/pom-xml.d.ts +0 -3
  225. package/build/src/updaters/java/readme.d.ts +0 -3
  226. package/build/src/updaters/java/readme.js.map +0 -1
  227. package/build/src/updaters/package-json.d.ts +0 -16
  228. package/build/src/updaters/package-lock-json.d.ts +0 -7
  229. package/build/src/updaters/php-client-version.d.ts +0 -13
  230. package/build/src/updaters/php-manifest.d.ts +0 -13
  231. package/build/src/updaters/root-composer-update-package.d.ts +0 -13
  232. package/build/src/updaters/root-composer-update-package.js +0 -45
  233. package/build/src/updaters/root-composer-update-packages.d.ts +0 -13
  234. package/build/src/updaters/samples-package-json.d.ts +0 -13
  235. package/build/src/updaters/update.d.ts +0 -20
  236. package/build/src/updaters/version-rb.d.ts +0 -13
  237. package/build/src/updaters/version-txt.d.ts +0 -12
  238. package/build/src/updaters/version.d.ts +0 -13
  239. package/build/src/updaters/version.js +0 -31
  240. package/build/src/util/checkpoint.d.ts +0 -6
  241. package/build/src/util/checkpoint.js +0 -33
  242. package/build/src/util/release-notes.d.ts +0 -7
  243. package/build/src/util/release-notes.js +0 -34
  244. package/build/src/util/to-conventional-changelog-format.d.ts +0 -2
@@ -1,127 +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.Python = void 0;
17
- const chalk = require("chalk");
18
- const release_pr_1 = require("../release-pr");
19
- // Generic
20
- const changelog_1 = require("../updaters/changelog");
21
- // Python specific.
22
- const setup_py_1 = require("../updaters/python/setup-py");
23
- const setup_cfg_1 = require("../updaters/python/setup-cfg");
24
- const python_file_with_version_1 = require("../updaters/python/python-file-with-version");
25
- const pyproject_toml_1 = require("../updaters/python/pyproject-toml");
26
- const logger_1 = require("../util/logger");
27
- const CHANGELOG_SECTIONS = [
28
- { type: 'feat', section: 'Features' },
29
- { type: 'fix', section: 'Bug Fixes' },
30
- { type: 'perf', section: 'Performance Improvements' },
31
- { type: 'deps', section: 'Dependencies' },
32
- { type: 'revert', section: 'Reverts' },
33
- { type: 'docs', section: 'Documentation' },
34
- { type: 'style', section: 'Styles', hidden: true },
35
- { type: 'chore', section: 'Miscellaneous Chores', hidden: true },
36
- { type: 'refactor', section: 'Code Refactoring', hidden: true },
37
- { type: 'test', section: 'Tests', hidden: true },
38
- { type: 'build', section: 'Build System', hidden: true },
39
- { type: 'ci', section: 'Continuous Integration', hidden: true },
40
- ];
41
- class Python extends release_pr_1.ReleasePR {
42
- constructor(options) {
43
- var _a;
44
- super(options);
45
- this.enableSimplePrereleaseParsing = true;
46
- this.changelogSections = (_a = options.changelogSections) !== null && _a !== void 0 ? _a : CHANGELOG_SECTIONS;
47
- }
48
- async buildUpdates(changelogEntry, candidate, packageName) {
49
- var _a;
50
- const updates = [];
51
- updates.push(new changelog_1.Changelog({
52
- path: this.addPath(this.changelogPath),
53
- changelogEntry,
54
- version: candidate.version,
55
- packageName: packageName.name,
56
- }));
57
- updates.push(new setup_cfg_1.SetupCfg({
58
- path: this.addPath('setup.cfg'),
59
- changelogEntry,
60
- version: candidate.version,
61
- packageName: packageName.name,
62
- }));
63
- updates.push(new setup_py_1.SetupPy({
64
- path: this.addPath('setup.py'),
65
- changelogEntry,
66
- version: candidate.version,
67
- packageName: packageName.name,
68
- }));
69
- const parsedPyProject = await this.getPyProject();
70
- const pyProject = (parsedPyProject === null || parsedPyProject === void 0 ? void 0 : parsedPyProject.project) || ((_a = parsedPyProject === null || parsedPyProject === void 0 ? void 0 : parsedPyProject.tool) === null || _a === void 0 ? void 0 : _a.poetry);
71
- let projectName = packageName.name;
72
- if (pyProject) {
73
- updates.push(new pyproject_toml_1.PyProjectToml({
74
- path: this.addPath('pyproject.toml'),
75
- changelogEntry,
76
- version: candidate.version,
77
- packageName: packageName.name,
78
- }));
79
- projectName = pyProject.name;
80
- }
81
- else {
82
- logger_1.logger.warn(parsedPyProject
83
- ? 'invalid pyproject.toml'
84
- : `file ${chalk.green('pyproject.toml')} did not exist`);
85
- }
86
- // TODO: figure out refactor that makes logic for updating __init__.py, version.py, __version__.py etc., configurable
87
- updates.push(new python_file_with_version_1.PythonFileWithVersion({
88
- path: this.addPath(`${projectName}/__init__.py`),
89
- changelogEntry,
90
- version: candidate.version,
91
- packageName: packageName.name,
92
- }));
93
- updates.push(new python_file_with_version_1.PythonFileWithVersion({
94
- path: this.addPath(`src/${projectName}/__init__.py`),
95
- changelogEntry,
96
- version: candidate.version,
97
- packageName: packageName.name,
98
- }));
99
- // There should be only one version.py, but foreach in case that is incorrect
100
- const versionPyFilesSearch = this.gh.findFilesByFilename('version.py', this.path);
101
- const versionPyFiles = await versionPyFilesSearch;
102
- versionPyFiles.forEach(path => {
103
- updates.push(new python_file_with_version_1.PythonFileWithVersion({
104
- path: this.addPath(path),
105
- changelogEntry,
106
- version: candidate.version,
107
- packageName: packageName.name,
108
- }));
109
- });
110
- return updates;
111
- }
112
- async getPyProject() {
113
- let content;
114
- try {
115
- content = await this.gh.getFileContents('pyproject.toml');
116
- }
117
- catch (e) {
118
- return null;
119
- }
120
- return pyproject_toml_1.parsePyProject(content.parsedContent);
121
- }
122
- defaultInitialVersion() {
123
- return '0.1.0';
124
- }
125
- }
126
- exports.Python = Python;
127
- //# sourceMappingURL=python.js.map
@@ -1,5 +0,0 @@
1
- import { ReleasePR } from '../release-pr';
2
- export declare class RubyYoshi extends ReleasePR {
3
- protected _run(): Promise<number | undefined>;
4
- private summarizeCommits;
5
- }
@@ -1,142 +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.RubyYoshi = void 0;
17
- const fs_1 = require("fs");
18
- const path_1 = require("path");
19
- const release_pr_1 = require("../release-pr");
20
- const conventional_commits_1 = require("../conventional-commits");
21
- const indent_commit_1 = require("../util/indent-commit");
22
- const changelog_1 = require("../updaters/changelog");
23
- const version_rb_1 = require("../updaters/version-rb");
24
- const logger_1 = require("../util/logger");
25
- const CHANGELOG_SECTIONS = [
26
- { type: 'feat', section: 'Features' },
27
- { type: 'fix', section: 'Bug Fixes' },
28
- { type: 'perf', section: 'Performance Improvements' },
29
- { type: 'revert', section: 'Reverts' },
30
- { type: 'docs', section: 'Documentation' },
31
- { type: 'style', section: 'Styles', hidden: true },
32
- { type: 'chore', section: 'Miscellaneous Chores', hidden: true },
33
- { type: 'refactor', section: 'Code Refactoring', hidden: true },
34
- { type: 'test', section: 'Tests', hidden: true },
35
- { type: 'build', section: 'Build System', hidden: true },
36
- { type: 'ci', section: 'Continuous Integration', hidden: true },
37
- ];
38
- class RubyYoshi extends release_pr_1.ReleasePR {
39
- async _run() {
40
- const packageName = await this.getPackageName();
41
- const lastReleaseSha = this.lastPackageVersion
42
- ? await this.gh.getTagSha(`${packageName.getComponent()}/v${this.lastPackageVersion}`)
43
- : undefined;
44
- const commits = await this.commits({
45
- sha: lastReleaseSha,
46
- path: packageName.name,
47
- });
48
- if (commits.length === 0) {
49
- logger_1.logger.warn(`no commits found since ${lastReleaseSha}`);
50
- return undefined;
51
- }
52
- else {
53
- const cc = new conventional_commits_1.ConventionalCommits({
54
- commits: postProcessCommits(commits),
55
- owner: this.gh.owner,
56
- repository: this.gh.repo,
57
- bumpMinorPreMajor: this.bumpMinorPreMajor,
58
- commitPartial: fs_1.readFileSync(path_1.resolve(__dirname, '../../../templates/commit.hbs'), 'utf8'),
59
- headerPartial: fs_1.readFileSync(path_1.resolve(__dirname, '../../../templates/header.hbs'), 'utf8'),
60
- mainTemplate: fs_1.readFileSync(path_1.resolve(__dirname, '../../../templates/template.hbs'), 'utf8'),
61
- changelogSections: CHANGELOG_SECTIONS,
62
- });
63
- const githubTag = this.lastPackageVersion
64
- ? {
65
- version: this.lastPackageVersion,
66
- name: this.lastPackageVersion,
67
- }
68
- : undefined;
69
- const candidate = await this.coerceReleaseCandidate(cc, githubTag);
70
- const changelogEntry = await cc.generateChangelogEntry({
71
- version: candidate.version,
72
- currentTag: `v${candidate.version}`,
73
- previousTag: undefined,
74
- });
75
- // don't create a release candidate until user facing changes
76
- // (fix, feat, BREAKING CHANGE) have been made; a CHANGELOG that's
77
- // one line is a good indicator that there were no interesting commits.
78
- if (this.changelogEmpty(changelogEntry)) {
79
- logger_1.logger.warn(`no user facing commits found since ${lastReleaseSha ? lastReleaseSha : 'beginning of time'}`);
80
- return undefined;
81
- }
82
- const updates = [];
83
- updates.push(new changelog_1.Changelog({
84
- path: `${packageName.name}/CHANGELOG.md`,
85
- changelogEntry,
86
- version: candidate.version,
87
- packageName: packageName.name,
88
- }));
89
- updates.push(new version_rb_1.VersionRB({
90
- path: `${packageName.name}/lib/${packageName.name.replace(/-/g, '/')}/version.rb`,
91
- changelogEntry,
92
- version: candidate.version,
93
- packageName: packageName.name,
94
- }));
95
- return await this.openPR({
96
- sha: commits[0].sha,
97
- changelogEntry: `${changelogEntry}\n---\n${this.summarizeCommits(lastReleaseSha, commits, packageName.name)}\n`,
98
- updates,
99
- version: candidate.version,
100
- includePackageName: true,
101
- });
102
- }
103
- }
104
- // create a summary of the commits landed since the last release,
105
- // for the benefit of the release PR.
106
- summarizeCommits(lastReleaseSha, commits, packageName) {
107
- // summarize the commits that landed:
108
- let summary = '### Commits since last release:\n\n';
109
- const updatedFiles = {};
110
- const repoUrl = `${this.gh.owner}/${this.gh.repo}`;
111
- commits.forEach(commit => {
112
- if (commit.sha === null)
113
- return;
114
- const splitMessage = commit.message.split('\n');
115
- summary += `* [${splitMessage[0]}](https://github.com/${repoUrl}/commit/${commit.sha})\n`;
116
- if (splitMessage.length > 2) {
117
- summary = `${summary}<pre><code>${splitMessage
118
- .slice(1)
119
- .join('\n')}</code></pre>\n`;
120
- }
121
- commit.files.forEach(file => {
122
- if (file.startsWith(packageName)) {
123
- updatedFiles[file] = true;
124
- }
125
- });
126
- });
127
- // summarize the files that changed:
128
- summary = `${summary}\n### Files edited since last release:\n\n<pre><code>`;
129
- Object.keys(updatedFiles).forEach(file => {
130
- summary += `${file}\n`;
131
- });
132
- return `${summary}</code></pre>\n[Compare Changes](https://github.com/${repoUrl}/compare/${lastReleaseSha}...HEAD)\n`;
133
- }
134
- }
135
- exports.RubyYoshi = RubyYoshi;
136
- function postProcessCommits(commits) {
137
- commits.forEach(commit => {
138
- commit.message = indent_commit_1.indentCommit(commit);
139
- });
140
- return commits;
141
- }
142
- //# sourceMappingURL=ruby-yoshi.js.map
@@ -1,11 +0,0 @@
1
- import { ReleasePRConstructorOptions } from '..';
2
- import { ReleasePR, ReleaseCandidate, GetCommitsOptions, PackageName } from '../release-pr';
3
- import { Update } from '../updaters/update';
4
- import { Commit } from '../graphql-to-commits';
5
- export declare class Ruby extends ReleasePR {
6
- versionFile: string;
7
- constructor(options: ReleasePRConstructorOptions);
8
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
9
- tagSeparator(): string;
10
- protected commits(opts: GetCommitsOptions): Promise<Commit[]>;
11
- }
@@ -1,30 +0,0 @@
1
- import { ReleasePR, ReleaseCandidate, PackageName } from '../release-pr';
2
- import { Update } from '../updaters/update';
3
- import { Commit } from '../graphql-to-commits';
4
- import { CargoManifest } from '../updaters/rust/common';
5
- export declare class Rust extends ReleasePR {
6
- private packageManifest?;
7
- private workspaceManifest?;
8
- private _packageName?;
9
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
10
- protected commits(opts: GetCommitsOptions): Promise<Commit[]>;
11
- defaultInitialVersion(): string;
12
- getPackageName(): Promise<PackageName>;
13
- /**
14
- * @returns the package's manifest, ie. `crates/foobar/Cargo.toml`
15
- */
16
- protected getPackageManifest(): Promise<CargoManifest | null>;
17
- /**
18
- * @returns the workspace's manifest, ie. `Cargo.toml` (top-level)
19
- */
20
- protected getWorkspaceManifest(): Promise<CargoManifest | null>;
21
- protected getManifest(path: string): Promise<CargoManifest | null>;
22
- protected exists(path: string): Promise<boolean>;
23
- }
24
- interface GetCommitsOptions {
25
- sha?: string;
26
- perPage?: number;
27
- labels?: boolean;
28
- path?: string;
29
- }
30
- export {};
@@ -1,163 +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.Rust = void 0;
17
- const release_pr_1 = require("../release-pr");
18
- // Generic
19
- const changelog_1 = require("../updaters/changelog");
20
- // Cargo.toml support
21
- const cargo_toml_1 = require("../updaters/rust/cargo-toml");
22
- const cargo_lock_1 = require("../updaters/rust/cargo-lock");
23
- const common_1 = require("../updaters/rust/common");
24
- const logger_1 = require("../util/logger");
25
- class Rust extends release_pr_1.ReleasePR {
26
- async buildUpdates(changelogEntry, candidate, packageName) {
27
- const updates = [];
28
- updates.push(new changelog_1.Changelog({
29
- path: this.addPath(this.changelogPath),
30
- changelogEntry,
31
- version: candidate.version,
32
- packageName: packageName.name,
33
- }));
34
- const workspaceManifest = await this.getWorkspaceManifest();
35
- const manifestPaths = [];
36
- let lockPath;
37
- if (this.forManifestReleaser) {
38
- logger_1.logger.info('working for manifest releaser, only touching package, not dependencies');
39
- }
40
- if (workspaceManifest &&
41
- workspaceManifest.workspace &&
42
- workspaceManifest.workspace.members &&
43
- !this.forManifestReleaser) {
44
- const members = workspaceManifest.workspace.members;
45
- logger_1.logger.info(`found workspace with ${members.length} members, upgrading all`);
46
- for (const member of members) {
47
- manifestPaths.push(`${member}/Cargo.toml`);
48
- }
49
- lockPath = 'Cargo.lock';
50
- }
51
- else {
52
- const manifestPath = this.addPath('Cargo.toml');
53
- logger_1.logger.info(`single crate found, updating ${manifestPath}`);
54
- manifestPaths.push(this.addPath('Cargo.toml'));
55
- lockPath = this.addPath('Cargo.lock');
56
- }
57
- const versions = new Map();
58
- versions.set(packageName.name, candidate.version);
59
- for (const path of manifestPaths) {
60
- updates.push(new cargo_toml_1.CargoToml({
61
- path,
62
- changelogEntry,
63
- version: 'unused',
64
- versions,
65
- packageName: packageName.name,
66
- }));
67
- }
68
- if ((await this.exists(lockPath)) && !this.forManifestReleaser) {
69
- updates.push(new cargo_lock_1.CargoLock({
70
- path: lockPath,
71
- changelogEntry,
72
- version: 'unused',
73
- versions,
74
- packageName: packageName.name,
75
- }));
76
- }
77
- return updates;
78
- }
79
- async commits(opts) {
80
- const sha = opts.sha;
81
- const perPage = opts.perPage || 100;
82
- const labels = opts.labels || false;
83
- const path = opts.path || undefined;
84
- if (!path) {
85
- return await this.gh.commitsSinceSha(sha, perPage, labels, null);
86
- }
87
- // ReleasePR.commits() does not work well with monorepos. If a release tag
88
- // points to a sha1 that isn't in the history for the given `path`, it wil
89
- // generate a changelog *from the last 100 commits*, ignoring the `sha`
90
- // completely.
91
- // To avoid that, we first fetch commits without a path:
92
- const relevantCommits = new Set();
93
- for (const commit of await this.gh.commitsSinceSha(sha, perPage, labels, null)) {
94
- relevantCommits.add(commit.sha);
95
- }
96
- // Then fetch commits for the path (this will include commits for
97
- // previous versions)
98
- const allPathCommits = await this.gh.commitsSinceSha(sha, perPage, labels, path);
99
- // Then keep only the "path commits" that are relevant for this release
100
- const commits = allPathCommits.filter(commit => relevantCommits.has(commit.sha));
101
- if (commits.length) {
102
- logger_1.logger.info(`found ${commits.length} commits for ${path} since ${sha ? sha : 'beginning of time'}`);
103
- }
104
- else {
105
- logger_1.logger.warn(`no commits found since ${sha}`);
106
- }
107
- return commits;
108
- }
109
- defaultInitialVersion() {
110
- return '0.1.0';
111
- }
112
- // Always prefer the Cargo.toml name
113
- async getPackageName() {
114
- var _a, _b;
115
- if (this._packageName === undefined) {
116
- const packageManifest = await this.getPackageManifest();
117
- this.packageName = this._packageName = (_b = (_a = packageManifest === null || packageManifest === void 0 ? void 0 : packageManifest.package) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this.packageName;
118
- }
119
- return {
120
- name: this.packageName,
121
- getComponent: () => this.packageName,
122
- };
123
- }
124
- /**
125
- * @returns the package's manifest, ie. `crates/foobar/Cargo.toml`
126
- */
127
- async getPackageManifest() {
128
- if (this.packageManifest === undefined) {
129
- this.packageManifest = await this.getManifest(this.addPath('Cargo.toml'));
130
- }
131
- return this.packageManifest;
132
- }
133
- /**
134
- * @returns the workspace's manifest, ie. `Cargo.toml` (top-level)
135
- */
136
- async getWorkspaceManifest() {
137
- if (this.workspaceManifest === undefined) {
138
- this.workspaceManifest = await this.getManifest('Cargo.toml');
139
- }
140
- return this.workspaceManifest;
141
- }
142
- async getManifest(path) {
143
- let content;
144
- try {
145
- content = await this.gh.getFileContents(path);
146
- }
147
- catch (e) {
148
- return null;
149
- }
150
- return common_1.parseCargoManifest(content.parsedContent);
151
- }
152
- async exists(path) {
153
- try {
154
- await this.gh.getFileContents(path);
155
- return true;
156
- }
157
- catch (_e) {
158
- return false;
159
- }
160
- }
161
- }
162
- exports.Rust = Rust;
163
- //# sourceMappingURL=rust.js.map
@@ -1,5 +0,0 @@
1
- import { ReleasePR, ReleaseCandidate, PackageName } from '../release-pr';
2
- import { Update } from '../updaters/update';
3
- export declare class Simple extends ReleasePR {
4
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
5
- }
@@ -1,6 +0,0 @@
1
- import { ReleaseCandidate, PackageName, ReleasePR } from '../release-pr';
2
- import { Update } from '../updaters/update';
3
- export declare class TerraformModule extends ReleasePR {
4
- protected buildUpdates(changelogEntry: string, candidate: ReleaseCandidate, packageName: PackageName): Promise<Update[]>;
5
- defaultInitialVersion(): string;
6
- }
@@ -1,13 +0,0 @@
1
- import { Update, UpdateOptions, VersionsMap } from './update';
2
- import { GitHubFileContents } from '../github';
3
- export declare class ElixirMixExs implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateContent(content: string): string;
13
- }
@@ -1,13 +0,0 @@
1
- import { Update, UpdateOptions, VersionsMap } from '../update';
2
- import { GitHubFileContents } from '../../github';
3
- export declare class GoogleUtils implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateContent(content: string): string;
13
- }
@@ -1,13 +0,0 @@
1
- import { Update, VersionsMap, UpdateOptions } from '../update';
2
- import { GitHubFileContents } from '../../github';
3
- export declare class JavaUpdate implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateContent(content: string): string;
13
- }
@@ -1,3 +0,0 @@
1
- import { JavaUpdate } from './java_update';
2
- export declare class PomXML extends JavaUpdate {
3
- }
@@ -1,3 +0,0 @@
1
- import { JavaUpdate } from './java_update';
2
- export declare class Readme extends JavaUpdate {
3
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"readme.js","sourceRoot":"","sources":["../../../../src/updaters/java/readme.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,+CAAyC;AAEzC,MAAa,MAAO,SAAQ,wBAAU;CAAG;AAAzC,wBAAyC"}
@@ -1,16 +0,0 @@
1
- import { Update, UpdateOptions, VersionsMap } from './update';
2
- import { GitHubFileContents } from '../github';
3
- export declare class PackageJson implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateVersion(parsed: {
13
- version: string;
14
- }): void;
15
- updateContent(content: string): string;
16
- }
@@ -1,7 +0,0 @@
1
- import { PackageJson } from './package-json';
2
- export declare class PackageLockJson extends PackageJson {
3
- updateVersion(parsed: {
4
- version: string;
5
- lockfileVersion: number;
6
- }): void;
7
- }
@@ -1,13 +0,0 @@
1
- import { GitHubFileContents } from '../github';
2
- import { Update, UpdateOptions, VersionsMap } from './update';
3
- export declare class PHPClientVersion implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateContent(content: string): string;
13
- }
@@ -1,13 +0,0 @@
1
- import { Update, UpdateOptions, VersionsMap } from './update';
2
- import { GitHubFileContents } from '../github';
3
- export declare class PHPManifest implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateContent(content: string): string;
13
- }
@@ -1,13 +0,0 @@
1
- import { Update, UpdateOptions, VersionsMap } from './update';
2
- import { GitHubFileContents } from '../github';
3
- export declare class RootComposerUpdatePackage implements Update {
4
- path: string;
5
- changelogEntry: string;
6
- version: string;
7
- versions?: VersionsMap;
8
- packageName: string;
9
- create: boolean;
10
- contents?: GitHubFileContents;
11
- constructor(options: UpdateOptions);
12
- updateContent(content: string): string;
13
- }