diff --git a/lerna.json b/lerna.json index 00d73a25c8..630f0d68c0 100644 --- a/lerna.json +++ b/lerna.json @@ -4,7 +4,7 @@ "packages": [ "packages/*" ], - "version": "6.4.6", + "version": "6.4.7", "npmClient": "yarn", "npmClientArgs": [ "--network-timeout=100000" diff --git a/packages/core/package.json b/packages/core/package.json index 535c6e2d2f..4d18ce9c18 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.4.6", + "version": "6.4.7", "repository": { "type": "git", "url": "git+https://github.com/lensapp/lens.git" diff --git a/packages/core/src/extensions/renderer-api/components.ts b/packages/core/src/extensions/renderer-api/components.ts index e4102433bf..8d2bb6840a 100644 --- a/packages/core/src/extensions/renderer-api/components.ts +++ b/packages/core/src/extensions/renderer-api/components.ts @@ -106,6 +106,8 @@ export { type MonacoEditorProps, type MonacoEditorId, type MonacoTheme, type MonacoCustomTheme, } from "../../renderer/components/monaco-editor"; +export * from "../../renderer/components/resource-metrics/resource-metrics"; +export * from "../../renderer/components/+workloads-pods/pod-charts"; /** * @deprecated Use `Renderer.Navigation.getDetailsUrl` diff --git a/packages/core/src/features/application-update/__snapshots__/installing-update.test.ts.snap b/packages/core/src/features/application-update/__snapshots__/installing-update.test.ts.snap index 0b32c94831..cd0d55e25f 100644 --- a/packages/core/src/features/application-update/__snapshots__/installing-update.test.ts.snap +++ b/packages/core/src/features/application-update/__snapshots__/installing-update.test.ts.snap @@ -856,6 +856,601 @@ exports[`installing update when started when user checks for updates when new up `; exports[`installing update when started when user checks for updates when new update is discovered when download fails renders 1`] = ` + +
+
+
+
+
+ + + home + + +
+
+
+ + + arrow_back + + +
+
+
+ + + arrow_forward + + +
+
+
+
+
+
+
+
+ +
+
+

+ Welcome to some-product-name! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Forums + + . +

+ +
+
+
+
+
+
+
+
+
+
+
+ Ca +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + arrow_left + + +
+
+ 1 +
+
+ + + arrow_right + + +
+
+
+
+
+
+
+
+
+ +`; + +exports[`installing update when started when user checks for updates when new update is discovered when download succeeds given checking for updates again when check resolves with different update that was previously downloaded when download resolves successfully renders 1`] = ` + +
+
+
+
+
+ + + home + + +
+
+
+ + + arrow_back + + +
+
+
+ + + arrow_forward + + +
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+

+ Welcome to some-product-name! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Forums + + . +

+ +
+
+
+
+
+
+
+
+
+
+
+ Ca +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + arrow_left + + +
+
+ 1 +
+
+ + + arrow_right + + +
+
+
+
+
+
+
+
+
+ +`; + +exports[`installing update when started when user checks for updates when new update is discovered when download succeeds given checking for updates again when check resolves with same update that is already downloaded renders 1`] = `
-
-
- -
diff --git a/packages/core/src/features/application-update/installing-update.test.ts b/packages/core/src/features/application-update/installing-update.test.ts index 81529a851f..50e18be083 100644 --- a/packages/core/src/features/application-update/installing-update.test.ts +++ b/packages/core/src/features/application-update/installing-update.test.ts @@ -18,10 +18,11 @@ import setUpdateOnQuitInjectable from "../../main/electron-app/features/set-upda import processCheckingForUpdatesInjectable from "./main/process-checking-for-updates.injectable"; import { testUsingFakeTime } from "../../common/test-utils/use-fake-time"; import staticFilesDirectoryInjectable from "../../common/vars/static-files-directory.injectable"; +import electronQuitAndInstallUpdateInjectable from "../../main/electron-app/features/electron-quit-and-install-update.injectable"; describe("installing update", () => { let builder: ApplicationBuilder; - let quitAndInstallUpdateMock: jest.Mock; + let electronQuitAndInstallUpdateMock: jest.Mock; let checkForPlatformUpdatesMock: AsyncFnMock; let downloadPlatformUpdateMock: AsyncFnMock; let setUpdateOnQuitMock: jest.Mock; @@ -32,7 +33,7 @@ describe("installing update", () => { builder = getApplicationBuilder(); builder.beforeApplicationStart((mainDi) => { - quitAndInstallUpdateMock = jest.fn(); + electronQuitAndInstallUpdateMock = jest.fn(); checkForPlatformUpdatesMock = asyncFn(); downloadPlatformUpdateMock = asyncFn(); setUpdateOnQuitMock = jest.fn(); @@ -52,8 +53,8 @@ describe("installing update", () => { ); mainDi.override( - quitAndInstallUpdateInjectable, - () => quitAndInstallUpdateMock, + electronQuitAndInstallUpdateInjectable, + () => electronQuitAndInstallUpdateMock, ); mainDi.override(electronUpdaterIsActiveInjectable, () => true); @@ -64,6 +65,7 @@ describe("installing update", () => { describe("when started", () => { let rendered: RenderResult; let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>; + let quitAndInstallUpdate: () => void; beforeEach(async () => { rendered = await builder.render(); @@ -71,6 +73,10 @@ describe("installing update", () => { processCheckingForUpdates = builder.mainDi.inject( processCheckingForUpdatesInjectable, ); + + quitAndInstallUpdate = builder.mainDi.inject( + quitAndInstallUpdateInjectable, + ); }); it("renders", () => { @@ -155,7 +161,7 @@ describe("installing update", () => { }); it("does not quit and install update yet", () => { - expect(quitAndInstallUpdateMock).not.toHaveBeenCalled(); + expect(electronQuitAndInstallUpdateMock).not.toHaveBeenCalled(); }); it("still shows normal tray icon", () => { @@ -167,6 +173,12 @@ describe("installing update", () => { it("renders", () => { expect(rendered.baseElement).toMatchSnapshot(); }); + + it("does not show the update button", () => { + const button = rendered.queryByTestId("update-button"); + + expect(button).not.toBeInTheDocument(); + }); }); describe("when download succeeds", () => { @@ -175,7 +187,7 @@ describe("installing update", () => { }); it("does not quit and install update yet", () => { - expect(quitAndInstallUpdateMock).not.toHaveBeenCalled(); + expect(electronQuitAndInstallUpdateMock).not.toHaveBeenCalled(); }); it("shows tray icon for update being available", () => { @@ -218,6 +230,26 @@ describe("installing update", () => { "/some-static-files-directory/build/tray/trayIconUpdateAvailableTemplate.png", ); }); + + it("does not quit and install update yet", () => { + expect(electronQuitAndInstallUpdateMock).not.toHaveBeenCalled(); + }); + + it("renders", () => { + expect(rendered.baseElement).toMatchSnapshot(); + }); + + it("shows the update button", () => { + const button = rendered.getByTestId("update-button"); + + expect(button).toBeInTheDocument(); + }); + + it("when triggering the update, quits and installs the update", () => { + quitAndInstallUpdate(); + + expect(electronQuitAndInstallUpdateMock).toHaveBeenCalled(); + }); }); describe("when check resolves with different update that was previously downloaded", () => { @@ -237,6 +269,45 @@ describe("installing update", () => { "/some-static-files-directory/build/tray/trayIconCheckingForUpdatesTemplate.png", ); }); + + it("still shows the update button", () => { + const button = rendered.getByTestId("update-button"); + + expect(button).toBeInTheDocument(); + }); + + describe("when download resolves successfully", () => { + beforeEach(async () => { + await downloadPlatformUpdateMock.resolve({ downloadWasSuccessful: true }); + }); + + it("still shows the update button", () => { + const button = + rendered.getByTestId("update-button"); + + expect(button).toBeInTheDocument(); + }); + + it("does not quit and install update yet", () => { + expect(electronQuitAndInstallUpdateMock).not.toHaveBeenCalled(); + }); + + it("shows tray icon for update being available", () => { + expect(builder.tray.getIconPath()).toBe( + "/some-static-files-directory/build/tray/trayIconUpdateAvailableTemplate.png", + ); + }); + + it("renders", () => { + expect(rendered.baseElement).toMatchSnapshot(); + }); + + it("when triggering the update, quits and installs the update", () => { + quitAndInstallUpdate(); + + expect(electronQuitAndInstallUpdateMock).toHaveBeenCalled(); + }); + }); }); }); }); diff --git a/packages/core/src/features/application-update/main/download-update/download-update.injectable.ts b/packages/core/src/features/application-update/main/download-update/download-update.injectable.ts index e9019dc7b2..662a2b272d 100644 --- a/packages/core/src/features/application-update/main/download-update/download-update.injectable.ts +++ b/packages/core/src/features/application-update/main/download-update/download-update.injectable.ts @@ -40,12 +40,12 @@ const downloadUpdateInjectable = getInjectable({ if (!downloadWasSuccessful) { progressOfUpdateDownload.set({ percentage: 0, failed: "Download of update failed" }); discoveredVersionState.set(null); + } else { + const currentDateTime = getCurrentDateTime(); + + updateDownloadedDate.set(currentDateTime); } - const currentDateTime = getCurrentDateTime(); - - updateDownloadedDate.set(currentDateTime); - downloadingUpdateState.set(false); }); diff --git a/packages/core/src/renderer/components/cluster-manager/cluster-manager.scss b/packages/core/src/renderer/components/cluster-manager/cluster-manager.scss index 7644d1f4d3..4b633af9f7 100644 --- a/packages/core/src/renderer/components/cluster-manager/cluster-manager.scss +++ b/packages/core/src/renderer/components/cluster-manager/cluster-manager.scss @@ -53,6 +53,7 @@ &.hidden { opacity: 0; pointer-events: none; + visibility: hidden; } } } diff --git a/packages/extension-api/package.json b/packages/extension-api/package.json index 115c215aeb..ae638adcdc 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.4.6", + "version": "6.4.7", "copyright": "© 2022 OpenLens Authors", "license": "MIT", "main": "dist/extension-api.js", @@ -26,7 +26,7 @@ "prepare:dev": "yarn run build" }, "dependencies": { - "@k8slens/core": "^6.4.6" + "@k8slens/core": "^6.4.7" }, "devDependencies": { "@types/node": "^16.18.6", diff --git a/packages/open-lens/package.json b/packages/open-lens/package.json index 4d591961d0..182372518e 100644 --- a/packages/open-lens/package.json +++ b/packages/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.4.6", + "version": "6.4.7", "repository": { "type": "git", "url": "git+https://github.com/lensapp/lens.git" @@ -192,7 +192,7 @@ } }, "dependencies": { - "@k8slens/core": "^6.4.6", + "@k8slens/core": "^6.4.7", "@k8slens/ensure-binaries": "^6.4.0-beta.16", "@k8slens/generate-tray-icons": "^6.4.0-beta.16", "@ogre-tools/fp": "^12.0.1", diff --git a/packages/open-lens/templates/create-resource/StatefulSet.yaml b/packages/open-lens/templates/create-resource/StatefulSet.yaml index 314c239fc8..05d8a54838 100644 --- a/packages/open-lens/templates/create-resource/StatefulSet.yaml +++ b/packages/open-lens/templates/create-resource/StatefulSet.yaml @@ -16,7 +16,7 @@ spec: terminationGracePeriodSeconds: 10 containers: - name: nginx - image: k8s.gcr.io/nginx-slim:0.8 + image: registry.k8s.io/nginx-slim:0.8 ports: - containerPort: 80 name: web diff --git a/packages/release-tool/package.json b/packages/release-tool/package.json index 24afa94c26..5d8f1474e6 100644 --- a/packages/release-tool/package.json +++ b/packages/release-tool/package.json @@ -1,6 +1,6 @@ { "name": "@k8slens/release-tool", - "version": "6.4.3", + "version": "6.4.7", "description": "Release tool for lens monorepo", "main": "dist/index.mjs", "license": "MIT", diff --git a/packages/release-tool/src/index.ts b/packages/release-tool/src/index.ts index 3cb3a6b9f2..33dc8fd874 100755 --- a/packages/release-tool/src/index.ts +++ b/packages/release-tool/src/index.ts @@ -120,7 +120,7 @@ function findClosestVersionTagLessThanVersion(tags: string[], version: SemVer): .filter(isDefined) .filter(version => !version.prerelease.includes("cron")) .sort(semver.rcompare) - .filter(version => semver.lte(version, version)); + .filter(v => semver.lte(v, version)); assert(lessThanTags.length > 0, `Cannot find version tag less than ${version.format()}`); @@ -192,7 +192,7 @@ function sortExtendedGithubPrData(left: ExtendedGithubPrData, right: ExtendedGit } async function getRelevantPRs(previousReleasedVersion: string, baseBranch: string): Promise { - console.log("retrieving previous 200 PRs..."); + console.log(`retrieving previous 200 PRs from ${baseBranch} for ${previousReleasedVersion}...`); const milestone = formatVersionForPickingPrs(await getCurrentVersionOfSubPackage("core")); const getMergedPrsArgs = [