1
0
mirror of https://github.com/joaquinjsb/gitea-release-please-action synced 2026-05-13 08:01:36 +02:00

chore: build dist release-please-action (#417)

This commit is contained in:
Google GitHub Actions Bot
2022-01-12 18:32:29 -05:00
committed by GitHub
parent aeaf772691
commit 075f3a1d1c

519
dist/index.js vendored
View File

@@ -67548,6 +67548,7 @@ const allReleaseTypes = [
const releasers = { const releasers = {
go: options => new go_1.Go(options), go: options => new go_1.Go(options),
'go-yoshi': options => new go_yoshi_1.GoYoshi(options), 'go-yoshi': options => new go_yoshi_1.GoYoshi(options),
'java-yoshi': options => new java_yoshi_1.JavaYoshi(options),
'krm-blueprint': options => new krm_blueprint_1.KRMBlueprint(options), 'krm-blueprint': options => new krm_blueprint_1.KRMBlueprint(options),
node: options => new node_1.Node(options), node: options => new node_1.Node(options),
ocaml: options => new ocaml_1.OCaml(options), ocaml: options => new ocaml_1.OCaml(options),
@@ -67555,7 +67556,6 @@ const releasers = {
'php-yoshi': options => new php_yoshi_1.PHPYoshi(options), 'php-yoshi': options => new php_yoshi_1.PHPYoshi(options),
python: options => new python_1.Python(options), python: options => new python_1.Python(options),
rust: options => new rust_1.Rust(options), rust: options => new rust_1.Rust(options),
simple: options => new simple_1.Simple(options),
'terraform-module': options => new terraform_module_1.TerraformModule(options), 'terraform-module': options => new terraform_module_1.TerraformModule(options),
helm: options => new helm_1.Helm(options), helm: options => new helm_1.Helm(options),
elixir: options => new elixir_1.Elixir(options), elixir: options => new elixir_1.Elixir(options),
@@ -67602,6 +67602,7 @@ async function buildStrategy(options) {
includeComponentInTag: options.includeComponentInTag, includeComponentInTag: options.includeComponentInTag,
changelogNotes, changelogNotes,
pullRequestTitlePattern: options.pullRequestTitlePattern, pullRequestTitlePattern: options.pullRequestTitlePattern,
extraFiles: options.extraFiles,
}; };
switch (options.releaseType) { switch (options.releaseType) {
case 'ruby': { case 'ruby': {
@@ -67616,23 +67617,15 @@ async function buildStrategy(options) {
versionFile: options.versionFile, versionFile: options.versionFile,
}); });
} }
case 'java-yoshi': {
return new java_yoshi_1.JavaYoshi({
...strategyOptions,
extraFiles: options.extraFiles,
});
}
case 'java-backport': { case 'java-backport': {
return new java_yoshi_1.JavaYoshi({ return new java_yoshi_1.JavaYoshi({
...strategyOptions, ...strategyOptions,
extraFiles: options.extraFiles,
versioningStrategy: new always_bump_patch_1.AlwaysBumpPatch(), versioningStrategy: new always_bump_patch_1.AlwaysBumpPatch(),
}); });
} }
case 'java-bom': { case 'java-bom': {
return new java_yoshi_1.JavaYoshi({ return new java_yoshi_1.JavaYoshi({
...strategyOptions, ...strategyOptions,
extraFiles: options.extraFiles,
versioningStrategy: new dependency_manifest_1.DependencyManifest({ versioningStrategy: new dependency_manifest_1.DependencyManifest({
bumpMinorPreMajor: options.bumpMinorPreMajor, bumpMinorPreMajor: options.bumpMinorPreMajor,
bumpPatchForMinorPreMajor: options.bumpPatchForMinorPreMajor, bumpPatchForMinorPreMajor: options.bumpPatchForMinorPreMajor,
@@ -67642,10 +67635,15 @@ async function buildStrategy(options) {
case 'java-lts': { case 'java-lts': {
return new java_yoshi_1.JavaYoshi({ return new java_yoshi_1.JavaYoshi({
...strategyOptions, ...strategyOptions,
extraFiles: options.extraFiles,
versioningStrategy: new service_pack_1.ServicePackVersioningStrategy(), versioningStrategy: new service_pack_1.ServicePackVersioningStrategy(),
}); });
} }
case 'simple': {
return new simple_1.Simple({
...strategyOptions,
versionFile: options.versionFile,
});
}
default: { default: {
const builder = releasers[options.releaseType]; const builder = releasers[options.releaseType];
if (builder) { if (builder) {
@@ -67997,18 +67995,20 @@ class GitHub {
* Create a GitHub release * Create a GitHub release
* *
* @param {Release} release Release parameters * @param {Release} release Release parameters
* @param {boolean} draft Whether or not to create the release as a draft * @param {ReleaseOptions} options Release option parameters
* @throws {DuplicateReleaseError} if the release tag already exists * @throws {DuplicateReleaseError} if the release tag already exists
* @throws {GitHubAPIError} on other API errors * @throws {GitHubAPIError} on other API errors
*/ */
this.createRelease = wrapAsync(async (release, options = {}) => { this.createRelease = wrapAsync(async (release, options = {}) => {
const resp = await this.octokit.repos.createRelease({ const resp = await this.octokit.repos.createRelease({
name: release.name,
owner: this.repository.owner, owner: this.repository.owner,
repo: this.repository.repo, repo: this.repository.repo,
tag_name: release.tag.toString(), tag_name: release.tag.toString(),
body: release.notes, body: release.notes,
sha: release.sha,
draft: !!options.draft, draft: !!options.draft,
prerelease: !!options.prerelease,
target_commitish: release.sha,
}); });
return { return {
name: resp.data.name || undefined, name: resp.data.name || undefined,
@@ -68354,39 +68354,39 @@ class GitHub {
logger_1.logger.debug(`Fetching ${states} pull requests on branch ${targetBranch} with cursor ${cursor}`); logger_1.logger.debug(`Fetching ${states} pull requests on branch ${targetBranch} with cursor ${cursor}`);
const response = await this.graphqlRequest({ const response = await this.graphqlRequest({
query: `query mergedPullRequests($owner: String!, $repo: String!, $num: Int!, $maxFilesChanged: Int, $targetBranch: String!, $states: [PullRequestState!], $cursor: String) { query: `query mergedPullRequests($owner: String!, $repo: String!, $num: Int!, $maxFilesChanged: Int, $targetBranch: String!, $states: [PullRequestState!], $cursor: String) {
repository(owner: $owner, name: $repo) { repository(owner: $owner, name: $repo) {
pullRequests(first: $num, after: $cursor, baseRefName: $targetBranch, states: $states, orderBy: {field: CREATED_AT, direction: DESC}) { pullRequests(first: $num, after: $cursor, baseRefName: $targetBranch, states: $states, orderBy: {field: CREATED_AT, direction: DESC}) {
nodes { nodes {
number number
title title
baseRefName baseRefName
headRefName headRefName
labels(first: 10) { labels(first: 10) {
nodes { nodes {
name name
}
}
body
mergeCommit {
oid
}
files(first: $maxFilesChanged) {
nodes {
path
}
pageInfo {
endCursor
hasNextPage
}
} }
} }
pageInfo { body
endCursor mergeCommit {
hasNextPage oid
}
files(first: $maxFilesChanged) {
nodes {
path
}
pageInfo {
endCursor
hasNextPage
}
} }
} }
pageInfo {
endCursor
hasNextPage
}
} }
}`, }
}`,
cursor, cursor,
owner: this.repository.owner, owner: this.repository.owner,
repo: this.repository.repo, repo: this.repository.repo,
@@ -68923,6 +68923,7 @@ class Manifest {
logger_1.logger.debug(`Found release for path ${path}, ${release.tagName}`); logger_1.logger.debug(`Found release for path ${path}, ${release.tagName}`);
releaseShasByPath[path] = release.sha; releaseShasByPath[path] = release.sha;
releasesByPath[path] = { releasesByPath[path] = {
name: release.name,
tag: tagName, tag: tagName,
sha: release.sha, sha: release.sha,
notes: release.notes || '', notes: release.notes || '',
@@ -69179,6 +69180,9 @@ class Manifest {
path, path,
pullRequest, pullRequest,
draft: (_a = config.draft) !== null && _a !== void 0 ? _a : this.draft, draft: (_a = config.draft) !== null && _a !== void 0 ? _a : this.draft,
prerelease: config.prerelease &&
(!!release.tag.version.preRelease ||
release.tag.version.major === 0),
}); });
} }
} }
@@ -69228,6 +69232,7 @@ class Manifest {
async createRelease(release) { async createRelease(release) {
const githubRelease = await this.github.createRelease(release, { const githubRelease = await this.github.createRelease(release, {
draft: release.draft, draft: release.draft,
prerelease: release.prerelease,
}); });
// comment on pull request // comment on pull request
const comment = `:robot: Release is at ${githubRelease.url} :sunflower:`; const comment = `:robot: Release is at ${githubRelease.url} :sunflower:`;
@@ -69293,6 +69298,7 @@ function extractReleaserConfig(config) {
releaseAs: config['release-as'], releaseAs: config['release-as'],
skipGithubRelease: config['skip-github-release'], skipGithubRelease: config['skip-github-release'],
draft: config.draft, draft: config.draft,
prerelease: config.prerelease,
draftPullRequest: config['draft-pull-request'], draftPullRequest: config['draft-pull-request'],
component: config['component'], component: config['component'],
packageName: config['package-name'], packageName: config['package-name'],
@@ -69436,7 +69442,7 @@ async function latestReleaseVersion(github, targetBranch, prefix, pullRequestTit
return candidateTagVersion.sort((a, b) => b.compare(a))[0]; return candidateTagVersion.sort((a, b) => b.compare(a))[0];
} }
function mergeReleaserConfig(defaultConfig, pathConfig) { function mergeReleaserConfig(defaultConfig, pathConfig) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
return { return {
releaseType: (_b = (_a = pathConfig.releaseType) !== null && _a !== void 0 ? _a : defaultConfig.releaseType) !== null && _b !== void 0 ? _b : 'node', releaseType: (_b = (_a = pathConfig.releaseType) !== null && _a !== void 0 ? _a : defaultConfig.releaseType) !== null && _b !== void 0 ? _b : 'node',
bumpMinorPreMajor: (_c = pathConfig.bumpMinorPreMajor) !== null && _c !== void 0 ? _c : defaultConfig.bumpMinorPreMajor, bumpMinorPreMajor: (_c = pathConfig.bumpMinorPreMajor) !== null && _c !== void 0 ? _c : defaultConfig.bumpMinorPreMajor,
@@ -69446,10 +69452,11 @@ function mergeReleaserConfig(defaultConfig, pathConfig) {
releaseAs: (_g = pathConfig.releaseAs) !== null && _g !== void 0 ? _g : defaultConfig.releaseAs, releaseAs: (_g = pathConfig.releaseAs) !== null && _g !== void 0 ? _g : defaultConfig.releaseAs,
skipGithubRelease: (_h = pathConfig.skipGithubRelease) !== null && _h !== void 0 ? _h : defaultConfig.skipGithubRelease, skipGithubRelease: (_h = pathConfig.skipGithubRelease) !== null && _h !== void 0 ? _h : defaultConfig.skipGithubRelease,
draft: (_j = pathConfig.draft) !== null && _j !== void 0 ? _j : defaultConfig.draft, draft: (_j = pathConfig.draft) !== null && _j !== void 0 ? _j : defaultConfig.draft,
component: (_k = pathConfig.component) !== null && _k !== void 0 ? _k : defaultConfig.component, prerelease: (_k = pathConfig.prerelease) !== null && _k !== void 0 ? _k : defaultConfig.prerelease,
packageName: (_l = pathConfig.packageName) !== null && _l !== void 0 ? _l : defaultConfig.packageName, component: (_l = pathConfig.component) !== null && _l !== void 0 ? _l : defaultConfig.component,
versionFile: (_m = pathConfig.versionFile) !== null && _m !== void 0 ? _m : defaultConfig.versionFile, packageName: (_m = pathConfig.packageName) !== null && _m !== void 0 ? _m : defaultConfig.packageName,
extraFiles: (_o = pathConfig.extraFiles) !== null && _o !== void 0 ? _o : defaultConfig.extraFiles, versionFile: (_o = pathConfig.versionFile) !== null && _o !== void 0 ? _o : defaultConfig.versionFile,
extraFiles: (_p = pathConfig.extraFiles) !== null && _p !== void 0 ? _p : defaultConfig.extraFiles,
}; };
} }
/** /**
@@ -69550,6 +69557,7 @@ const pull_request_title_1 = __nccwpck_require__(1158);
const pull_request_body_1 = __nccwpck_require__(70774); const pull_request_body_1 = __nccwpck_require__(70774);
const branch_name_1 = __nccwpck_require__(16344); const branch_name_1 = __nccwpck_require__(16344);
const versioning_strategy_1 = __nccwpck_require__(41941); const versioning_strategy_1 = __nccwpck_require__(41941);
const cargo_lock_1 = __nccwpck_require__(68875);
/** /**
* The plugin analyzed a cargo workspace and will bump dependencies * The plugin analyzed a cargo workspace and will bump dependencies
* of managed packages if those dependencies are being updated. * of managed packages if those dependencies are being updated.
@@ -69574,7 +69582,9 @@ class CargoWorkspace extends workspace_1.WorkspacePlugin {
} }
const allCrates = []; const allCrates = [];
const candidatesByPackage = {}; const candidatesByPackage = {};
for (const path of cargoManifest.workspace.members) { const members = cargoManifest.workspace.members;
members.push(manifest_1.ROOT_PROJECT_PATH);
for (const path of members) {
const manifestPath = addPath(path, 'Cargo.toml'); const manifestPath = addPath(path, 'Cargo.toml');
logger_1.logger.info(`looking for candidate with path: ${path}`); logger_1.logger.info(`looking for candidate with path: ${path}`);
const candidate = candidates.find(c => c.path === path); const candidate = candidates.find(c => c.path === path);
@@ -69584,7 +69594,8 @@ class CargoWorkspace extends workspace_1.WorkspacePlugin {
const manifest = common_1.parseCargoManifest(manifestContent.parsedContent); const manifest = common_1.parseCargoManifest(manifestContent.parsedContent);
const packageName = (_c = manifest.package) === null || _c === void 0 ? void 0 : _c.name; const packageName = (_c = manifest.package) === null || _c === void 0 ? void 0 : _c.name;
if (!packageName) { if (!packageName) {
throw new Error(`package manifest at ${manifestPath} is missing [package.name]`); logger_1.logger.warn(`package manifest at ${manifestPath} is missing [package.name]`);
continue;
} }
if (candidate) { if (candidate) {
candidatesByPackage[packageName] = candidate; candidatesByPackage[packageName] = candidate;
@@ -69629,9 +69640,15 @@ class CargoWorkspace extends workspace_1.WorkspacePlugin {
if (update.path === addPath(existingCandidate.path, 'Cargo.toml')) { if (update.path === addPath(existingCandidate.path, 'Cargo.toml')) {
update.updater = new raw_content_1.RawContent(updatedContent); update.updater = new raw_content_1.RawContent(updatedContent);
} }
else if (update.updater instanceof changelog_1.Changelog) { else if (update.updater instanceof changelog_1.Changelog && dependencyNotes) {
update.updater.changelogEntry = appendDependenciesSectionToChangelog(update.updater.changelogEntry, dependencyNotes); update.updater.changelogEntry = appendDependenciesSectionToChangelog(update.updater.changelogEntry, dependencyNotes);
} }
else if (update.path === addPath(existingCandidate.path, 'Cargo.lock')) {
update.updater = new cargo_lock_1.CargoLock({
version,
versionsMap: updatedVersions,
});
}
return update; return update;
}); });
// append dependency notes // append dependency notes
@@ -69719,8 +69736,7 @@ class CargoWorkspace extends workspace_1.WorkspacePlugin {
return graph; return graph;
} }
inScope(candidate) { inScope(candidate) {
return (candidate.config.releaseType === 'rust' && return candidate.config.releaseType === 'rust';
candidate.path !== manifest_1.ROOT_PROJECT_PATH);
} }
packageNameFromPackage(pkg) { packageNameFromPackage(pkg) {
return pkg.name; return pkg.name;
@@ -69863,36 +69879,18 @@ class Merge extends plugin_1.ManifestPlugin {
if (candidates.length < 1) { if (candidates.length < 1) {
return candidates; return candidates;
} }
const updatesByPath = {};
const releaseData = []; const releaseData = [];
const labels = new Set(); const labels = new Set();
let rawUpdates = [];
for (const candidate of candidates) { for (const candidate of candidates) {
const pullRequest = candidate.pullRequest; const pullRequest = candidate.pullRequest;
for (const update of pullRequest.updates) { rawUpdates = rawUpdates.concat(...pullRequest.updates);
if (updatesByPath[update.path]) {
updatesByPath[update.path].push(update);
}
else {
updatesByPath[update.path] = [update];
}
}
for (const label of pullRequest.labels) { for (const label of pullRequest.labels) {
labels.add(label); labels.add(label);
} }
releaseData.push(...pullRequest.body.releaseData); releaseData.push(...pullRequest.body.releaseData);
} }
const updates = []; const updates = composite_1.mergeUpdates(rawUpdates);
for (const path in updatesByPath) {
const update = updatesByPath[path];
const updaters = update.map(u => u.updater);
updates.push({
path,
createIfMissing: update[0].createIfMissing,
updater: updaters.length === 1
? updaters[0]
: new composite_1.CompositeUpdater(...updaters),
});
}
const pullRequest = { const pullRequest = {
title: pull_request_title_1.PullRequestTitle.ofTargetBranch(this.targetBranch, manifest_1.MANIFEST_PULL_REQUEST_TITLE_PATTERN), title: pull_request_title_1.PullRequestTitle.ofTargetBranch(this.targetBranch, manifest_1.MANIFEST_PULL_REQUEST_TITLE_PATTERN),
body: new pull_request_body_1.PullRequestBody(releaseData), body: new pull_request_body_1.PullRequestBody(releaseData),
@@ -70429,6 +70427,8 @@ const logger_1 = __nccwpck_require__(68809);
const pull_request_title_1 = __nccwpck_require__(1158); const pull_request_title_1 = __nccwpck_require__(1158);
const branch_name_1 = __nccwpck_require__(16344); const branch_name_1 = __nccwpck_require__(16344);
const pull_request_body_1 = __nccwpck_require__(70774); const pull_request_body_1 = __nccwpck_require__(70774);
const composite_1 = __nccwpck_require__(40911);
const generic_1 = __nccwpck_require__(96323);
const DEFAULT_CHANGELOG_PATH = 'CHANGELOG.md'; const DEFAULT_CHANGELOG_PATH = 'CHANGELOG.md';
/** /**
* A strategy is responsible for determining which files are * A strategy is responsible for determining which files are
@@ -70455,6 +70455,7 @@ class BaseStrategy {
options.changelogNotes || new default_2.DefaultChangelogNotes(options); options.changelogNotes || new default_2.DefaultChangelogNotes(options);
this.includeComponentInTag = (_a = options.includeComponentInTag) !== null && _a !== void 0 ? _a : true; this.includeComponentInTag = (_a = options.includeComponentInTag) !== null && _a !== void 0 ? _a : true;
this.pullRequestTitlePattern = options.pullRequestTitlePattern; this.pullRequestTitlePattern = options.pullRequestTitlePattern;
this.extraFiles = options.extraFiles || [];
} }
/** /**
* Return the component for this strategy. This may be a computed field. * Return the component for this strategy. This may be a computed field.
@@ -70498,6 +70499,15 @@ class BaseStrategy {
changelogSections: this.changelogSections, changelogSections: this.changelogSections,
}); });
} }
async buildPullRequestBody(component, newVersion, releaseNotesBody, _conventionalCommits, _latestRelease) {
return new pull_request_body_1.PullRequestBody([
{
component,
version: newVersion,
notes: releaseNotesBody,
},
]);
}
/** /**
* Builds a candidate release pull request * Builds a candidate release pull request
* @param {Commit[]} commits Raw commits to consider for this release. * @param {Commit[]} commits Raw commits to consider for this release.
@@ -70532,23 +70542,28 @@ class BaseStrategy {
versionsMap, versionsMap,
latestVersion: latestRelease === null || latestRelease === void 0 ? void 0 : latestRelease.tag.version, latestVersion: latestRelease === null || latestRelease === void 0 ? void 0 : latestRelease.tag.version,
}); });
const pullRequestBody = new pull_request_body_1.PullRequestBody([ const updatesWithExtras = composite_1.mergeUpdates(updates.concat(...this.extraFileUpdates(newVersion)));
{ const pullRequestBody = await this.buildPullRequestBody(component, newVersion, releaseNotesBody, conventionalCommits, latestRelease);
component,
version: newVersion,
notes: releaseNotesBody,
},
]);
return { return {
title: pullRequestTitle, title: pullRequestTitle,
body: pullRequestBody, body: pullRequestBody,
updates, updates: updatesWithExtras,
labels, labels,
headRefName: branchName.toString(), headRefName: branchName.toString(),
version: newVersion, version: newVersion,
draft: draft !== null && draft !== void 0 ? draft : false, draft: draft !== null && draft !== void 0 ? draft : false,
}; };
} }
extraFileUpdates(version) {
const genericUpdater = new generic_1.Generic({ version });
return this.extraFiles.map(path => {
return {
path,
createIfMissing: false,
updater: genericUpdater,
};
});
}
changelogEmpty(changelogEntry) { changelogEmpty(changelogEntry) {
return changelogEntry.split('\n').length <= 1; return changelogEntry.split('\n').length <= 1;
} }
@@ -70579,6 +70594,9 @@ class BaseStrategy {
async buildVersionsMap(_conventionalCommits) { async buildVersionsMap(_conventionalCommits) {
return new Map(); return new Map();
} }
async parsePullRequestBody(pullRequestBody) {
return pull_request_body_1.PullRequestBody.parse(pullRequestBody);
}
/** /**
* Given a merged pull request, build the candidate release. * Given a merged pull request, build the candidate release.
* @param {PullRequest} mergedPullRequest The merged release pull request. * @param {PullRequest} mergedPullRequest The merged release pull request.
@@ -70604,7 +70622,7 @@ class BaseStrategy {
logger_1.logger.error(`Bad branch name: ${mergedPullRequest.headBranchName}`); logger_1.logger.error(`Bad branch name: ${mergedPullRequest.headBranchName}`);
return; return;
} }
const pullRequestBody = pull_request_body_1.PullRequestBody.parse(mergedPullRequest.body); const pullRequestBody = await this.parsePullRequestBody(mergedPullRequest.body);
if (!pullRequestBody) { if (!pullRequestBody) {
logger_1.logger.error('Could not parse pull request body as a release PR'); logger_1.logger.error('Could not parse pull request body as a release PR');
return; return;
@@ -70628,7 +70646,11 @@ class BaseStrategy {
return; return;
} }
const tag = new tag_name_1.TagName(version, this.includeComponentInTag ? component : undefined, this.tagSeparator); const tag = new tag_name_1.TagName(version, this.includeComponentInTag ? component : undefined, this.tagSeparator);
const releaseName = component && this.includeComponentInTag
? `${component}: v${version.toString()}`
: `v${version.toString()}`;
return { return {
name: releaseName,
tag, tag,
notes: notes || '', notes: notes || '',
sha: mergedPullRequest.sha, sha: mergedPullRequest.sha,
@@ -71070,7 +71092,6 @@ class JavaYoshi extends base_1.BaseStrategy {
const parentVersioningStrategy = options.versioningStrategy || new default_1.DefaultVersioningStrategy(); const parentVersioningStrategy = options.versioningStrategy || new default_1.DefaultVersioningStrategy();
options.versioningStrategy = new java_snapshot_1.JavaSnapshot(parentVersioningStrategy); options.versioningStrategy = new java_snapshot_1.JavaSnapshot(parentVersioningStrategy);
super(options); super(options);
this.extraFiles = options.extraFiles || [];
this.snapshotVersioning = new java_add_snapshot_1.JavaAddSnapshot(parentVersioningStrategy); this.snapshotVersioning = new java_add_snapshot_1.JavaAddSnapshot(parentVersioningStrategy);
} }
async buildReleasePullRequest(commits, latestRelease, draft, labels = []) { async buildReleasePullRequest(commits, latestRelease, draft, labels = []) {
@@ -71100,26 +71121,24 @@ class JavaYoshi extends base_1.BaseStrategy {
const branchName = component const branchName = component
? branch_name_1.BranchName.ofComponentTargetBranch(component, this.targetBranch) ? branch_name_1.BranchName.ofComponentTargetBranch(component, this.targetBranch)
: branch_name_1.BranchName.ofTargetBranch(this.targetBranch); : branch_name_1.BranchName.ofTargetBranch(this.targetBranch);
const notes = '### Updating meta-information for bleeding-edge SNAPSHOT release.';
const pullRequestBody = new pull_request_body_1.PullRequestBody([ const pullRequestBody = new pull_request_body_1.PullRequestBody([
{ {
component, component,
version: newVersion, version: newVersion,
notes: '### Updating meta-information for bleeding-edge SNAPSHOT release.', notes,
}, },
]); ]);
const updates = await this.buildUpdates({
newVersion,
versionsMap,
changelogEntry: notes,
isSnapshot: true,
});
return { return {
title: pullRequestTitle, title: pullRequestTitle,
body: pullRequestBody, body: pullRequestBody,
updates: [ updates,
{
path: this.addPath('versions.txt'),
createIfMissing: false,
updater: new versions_manifest_1.VersionsManifest({
version: newVersion,
versionsMap,
}),
},
],
labels: [], labels: [],
headRefName: branchName.toString(), headRefName: branchName.toString(),
version: newVersion, version: newVersion,
@@ -71171,6 +71190,7 @@ class JavaYoshi extends base_1.BaseStrategy {
updater: new java_update_1.JavaUpdate({ updater: new java_update_1.JavaUpdate({
version, version,
versionsMap, versionsMap,
isSnapshot: options.isSnapshot,
}), }),
}); });
}); });
@@ -71182,6 +71202,7 @@ class JavaYoshi extends base_1.BaseStrategy {
updater: new java_update_1.JavaUpdate({ updater: new java_update_1.JavaUpdate({
version, version,
versionsMap, versionsMap,
isSnapshot: options.isSnapshot,
}), }),
}); });
}); });
@@ -71193,6 +71214,7 @@ class JavaYoshi extends base_1.BaseStrategy {
updater: new java_update_1.JavaUpdate({ updater: new java_update_1.JavaUpdate({
version, version,
versionsMap, versionsMap,
isSnapshot: options.isSnapshot,
}), }),
}); });
}); });
@@ -71203,17 +71225,20 @@ class JavaYoshi extends base_1.BaseStrategy {
updater: new java_update_1.JavaUpdate({ updater: new java_update_1.JavaUpdate({
version, version,
versionsMap, versionsMap,
isSnapshot: options.isSnapshot,
}), }),
}); });
}); });
updates.push({ if (!options.isSnapshot) {
path: this.addPath(this.changelogPath), updates.push({
createIfMissing: true, path: this.addPath(this.changelogPath),
updater: new changelog_1.Changelog({ createIfMissing: true,
version, updater: new changelog_1.Changelog({
changelogEntry: options.changelogEntry, version,
}), changelogEntry: options.changelogEntry,
}); }),
});
}
return updates; return updates;
} }
async updateVersionsMap(versionsMap, conventionalCommits) { async updateVersionsMap(versionsMap, conventionalCommits) {
@@ -71675,6 +71700,23 @@ class PHPYoshi extends base_1.BaseStrategy {
draft: draft !== null && draft !== void 0 ? draft : false, draft: draft !== null && draft !== void 0 ? draft : false,
}; };
} }
async parsePullRequestBody(pullRequestBody) {
const body = pull_request_body_1.PullRequestBody.parse(pullRequestBody);
if (!body) {
return undefined;
}
const component = await this.getComponent();
const notes = body.releaseData
.map(release => {
var _a;
return `<details><summary>${release.component}: ${(_a = release.version) === null || _a === void 0 ? void 0 : _a.toString()}</summary>\n\n${release.notes}\n</details>`;
})
.join('\n\n');
return new pull_request_body_1.PullRequestBody([{ component, notes }], {
footer: body.footer,
header: body.header,
});
}
async buildUpdates(options) { async buildUpdates(options) {
const updates = []; const updates = [];
const version = options.newVersion; const version = options.newVersion;
@@ -71972,6 +72014,7 @@ const fs_1 = __nccwpck_require__(35747);
const path_1 = __nccwpck_require__(85622); const path_1 = __nccwpck_require__(85622);
const manifest_1 = __nccwpck_require__(31999); const manifest_1 = __nccwpck_require__(31999);
const logger_1 = __nccwpck_require__(68809); const logger_1 = __nccwpck_require__(68809);
const pull_request_body_1 = __nccwpck_require__(70774);
const CHANGELOG_SECTIONS = [ const CHANGELOG_SECTIONS = [
{ type: 'feat', section: 'Features' }, { type: 'feat', section: 'Features' },
{ type: 'fix', section: 'Bug Fixes' }, { type: 'fix', section: 'Bug Fixes' },
@@ -72027,10 +72070,9 @@ class RubyYoshi extends base_1.BaseStrategy {
}); });
return commits; return commits;
} }
async buildReleaseNotes(conventionalCommits, newVersion, newVersionTag, latestRelease) { async buildPullRequestBody(component, newVersion, releaseNotesBody, conventionalCommits, latestRelease) {
const releaseNotes = await super.buildReleaseNotes(conventionalCommits, newVersion, newVersionTag, latestRelease);
if (!latestRelease) { if (!latestRelease) {
return releaseNotes; return await super.buildPullRequestBody(component, newVersion, releaseNotesBody, conventionalCommits, latestRelease);
} }
// summarize the commits that landed: // summarize the commits that landed:
let summary = '### Commits since last release:\n\n'; let summary = '### Commits since last release:\n\n';
@@ -72062,7 +72104,15 @@ class RubyYoshi extends base_1.BaseStrategy {
summary += `${file}\n`; summary += `${file}\n`;
}); });
summary += `</code></pre>\n[Compare Changes](https://github.com/${repoUrl}/compare/${latestRelease.sha}...HEAD)\n`; summary += `</code></pre>\n[Compare Changes](https://github.com/${repoUrl}/compare/${latestRelease.sha}...HEAD)\n`;
return releaseNotes + `\n---\n${summary}`; return new pull_request_body_1.PullRequestBody([
{
component,
version: newVersion,
notes: releaseNotesBody,
},
], {
extra: summary,
});
} }
} }
exports.RubyYoshi = RubyYoshi; exports.RubyYoshi = RubyYoshi;
@@ -72169,6 +72219,7 @@ const base_1 = __nccwpck_require__(95081);
const version_1 = __nccwpck_require__(17348); const version_1 = __nccwpck_require__(17348);
class Rust extends base_1.BaseStrategy { class Rust extends base_1.BaseStrategy {
async buildUpdates(options) { async buildUpdates(options) {
var _a, _b, _c;
const updates = []; const updates = [];
const version = options.newVersion; const version = options.newVersion;
updates.push({ updates.push({
@@ -72179,30 +72230,62 @@ class Rust extends base_1.BaseStrategy {
changelogEntry: options.changelogEntry, changelogEntry: options.changelogEntry,
}), }),
}); });
const workspaceManifest = await this.getWorkspaceManifest(); const workspaceManifest = await this.getPackageManifest();
const manifestPaths = []; const versionsMap = new Map();
let lockPath; if ((_a = workspaceManifest === null || workspaceManifest === void 0 ? void 0 : workspaceManifest.workspace) === null || _a === void 0 ? void 0 : _a.members) {
if (workspaceManifest &&
workspaceManifest.workspace &&
workspaceManifest.workspace.members) {
const members = workspaceManifest.workspace.members; const members = workspaceManifest.workspace.members;
logger_1.logger.info(`found workspace with ${members.length} members, upgrading all`); if ((_b = workspaceManifest.package) === null || _b === void 0 ? void 0 : _b.name) {
for (const member of members) { versionsMap.set(workspaceManifest.package.name, version);
manifestPaths.push(`${member}/Cargo.toml`);
} }
lockPath = 'Cargo.lock'; else {
logger_1.logger.warn('No workspace manifest package name found');
}
logger_1.logger.info(`found workspace with ${members.length} members, upgrading all`);
// Collect submodule names to update
const manifestsByPath = new Map();
for (const member of members) {
const manifestPath = `${member}/Cargo.toml`;
const manifestContent = await this.getContent(manifestPath);
if (!manifestContent) {
logger_1.logger.warn(`member ${member} declared but did not find Cargo.toml`);
continue;
}
const manifest = common_1.parseCargoManifest(manifestContent.parsedContent);
manifestsByPath.set(manifestPath, manifestContent);
if (!((_c = manifest.package) === null || _c === void 0 ? void 0 : _c.name)) {
logger_1.logger.warn(`member ${member} has no package name`);
continue;
}
versionsMap.set(manifest.package.name, version);
}
logger_1.logger.info(`updating ${manifestsByPath.size} submodules`);
logger_1.logger.debug('versions map:', versionsMap);
for (const [manifestPath, manifestContent] of manifestsByPath) {
updates.push({
path: this.addPath(manifestPath),
createIfMissing: false,
cachedFileContents: manifestContent,
updater: new cargo_toml_1.CargoToml({
version,
versionsMap,
}),
});
}
// Update root Cargo.toml
updates.push({
path: this.addPath('Cargo.toml'),
createIfMissing: false,
updater: new cargo_toml_1.CargoToml({
version,
versionsMap,
}),
});
} }
else { else {
const manifestPath = this.addPath('Cargo.toml'); const manifestPath = this.addPath('Cargo.toml');
logger_1.logger.info(`single crate found, updating ${manifestPath}`); logger_1.logger.info(`single crate found, updating ${manifestPath}`);
manifestPaths.push(manifestPath);
lockPath = this.addPath('Cargo.lock');
}
const versionsMap = new Map();
versionsMap.set(this.component || '', version);
for (const path of manifestPaths) {
updates.push({ updates.push({
path, path: manifestPath,
createIfMissing: false, createIfMissing: false,
updater: new cargo_toml_1.CargoToml({ updater: new cargo_toml_1.CargoToml({
version, version,
@@ -72211,7 +72294,7 @@ class Rust extends base_1.BaseStrategy {
}); });
} }
updates.push({ updates.push({
path: lockPath, path: this.addPath('Cargo.lock'),
createIfMissing: false, createIfMissing: false,
updater: new cargo_lock_1.CargoLock({ updater: new cargo_lock_1.CargoLock({
version, version,
@@ -72236,28 +72319,21 @@ class Rust extends base_1.BaseStrategy {
*/ */
async getPackageManifest() { async getPackageManifest() {
if (this.packageManifest === undefined) { if (this.packageManifest === undefined) {
this.packageManifest = await this.getManifest(this.addPath('Cargo.toml')); this.packageManifest = await this.getManifest('Cargo.toml');
} }
return this.packageManifest; return this.packageManifest;
} }
/** async getContent(path) {
* @returns the workspace's manifest, ie. `Cargo.toml` (top-level)
*/
async getWorkspaceManifest() {
if (this.workspaceManifest === undefined) {
this.workspaceManifest = await this.getManifest('Cargo.toml');
}
return this.workspaceManifest;
}
async getManifest(path) {
let content;
try { try {
content = await this.github.getFileContentsOnBranch(path, this.targetBranch); return await this.github.getFileContentsOnBranch(this.addPath(path), this.targetBranch);
} }
catch (e) { catch (e) {
return null; return null;
} }
return common_1.parseCargoManifest(content.parsedContent); }
async getManifest(path) {
const content = await this.getContent(path);
return content ? common_1.parseCargoManifest(content.parsedContent) : null;
} }
} }
exports.Rust = Rust; exports.Rust = Rust;
@@ -72291,6 +72367,11 @@ const changelog_1 = __nccwpck_require__(3325);
const base_1 = __nccwpck_require__(95081); const base_1 = __nccwpck_require__(95081);
const default_1 = __nccwpck_require__(69995); const default_1 = __nccwpck_require__(69995);
class Simple extends base_1.BaseStrategy { class Simple extends base_1.BaseStrategy {
constructor(options) {
var _a;
super(options);
this.versionFile = (_a = options.versionFile) !== null && _a !== void 0 ? _a : 'version.txt';
}
async buildUpdates(options) { async buildUpdates(options) {
const updates = []; const updates = [];
const version = options.newVersion; const version = options.newVersion;
@@ -72303,7 +72384,7 @@ class Simple extends base_1.BaseStrategy {
}), }),
}); });
updates.push({ updates.push({
path: this.addPath('version.txt'), path: this.addPath(this.versionFile),
createIfMissing: false, createIfMissing: false,
updater: new default_1.DefaultUpdater({ updater: new default_1.DefaultUpdater({
version, version,
@@ -72465,7 +72546,7 @@ exports.Changelog = Changelog;
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CompositeUpdater = void 0; exports.mergeUpdates = exports.CompositeUpdater = void 0;
/** /**
* The CompositeUpdater chains 0...n updaters and updates * The CompositeUpdater chains 0...n updaters and updates
* the content in order. * the content in order.
@@ -72491,6 +72572,29 @@ class CompositeUpdater {
} }
} }
exports.CompositeUpdater = CompositeUpdater; exports.CompositeUpdater = CompositeUpdater;
function mergeUpdates(updates) {
const updatesByPath = {};
for (const update of updates) {
if (updatesByPath[update.path]) {
updatesByPath[update.path].push(update);
}
else {
updatesByPath[update.path] = [update];
}
}
const newUpdates = [];
for (const path in updatesByPath) {
const update = updatesByPath[path];
const updaters = update.map(u => u.updater);
newUpdates.push({
path,
createIfMissing: update[0].createIfMissing,
updater: updaters.length === 1 ? updaters[0] : new CompositeUpdater(...updaters),
});
}
return newUpdates;
}
exports.mergeUpdates = mergeUpdates;
//# sourceMappingURL=composite.js.map //# sourceMappingURL=composite.js.map
/***/ }), /***/ }),
@@ -72634,6 +72738,123 @@ exports.ElixirMixExs = ElixirMixExs;
/***/ }), /***/ }),
/***/ 96323:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Generic = void 0;
const default_1 = __nccwpck_require__(69995);
const logger_1 = __nccwpck_require__(68809);
const VERSION_REGEX = /(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)(-(?<preRelease>[\w.]+))?(\+(?<build>[-\w.]+))?/;
const SINGLE_VERSION_REGEX = /\b\d+\b/;
const INLINE_UPDATE_REGEX = /x-release-please-(?<scope>major|minor|patch|version)/;
const BLOCK_START_REGEX = /x-release-please-start-(?<scope>major|minor|patch|version)/;
const BLOCK_END_REGEX = /x-release-please-end/;
/**
* The Generic updater looks for well known patterns and replaces
* content. The well known patterns are:
*
* 1. `x-release-please-version` if this string is found on the line,
* then replace a semver-looking string on that line with the next
* version
* 2. `x-release-please-major` if this string is found on the line,
* then replace an integer looking value with the the next version's
* major
* 3. `x-release-please-minor` if this string is found on the line,
* then replace an integer looking value with the the next version's
* minor
* 4. `x-release-please-patch` if this string is found on the line,
* then replace an integer looking value with the the next version's
* patch
*
* You can also use a block-based replacement. Content between the
* opening `x-release-please-start-version` and `x-release-please-end` will
* be considered for version replacement. You can also open these blocks
* with `x-release-please-start-<major|minor|patch>` to replace single
* numbers
*/
class Generic extends default_1.DefaultUpdater {
/**
* Given initial file contents, return updated contents.
* @param {string} content The initial content
* @returns {string} The updated content
*/
updateContent(content) {
if (!content) {
return '';
}
const newLines = [];
let blockScope;
function replaceVersion(line, scope, version) {
switch (scope) {
case 'major':
newLines.push(line.replace(SINGLE_VERSION_REGEX, `${version.major}`));
return;
case 'minor':
newLines.push(line.replace(SINGLE_VERSION_REGEX, `${version.minor}`));
return;
case 'patch':
newLines.push(line.replace(SINGLE_VERSION_REGEX, `${version.patch}`));
return;
case 'version':
newLines.push(line.replace(VERSION_REGEX, version.toString()));
return;
default:
logger_1.logger.warn(`unknown block scope: ${scope}`);
newLines.push(line);
}
}
content.split(/\r?\n/).forEach(line => {
var _a, _b;
let match = line.match(INLINE_UPDATE_REGEX);
if (match) {
// replace inline versions
replaceVersion(line, (((_a = match.groups) === null || _a === void 0 ? void 0 : _a.scope) || 'version'), this.version);
}
else if (blockScope) {
// in a block, so try to replace versions
replaceVersion(line, blockScope, this.version);
if (line.match(BLOCK_END_REGEX)) {
blockScope = undefined;
}
}
else {
// look for block start line
match = line.match(BLOCK_START_REGEX);
if (match) {
if ((_b = match.groups) === null || _b === void 0 ? void 0 : _b.scope) {
blockScope = match.groups.scope;
}
else {
blockScope = 'version';
}
}
newLines.push(line);
}
});
return newLines.join('\n');
}
}
exports.Generic = Generic;
//# sourceMappingURL=generic.js.map
/***/ }),
/***/ 54988: /***/ 54988:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
@@ -72745,6 +72966,10 @@ const VERSION_REGEX = /\d+\.\d+\.\d+(-\w+(\.\d+)?)?(-SNAPSHOT)?/;
* or with a `{x-version-update-start:<component-name>}` and `{x-version-update-end}`. * or with a `{x-version-update-start:<component-name>}` and `{x-version-update-end}`.
*/ */
class JavaUpdate extends default_1.DefaultUpdater { class JavaUpdate extends default_1.DefaultUpdater {
constructor(options) {
super(options);
this.isSnapshot = !!options.isSnapshot;
}
/** /**
* Given initial file contents, return updated contents. * Given initial file contents, return updated contents.
* @param {string} content The initial content * @param {string} content The initial content
@@ -72759,7 +72984,7 @@ class JavaUpdate extends default_1.DefaultUpdater {
let blockPackageName = null; let blockPackageName = null;
content.split(/\r?\n/).forEach(line => { content.split(/\r?\n/).forEach(line => {
let match = line.match(INLINE_UPDATE_REGEX); let match = line.match(INLINE_UPDATE_REGEX);
if (match) { if (match && (!this.isSnapshot || match[2] === 'current')) {
const newVersion = this.versionsMap.get(match[1]); const newVersion = this.versionsMap.get(match[1]);
if (newVersion) { if (newVersion) {
newLines.push(line.replace(VERSION_REGEX, newVersion.toString())); newLines.push(line.replace(VERSION_REGEX, newVersion.toString()));
@@ -72782,7 +73007,7 @@ class JavaUpdate extends default_1.DefaultUpdater {
} }
else { else {
match = line.match(BLOCK_START_REGEX); match = line.match(BLOCK_START_REGEX);
if (match) { if (match && (!this.isSnapshot || match[2] === 'current')) {
blockPackageName = match[1]; blockPackageName = match[1];
} }
newLines.push(line); newLines.push(line);
@@ -73760,7 +73985,6 @@ class CargoToml extends default_1.DefaultUpdater {
* @returns {string} The updated content * @returns {string} The updated content
*/ */
updateContent(content) { updateContent(content) {
var _a;
let payload = content; let payload = content;
if (!this.versionsMap) { if (!this.versionsMap) {
throw new Error('updateContent called with no versions'); throw new Error('updateContent called with no versions');
@@ -73771,12 +73995,8 @@ class CargoToml extends default_1.DefaultUpdater {
logger_1.logger.error(msg); logger_1.logger.error(msg);
throw new Error(msg); throw new Error(msg);
} }
payload = toml_edit_1.replaceTomlValue(payload, ['package', 'version'], this.version.toString());
for (const [pkgName, pkgVersion] of this.versionsMap) { for (const [pkgName, pkgVersion] of this.versionsMap) {
if (parsed.package.name === pkgName) {
logger_1.logger.info(`updating own version from ${(_a = parsed.package) === null || _a === void 0 ? void 0 : _a.version} to ${pkgVersion}`);
payload = toml_edit_1.replaceTomlValue(payload, ['package', 'version'], pkgVersion.toString());
continue; // to next [pkgName, pkgVersion] pair
}
for (const depKind of common_1.DEP_KINDS) { for (const depKind of common_1.DEP_KINDS) {
const deps = parsed[depKind]; const deps = parsed[depKind];
if (!deps) { if (!deps) {
@@ -74407,6 +74627,7 @@ class PullRequestBody {
constructor(releaseData, options) { constructor(releaseData, options) {
this.header = (options === null || options === void 0 ? void 0 : options.header) || DEFAULT_HEADER; this.header = (options === null || options === void 0 ? void 0 : options.header) || DEFAULT_HEADER;
this.footer = (options === null || options === void 0 ? void 0 : options.footer) || DEFAULT_FOOTER; this.footer = (options === null || options === void 0 ? void 0 : options.footer) || DEFAULT_FOOTER;
this.extra = options === null || options === void 0 ? void 0 : options.extra;
this.releaseData = releaseData; this.releaseData = releaseData;
} }
static parse(body) { static parse(body) {
@@ -74446,7 +74667,7 @@ ${NOTES_DELIMITER}
${notes} ${notes}
${NOTES_DELIMITER} ${NOTES_DELIMITER}${this.extra ? `\n\n${this.extra}\n` : ''}
${this.footer}`; ${this.footer}`;
} }
} }
@@ -74470,7 +74691,7 @@ function splitBody(body) {
content, content,
}; };
} }
const SUMMARY_PATTERN = /^(?<component>.*): (?<version>\d+\.\d+\.\d+.*)$/; const SUMMARY_PATTERN = /^(?<component>.*[^:]):? (?<version>\d+\.\d+\.\d+.*)$/;
function extractMultipleReleases(notes) { function extractMultipleReleases(notes) {
const data = []; const data = [];
const root = node_html_parser_1.parse(notes); const root = node_html_parser_1.parse(notes);
@@ -89461,7 +89682,7 @@ module.exports = JSON.parse("{\"amp\":\"&\",\"apos\":\"'\",\"gt\":\">\",\"lt\":\
/***/ ((module) => { /***/ ((module) => {
"use strict"; "use strict";
module.exports = {"i8":"13.0.1"}; module.exports = {"i8":"13.3.1"};
/***/ }), /***/ }),