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