mirror of https://gitee.com/bigwinds/arangodb
Match Foxx versions properly
This commit is contained in:
parent
0ef698a28b
commit
1f17514b70
|
@ -284,26 +284,31 @@ function extractMaxVersion(matchEngine, versionDoc) {
|
|||
let serverVersion = plainServerVersion();
|
||||
let versions = Object.keys(versionDoc);
|
||||
versions.sort(semver.compare).reverse();
|
||||
let fallback;
|
||||
|
||||
for (let version of versions) {
|
||||
if (matchEngine) {
|
||||
let info = versionDoc[version];
|
||||
|
||||
if (info.engines && info.engines.arangodb) {
|
||||
if (semver.satisfies(serverVersion, info.engines.arangodb)) {
|
||||
return version;
|
||||
}
|
||||
}
|
||||
else if (matchEngine !== "match-engines") {
|
||||
let info = versionDoc[version];
|
||||
if (!info.engines || Object.keys(info.engines).length === 0) {
|
||||
// No known compatibility requirements indicated: use as last resort
|
||||
if (!matchEngine) {
|
||||
return version;
|
||||
}
|
||||
if (!fallback) {
|
||||
fallback = version;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
let versionRange = info.engines.arangodb;
|
||||
if (!versionRange || semver.outside(serverVersion, versionRange, '<')) {
|
||||
// Explicitly backwards-incompatible with the server version: ignore
|
||||
continue;
|
||||
}
|
||||
if (!matchEngine || semver.satisfies(serverVersion, versionRange)) {
|
||||
return version;
|
||||
}
|
||||
}
|
||||
|
||||
return undefined;
|
||||
return fallback;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -39,7 +39,7 @@ describe("Foxx Manager", function() {
|
|||
});
|
||||
|
||||
it("should fetch apps from the appstore", function() {
|
||||
var list = FoxxManager.availableJson("match-engines");
|
||||
var list = FoxxManager.availableJson(true);
|
||||
var i, app, l = list.length;
|
||||
expect(l).toBeGreaterThan(0);
|
||||
for (i = 0; i < l; ++i) {
|
||||
|
@ -57,7 +57,7 @@ describe("Foxx Manager", function() {
|
|||
FoxxManager.uninstall(mount, { force: true });
|
||||
} catch(e) {
|
||||
}
|
||||
var list = FoxxManager.availableJson("match-engines");
|
||||
var list = FoxxManager.availableJson(true);
|
||||
var i, app, l = list.length;
|
||||
for (i = 0; i < l; ++i) {
|
||||
app = list[i];
|
||||
|
|
Loading…
Reference in New Issue