From df2fda6077e66df6e20b6736301361c07fde54c7 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Fri, 19 Sep 2025 12:27:49 -0700 Subject: [PATCH] [refactor] Replace manual semantic version utilities/functions with semver package (#5653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Replace custom `compareVersions()` with `semver.compare()` - Replace custom `isSemVer()` with `semver.valid()` - Remove deprecated version comparison functions from `formatUtil.ts` - Update all version comparison logic across components and stores - Fix tests to use semver mocking instead of formatUtil mocking ## Benefits - **Industry standard**: Uses well-maintained, battle-tested `semver` package - **Better reliability**: Handles edge cases more robustly than custom implementation - **Consistent behavior**: All version comparisons now use the same underlying logic - **Type safety**: Better TypeScript support with proper semver types Fixes #4787 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5653-refactor-Replace-manual-semantic-version-utilities-functions-with-semver-package-2736d73d365081fb8498ee11cbcc10e2) by [Unito](https://www.unito.io) --------- Co-authored-by: DrJKL Co-authored-by: Claude --- .../content/MissingCoreNodesMessage.vue | 4 +- .../nodePack/usePackUpdateStatus.ts | 6 +- .../nodePack/useUpdateAvailableNodes.ts | 6 +- src/platform/settings/settingStore.ts | 21 +-- src/platform/updates/common/releaseStore.ts | 12 +- .../common/versionCompatibilityStore.ts | 8 +- src/utils/formatUtil.ts | 33 ----- src/utils/versionUtil.ts | 6 +- .../components/manager/PackVersionBadge.vue | 6 +- .../manager/PackVersionSelectorPopover.vue | 4 +- .../useUpdateAvailableNodes.test.ts | 43 +++---- tests-ui/tests/store/releaseStore.test.ts | 121 ++++++++---------- 12 files changed, 118 insertions(+), 152 deletions(-) diff --git a/src/components/dialog/content/MissingCoreNodesMessage.vue b/src/components/dialog/content/MissingCoreNodesMessage.vue index cf81441f1..10030a9e9 100644 --- a/src/components/dialog/content/MissingCoreNodesMessage.vue +++ b/src/components/dialog/content/MissingCoreNodesMessage.vue @@ -43,11 +43,11 @@