1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Release 6.5.1

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-05-29 08:29:12 -04:00
parent cde5cfef4b
commit ef9250286e
7 changed files with 51 additions and 44 deletions

View File

@ -4,7 +4,7 @@
"productName": "OpenLens",
"description": "OpenLens - Open Source IDE for Kubernetes",
"homepage": "https://github.com/lensapp/lens",
"version": "6.5.0",
"version": "6.5.1",
"repository": {
"type": "git",
"url": "git+https://github.com/lensapp/lens.git"
@ -184,7 +184,7 @@
"@k8slens/application-for-electron-main": "^6.5.0",
"@k8slens/button": "^1.0.0",
"@k8slens/cluster-settings": "^6.5.0",
"@k8slens/core": "^6.5.0",
"@k8slens/core": "^6.5.1",
"@k8slens/ensure-binaries": "^6.5.0",
"@k8slens/error-boundary": "^1.0.0",
"@k8slens/event-emitter": "^1.0.0",
@ -192,7 +192,7 @@
"@k8slens/keyboard-shortcuts": "^1.0.0",
"@k8slens/kube-object": "^1.0.0",
"@k8slens/kubectl-versions": "^1.0.0",
"@k8slens/legacy-extension-example": "^1.0.0",
"@k8slens/legacy-extension-example": "^1.0.1",
"@k8slens/legacy-extensions": "^1.0.0",
"@k8slens/legacy-global-di": "^1.0.0",
"@k8slens/list-layout": "^1.0.0",

24
package-lock.json generated
View File

@ -3833,10 +3833,6 @@
"resolved": "packages/utility-features/startable-stoppable",
"link": true
},
"node_modules/@k8slens/table-tokens": {
"resolved": "packages/table",
"link": true
},
"node_modules/@k8slens/test-utils": {
"resolved": "packages/utility-features/test-utils",
"link": true
@ -33978,7 +33974,7 @@
}
},
"open-lens": {
"version": "6.5.0",
"version": "6.5.1",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@ -33989,7 +33985,7 @@
"@k8slens/application-for-electron-main": "^6.5.0",
"@k8slens/button": "^1.0.0",
"@k8slens/cluster-settings": "^6.5.0",
"@k8slens/core": "^6.5.0",
"@k8slens/core": "^6.5.1",
"@k8slens/ensure-binaries": "^6.5.0",
"@k8slens/error-boundary": "^1.0.0",
"@k8slens/event-emitter": "^1.0.0",
@ -33997,7 +33993,7 @@
"@k8slens/keyboard-shortcuts": "^1.0.0",
"@k8slens/kube-object": "^1.0.0",
"@k8slens/kubectl-versions": "^1.0.0",
"@k8slens/legacy-extension-example": "^1.0.0",
"@k8slens/legacy-extension-example": "^1.0.1",
"@k8slens/legacy-extensions": "^1.0.0",
"@k8slens/legacy-global-di": "^1.0.0",
"@k8slens/list-layout": "^1.0.0",
@ -34195,7 +34191,7 @@
},
"packages/core": {
"name": "@k8slens/core",
"version": "6.5.0",
"version": "6.5.1",
"license": "MIT",
"devDependencies": {
"@async-fn/jest": "1.6.4",
@ -34328,7 +34324,6 @@
"@k8slens/routing": "^1.0.0-alpha.5",
"@k8slens/run-many": "^1.0.0-alpha.1",
"@k8slens/startable-stoppable": "^1.0.0-alpha.1",
"@k8slens/table-tokens": "^6.5.0-alpha.7",
"@k8slens/tooltip": "^1.0.0-alpha.5",
"@k8slens/utilities": "^1.0.0-alpha.1",
"@kubernetes/client-node": "^0.18.1",
@ -34455,10 +34450,10 @@
},
"packages/extension-api": {
"name": "@k8slens/extensions",
"version": "6.5.0",
"version": "6.5.1",
"license": "MIT",
"dependencies": {
"@k8slens/core": "6.5.0"
"@k8slens/core": "6.5.1"
},
"devDependencies": {
"@types/node": "^16.18.25",
@ -34972,10 +34967,10 @@
},
"packages/legacy-extension-example": {
"name": "@k8slens/legacy-extension-example",
"version": "1.0.0",
"version": "1.0.1",
"license": "MIT",
"devDependencies": {
"@k8slens/extensions": "^6.5.0",
"@k8slens/extensions": "^6.5.1",
"@types/node": "^16.18.25",
"typescript": "^4.9.5",
"webpack": "^5.81.0",
@ -35228,7 +35223,7 @@
},
"packages/release-tool": {
"name": "@k8slens/release-tool",
"version": "6.5.0",
"version": "6.5.1",
"license": "MIT",
"dependencies": {
"chalk": "^5.2.0",
@ -35312,6 +35307,7 @@
"packages/table": {
"name": "@k8slens/table-tokens",
"version": "6.5.0",
"extraneous": true,
"license": "MIT",
"devDependencies": {
"@k8slens/webpack": "^6.5.0",

View File

@ -3,7 +3,7 @@
"productName": "",
"description": "Lens Desktop Core",
"homepage": "https://github.com/lensapp/lens",
"version": "6.5.0",
"version": "6.5.1",
"repository": {
"type": "git",
"url": "git+https://github.com/lensapp/lens.git"

View File

@ -2,7 +2,7 @@
"name": "@k8slens/extensions",
"productName": "OpenLens extensions",
"description": "OpenLens - Open Source Kubernetes IDE: extensions",
"version": "6.5.0",
"version": "6.5.1",
"copyright": "© 2022 OpenLens Authors",
"license": "MIT",
"main": "dist/extension-api.js",
@ -25,7 +25,7 @@
"clean": "rimraf dist/"
},
"dependencies": {
"@k8slens/core": "6.5.0"
"@k8slens/core": "6.5.1"
},
"devDependencies": {
"@types/node": "^16.18.25",

View File

@ -2,7 +2,7 @@
"name": "@k8slens/legacy-extension-example",
"private": false,
"description": "An example bundled Lens extensions using the v1 API",
"version": "1.0.0",
"version": "1.0.1",
"type": "commonjs",
"files": [
"dist"
@ -36,7 +36,7 @@
"lint:fix": "lens-lint --fix"
},
"devDependencies": {
"@k8slens/extensions": "^6.5.0",
"@k8slens/extensions": "^6.5.1",
"@types/node": "^16.18.25",
"typescript": "^4.9.5",
"webpack": "^5.81.0",

View File

@ -1,6 +1,6 @@
{
"name": "@k8slens/release-tool",
"version": "6.5.0",
"version": "6.5.1",
"description": "Release tool for lens monorepo",
"license": "MIT",
"private": true,

View File

@ -14,30 +14,27 @@ import { promisify } from "util";
import { Octokit } from "@octokit/core";
import type { components } from "@octokit/openapi-types";
const isDebug = process.env.DEBUG === "true";
const debug = isDebug ? console.debug : () => {};
type SemVer = semver.SemVer;
const { SemVer } = semver;
const _exec = promisify(child_process.exec);
const _execFile = promisify(child_process.execFile);
const exec = ((cmd, ...args) => {
console.log("EXEC", cmd);
return _exec(cmd, ...args as any[]);
}) as typeof _exec;
const execFile = ((file, ...rest) => {
if (Array.isArray(rest[0])) {
console.log("EXEC-FILE", file, rest[0]);
debug("EXEC-FILE", file, rest[0]);
} else {
console.log("EXEC-FILE", file);
debug("EXEC-FILE", file);
}
return _execFile(file, ...rest as [any, any]);
}) as typeof _execFile;
const spawn = ((file, ...args) => {
console.log("SPAWN", file);
debug("SPAWN", file);
return _spawn(file, ...args as any[]);
}) as typeof _spawn;
@ -75,17 +72,17 @@ interface ExtendedGithubPrData extends Omit<GithubPrData, "mergedAt"> {
}
async function getCurrentBranch(): Promise<string> {
return (await exec("git branch --show-current")).stdout.trim();
return (await execFile("git", ["branch", "--show-current"])).stdout.trim();
}
async function getAbsolutePathToRepoRoot(): Promise<string> {
return (await exec("git rev-parse --show-toplevel")).stdout.trim();
return (await execFile("git", ["rev-parse", "--show-toplevel"])).stdout.trim();
}
async function fetchAllGitTags(): Promise<string[]> {
await execFile("git", ["fetch", "--tags", "--force"]);
const { stdout } = await exec("git tag --list", { encoding: "utf-8" });
const { stdout } = await execFile("git", ["tag", "--list"], { encoding: "utf-8" });
return stdout
.split(/\r?\n/)
@ -156,8 +153,12 @@ function formatSemverForMilestone(version: SemVer): string {
return `${version.major}.${version.minor}.${version.patch}`;
}
function formatVersionForPickingPrs(version: SemVer): string {
return `${version.major}.${version.minor}.${version.patch}`;
function formatVersionForPickingPrs(version: SemVer, isMasterBranch: boolean): string {
if (isMasterBranch) {
return `${version.major}.${version.minor}.${version.patch}`;
}
return `${version.major}.${version.minor}.${version.patch+1}`;
}
async function deleteAndClosePreviousReleaseBranch(prBase: string, prBranch: string) {
@ -279,7 +280,7 @@ function sortExtendedGithubPrData(left: ExtendedGithubPrData, right: ExtendedGit
async function getRelevantPRs(previousReleasedVersion: string, baseBranch: string): Promise<ExtendedGithubPrData[]> {
console.log(`retrieving previous 200 PRs from ${baseBranch}...`);
const milestone = formatVersionForPickingPrs(await getCurrentVersionOfSubPackage("core"));
const milestone = formatVersionForPickingPrs(await getCurrentVersionOfSubPackage("core"), baseBranch === "master");
const mergedPrsDataPromises = [1, 2, 3, 4, 5].map(page => octokit.request("GET /repos/{owner}/{repo}/pulls", {
owner: "lensapp",
repo: "lens",
@ -299,7 +300,12 @@ async function getRelevantPRs(previousReleasedVersion: string, baseBranch: strin
const relevantPrsQuery = await Promise.all(
milestoneRelevantPrs.map(async pr => ({
pr,
stdout: (await exec(`git tag v${previousReleasedVersion} --no-contains ${pr.merge_commit_sha}`)).stdout,
stdout: (await execFile("git", [
"tag",
`v${previousReleasedVersion}`,
"--no-contains",
pr.merge_commit_sha as string,
])).stdout,
})),
);
@ -450,10 +456,6 @@ async function cherryPickCommits(prs: ExtendedGithubPrData[]): Promise<void> {
}
async function pickRelevantPrs(prs: ExtendedGithubPrData[], isMasterBranch: boolean): Promise<ExtendedGithubPrData[]> {
if (prs.length === 0) {
throw new Error("Cannot pick relevant PRs for release if there are none. Are the milestones on github correct?");
}
if (isMasterBranch || process.env.PICK_ALL_PRS === "true") {
return prs;
}
@ -492,6 +494,15 @@ async function createRelease(): Promise<void> {
relevantPrs.push(...await getRelevantPRs(previousReleasedVersion, prBase));
}
if (relevantPrs.length === 0) {
console.error(chalk.bold("No PRs have been found relating to the previous release, stopping..."), {
previousReleasedVersion,
prBase,
currentK8slensCoreVersion,
});
process.exit(1);
}
const selectedPrs = await pickRelevantPrs(relevantPrs, isMasterBranch);
if (selectedPrs.length === 0) {