summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-03-23 22:36:29 +0800
committerruki <[email protected]>2023-03-23 22:36:29 +0800
commit0ebdd97360aefbb0968f4ad8b9d020b902234a60 (patch)
tree8d5fca6539313b8bbe6ab3868737ebda51d6fa79
parent48793d342196921348d052354755cfccf6ba76db (diff)
add semver.is_valid_range #3551
-rw-r--r--xmake/core/sandbox/modules/import/core/base/semver.lua6
-rw-r--r--xmake/modules/private/action/require/impl/package.lua7
2 files changed, 11 insertions, 2 deletions
diff --git a/xmake/core/sandbox/modules/import/core/base/semver.lua b/xmake/core/sandbox/modules/import/core/base/semver.lua
index eadcfb702..8d1dfe33a 100644
--- a/xmake/core/sandbox/modules/import/core/base/semver.lua
+++ b/xmake/core/sandbox/modules/import/core/base/semver.lua
@@ -49,6 +49,12 @@ function sandbox_core_base_semver.is_valid(version)
return semver.parse(version) ~= nil
end
+-- is valid version range?
+function sandbox_core_base_semver.is_valid_range(range)
+ local ok = semver.satisfies("1.0", range)
+ return ok ~= nil
+end
+
-- compare two version strings
--
-- semver.compare('1.2.3', '1.3.0') > 0?
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 621c95c33..5bfc0b47b 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -360,10 +360,13 @@ function _select_package_version(package, requireinfo, locked_requireinfo)
local version = nil
local require_version = requireinfo.version
local require_verify = requireinfo.verify
- if (not package:get("versions") or require_verify == false) and semver.is_valid(require_version) then
+ if (not package:get("versions") or require_verify == false)
+ and (semver.is_valid(require_version) or semver.is_valid_range(require_version)) then
-- no version list in package() or need not verify sha256sum? try selecting this version directly
- -- @see https://github.com/xmake-io/xmake/issues/930
+ -- @see
+ -- https://github.com/xmake-io/xmake/issues/930
-- https://github.com/xmake-io/xmake/issues/1009
+ -- https://github.com/xmake-io/xmake/issues/3551
version = require_version
source = "version"
elseif #package:versions() > 0 then -- select version?