From a046e15c44239227737364e5aa38199ef104d9c1 Mon Sep 17 00:00:00 2001 From: hverlin Date: Thu, 28 Nov 2024 23:21:40 -0800 Subject: [PATCH 1/3] feat: skip confirmation prompt for mise self-update --- src/miseService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miseService.ts b/src/miseService.ts index 83df9d6..273d726 100644 --- a/src/miseService.ts +++ b/src/miseService.ts @@ -98,7 +98,7 @@ export class MiseService { ); this.hasVerifiedMiseVersion = true; if (selection === "Run mise self-update") { - await this.runMiseToolActionInConsole("self-update"); + await this.runMiseToolActionInConsole("self-update -y"); } if (selection === "open mise website") { await vscode.env.openExternal( From 80a49b358484fc7dfe17fb3855a7c65a14a9c4b3 Mon Sep 17 00:00:00 2001 From: hverlin Date: Fri, 29 Nov 2024 00:18:44 -0800 Subject: [PATCH 2/3] fix: setting view broken after 2024.11.34 release --- src/miseService.ts | 71 +++++++++++++++++++++++++++--------------- src/webviews/index.tsx | 4 ++- 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/src/miseService.ts b/src/miseService.ts index 273d726..395e8fe 100644 --- a/src/miseService.ts +++ b/src/miseService.ts @@ -37,6 +37,30 @@ const TRACKED_CONFIG_DIR = path.join(STATE_DIR, "tracked-configs"); const MIN_MISE_VERSION = [2024, 11, 4] as const; +function compareVersions( + a: readonly [number, number, number], + b: readonly [number, number, number], +) { + for (let i = 0; i < a.length; i++) { + // @ts-ignore + if (a[i] > b[i]) { + return 1; + } + // @ts-ignore + if (a[i] < b[i]) { + return -1; + } + } + return 0; +} + +function isVersionGreaterOrEqualThan( + version: readonly [number, number, number], + target: readonly [number, number, number], +) { + return compareVersions(version, target) >= 0; +} + function ensureMiseCommand( miseCommand: string | undefined, ): asserts miseCommand { @@ -504,6 +528,19 @@ export class MiseService { return stdout.trim(); } + async getParsedMiseVersion() { + const version = await this.getVersion(); + const match = /(\d+)\.(\d+)\.(\d+)/.exec(version); + if (!match) { + return undefined; + } + + const [, year, minor, patch] = match.map((n) => + n ? Number.parseInt(n, 10) : 0, + ); + return [year, minor, patch] as [number, number, number]; + } + async canSelfUpdate() { if (!this.getMiseBinaryPath()) { return false; @@ -522,34 +559,12 @@ export class MiseService { return false; } - const version = await this.getVersion(); - const match = /(\d+)\.(\d+)\.(\d+)/.exec(version); - if (!match) { - return false; - } - - const [, year, month, day] = match.map((n) => - n ? Number.parseInt(n, 10) : undefined, - ); - if (year === undefined || month === undefined || day === undefined) { + const version = await this.getParsedMiseVersion(); + if (!version) { return false; } - if (year > MIN_MISE_VERSION[0]) { - return true; - } - if (year < MIN_MISE_VERSION[0]) { - return false; - } - - if (month > MIN_MISE_VERSION[1]) { - return true; - } - if (month < MIN_MISE_VERSION[1]) { - return false; - } - - return day >= MIN_MISE_VERSION[2]; + return isVersionGreaterOrEqualThan(version, MIN_MISE_VERSION); } async checkNewMiseVersion() { @@ -677,6 +692,12 @@ export class MiseService { return []; } + const version = await this.getParsedMiseVersion(); + if (version && isVersionGreaterOrEqualThan(version, [2024, 11, 34])) { + const { stdout } = await this.execMiseCommand("settings --all --json"); + return JSON.parse(stdout); + } + const { stdout } = await this.execMiseCommand("settings"); return parse(stdout); } diff --git a/src/webviews/index.tsx b/src/webviews/index.tsx index a70a326..8bd0005 100644 --- a/src/webviews/index.tsx +++ b/src/webviews/index.tsx @@ -7,7 +7,9 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ErrorBoundary } from "react-error-boundary"; import { App } from "./App"; -const queryClient = new QueryClient(); +const queryClient = new QueryClient({ + defaultOptions: { queries: { retry: 1 } }, +}); // @ts-ignore function Fallback({ error, resetErrorBoundary }) { From 809e99f935f0a01f7aaa8d6ac8e0406d8d49c1b3 Mon Sep 17 00:00:00 2001 From: hverlin Date: Fri, 29 Nov 2024 03:19:12 -0500 Subject: [PATCH 3/3] chore(main): release 0.24.0 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee90ba5..cde8d85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [0.24.0](https://github.com/hverlin/mise-vscode/compare/v0.23.0...v0.24.0) (2024-11-29) + + +### Features + +* skip confirmation prompt for mise self-update ([a046e15](https://github.com/hverlin/mise-vscode/commit/a046e15c44239227737364e5aa38199ef104d9c1)) + + +### Bug Fixes + +* setting view broken after 2024.11.34 release ([80a49b3](https://github.com/hverlin/mise-vscode/commit/80a49b358484fc7dfe17fb3855a7c65a14a9c4b3)) + ## [0.23.0](https://github.com/hverlin/mise-vscode/compare/v0.22.1...v0.23.0) (2024-11-28) diff --git a/package.json b/package.json index 5edded2..51e0080 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Mise VSCode", "publisher": "hverlin", "description": "mise support for Visual Studio code (dev-tools, tasks and environment variables)", - "version": "0.23.0", + "version": "0.24.0", "repository": { "type": "git", "url": "https://github.com/hverlin/mise-vscode"