Merge branch 'support/3.2.1' into support/3.2

This commit is contained in:
odain
2025-11-14 10:39:04 +01:00
16 changed files with 171 additions and 144 deletions

View File

@@ -118,9 +118,6 @@ class ModuleDiscovery
$aArgs['module_file'] = $sFilePath;
list($sModuleName, $sModuleVersion) = static::GetModuleName($sId);
if ($sModuleVersion == '') {
$sModuleVersion = '1.0.0';
}
if (array_key_exists($sModuleName, self::$m_aModuleVersionByName)) {
if (version_compare($sModuleVersion, self::$m_aModuleVersionByName[$sModuleName]['version'], '>')) {
@@ -217,9 +214,11 @@ class ModuleDiscovery
}
ksort($aDependencies);
$aOrderedModules = [];
$iLoopCount = 1;
while (($iLoopCount < count($aModules)) && (count($aDependencies) > 0)) {
foreach ($aDependencies as $sId => $aRemainingDeps) {
$iLoopCount = 0;
while(($iLoopCount < count($aModules)) && (count($aDependencies) > 0) )
{
foreach($aDependencies as $sId => $aRemainingDeps)
{
$bDependenciesSolved = true;
foreach ($aRemainingDeps as $sDepId) {
if (!self::DependencyIsResolved($sDepId, $aOrderedModules, $aSelectedModules)) {
@@ -279,14 +278,10 @@ class ModuleDiscovery
$bResult = false;
$aModuleVersions = [];
// Separate the module names from their version for an easier comparison later
foreach ($aOrderedModules as $sModuleId) {
$aMatches = [];
if (preg_match('|^([^/]+)/(.*)$|', $sModuleId, $aMatches)) {
$aModuleVersions[$aMatches[1]] = $aMatches[2];
} else {
// No version number found, assume 1.0.0
$aModuleVersions[$sModuleId] = '1.0.0';
}
foreach($aOrderedModules as $sModuleId)
{
list($sModuleName, $sVersion) = self::GetModuleName($sModuleId);
$aModuleVersions[$sModuleName] = $sVersion;
}
if (preg_match_all('/([^\(\)&| ]+)/', $sDepString, $aMatches)) {
$aReplacements = [];
@@ -400,10 +395,16 @@ class ModuleDiscovery
if (preg_match('!^(.*)/(.*)$!', $sModuleId, $aMatches)) {
$sName = $aMatches[1];
$sVersion = $aMatches[2];
} else {
$sName = $sModuleId;
$sVersion = "";
if ($sVersion === ""){
$sVersion = "1.0.0";
}
}
else
{
$sName = $sModuleId;
$sVersion = "1.0.0";
}
return [$sName, $sVersion];
}