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

View File

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

View File

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

View File

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

View File

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

View File

@ -14,30 +14,27 @@ import { promisify } from "util";
import { Octokit } from "@octokit/core"; import { Octokit } from "@octokit/core";
import type { components } from "@octokit/openapi-types"; import type { components } from "@octokit/openapi-types";
const isDebug = process.env.DEBUG === "true";
const debug = isDebug ? console.debug : () => {};
type SemVer = semver.SemVer; type SemVer = semver.SemVer;
const { SemVer } = semver; const { SemVer } = semver;
const _exec = promisify(child_process.exec);
const _execFile = promisify(child_process.execFile); 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) => { const execFile = ((file, ...rest) => {
if (Array.isArray(rest[0])) { if (Array.isArray(rest[0])) {
console.log("EXEC-FILE", file, rest[0]); debug("EXEC-FILE", file, rest[0]);
} else { } else {
console.log("EXEC-FILE", file); debug("EXEC-FILE", file);
} }
return _execFile(file, ...rest as [any, any]); return _execFile(file, ...rest as [any, any]);
}) as typeof _execFile; }) as typeof _execFile;
const spawn = ((file, ...args) => { const spawn = ((file, ...args) => {
console.log("SPAWN", file); debug("SPAWN", file);
return _spawn(file, ...args as any[]); return _spawn(file, ...args as any[]);
}) as typeof _spawn; }) as typeof _spawn;
@ -75,17 +72,17 @@ interface ExtendedGithubPrData extends Omit<GithubPrData, "mergedAt"> {
} }
async function getCurrentBranch(): Promise<string> { 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> { 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[]> { async function fetchAllGitTags(): Promise<string[]> {
await execFile("git", ["fetch", "--tags", "--force"]); 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 return stdout
.split(/\r?\n/) .split(/\r?\n/)
@ -156,10 +153,14 @@ function formatSemverForMilestone(version: SemVer): string {
return `${version.major}.${version.minor}.${version.patch}`; return `${version.major}.${version.minor}.${version.patch}`;
} }
function formatVersionForPickingPrs(version: SemVer): string { function formatVersionForPickingPrs(version: SemVer, isMasterBranch: boolean): string {
if (isMasterBranch) {
return `${version.major}.${version.minor}.${version.patch}`; return `${version.major}.${version.minor}.${version.patch}`;
} }
return `${version.major}.${version.minor}.${version.patch+1}`;
}
async function deleteAndClosePreviousReleaseBranch(prBase: string, prBranch: string) { async function deleteAndClosePreviousReleaseBranch(prBase: string, prBranch: string) {
const pullRequests = await octokit.request("GET /repos/{owner}/{repo}/pulls", { const pullRequests = await octokit.request("GET /repos/{owner}/{repo}/pulls", {
owner: "lensapp", owner: "lensapp",
@ -279,7 +280,7 @@ function sortExtendedGithubPrData(left: ExtendedGithubPrData, right: ExtendedGit
async function getRelevantPRs(previousReleasedVersion: string, baseBranch: string): Promise<ExtendedGithubPrData[]> { async function getRelevantPRs(previousReleasedVersion: string, baseBranch: string): Promise<ExtendedGithubPrData[]> {
console.log(`retrieving previous 200 PRs from ${baseBranch}...`); 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", { const mergedPrsDataPromises = [1, 2, 3, 4, 5].map(page => octokit.request("GET /repos/{owner}/{repo}/pulls", {
owner: "lensapp", owner: "lensapp",
repo: "lens", repo: "lens",
@ -299,7 +300,12 @@ async function getRelevantPRs(previousReleasedVersion: string, baseBranch: strin
const relevantPrsQuery = await Promise.all( const relevantPrsQuery = await Promise.all(
milestoneRelevantPrs.map(async pr => ({ milestoneRelevantPrs.map(async pr => ({
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[]> { 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") { if (isMasterBranch || process.env.PICK_ALL_PRS === "true") {
return prs; return prs;
} }
@ -492,6 +494,15 @@ async function createRelease(): Promise<void> {
relevantPrs.push(...await getRelevantPRs(previousReleasedVersion, prBase)); 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); const selectedPrs = await pickRelevantPrs(relevantPrs, isMasterBranch);
if (selectedPrs.length === 0) { if (selectedPrs.length === 0) {