diff --git a/open-lens/package.json b/open-lens/package.json index d49e44a3bf..9dbce5e98e 100644 --- a/open-lens/package.json +++ b/open-lens/package.json @@ -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", diff --git a/package-lock.json b/package-lock.json index 35860dbc1d..afabbdd4d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/packages/core/package.json b/packages/core/package.json index 6913a30882..cabd7896f7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -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" diff --git a/packages/extension-api/package.json b/packages/extension-api/package.json index 10505a42ea..5ca21895ac 100644 --- a/packages/extension-api/package.json +++ b/packages/extension-api/package.json @@ -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", diff --git a/packages/legacy-extension-example/package.json b/packages/legacy-extension-example/package.json index 21e9811e8c..fedc55d1e8 100644 --- a/packages/legacy-extension-example/package.json +++ b/packages/legacy-extension-example/package.json @@ -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", diff --git a/packages/release-tool/package.json b/packages/release-tool/package.json index 12a91ddbea..5590b5a9ab 100644 --- a/packages/release-tool/package.json +++ b/packages/release-tool/package.json @@ -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, diff --git a/packages/release-tool/src/index.ts b/packages/release-tool/src/index.ts index 7d37812708..006bf2aea6 100755 --- a/packages/release-tool/src/index.ts +++ b/packages/release-tool/src/index.ts @@ -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 { } async function getCurrentBranch(): Promise { - return (await exec("git branch --show-current")).stdout.trim(); + return (await execFile("git", ["branch", "--show-current"])).stdout.trim(); } async function getAbsolutePathToRepoRoot(): Promise { - return (await exec("git rev-parse --show-toplevel")).stdout.trim(); + return (await execFile("git", ["rev-parse", "--show-toplevel"])).stdout.trim(); } async function fetchAllGitTags(): Promise { 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 { 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 { } async function pickRelevantPrs(prs: ExtendedGithubPrData[], isMasterBranch: boolean): Promise { - 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 { 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) {