diff options
| author | ruki <[email protected]> | 2023-03-23 22:36:29 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-03-23 22:36:29 +0800 |
| commit | 0ebdd97360aefbb0968f4ad8b9d020b902234a60 (patch) | |
| tree | 8d5fca6539313b8bbe6ab3868737ebda51d6fa79 | |
| parent | 48793d342196921348d052354755cfccf6ba76db (diff) | |
add semver.is_valid_range #3551
| -rw-r--r-- | xmake/core/sandbox/modules/import/core/base/semver.lua | 6 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 7 |
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? |
