[extensions-web/bugfix/v40-frontend-compatibility] extensions: fixed major version compatibility for GNOME 40+
- From: Yuri Konotopov <ykonotopov src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web/bugfix/v40-frontend-compatibility] extensions: fixed major version compatibility for GNOME 40+
- Date: Sun, 4 Apr 2021 12:08:27 +0000 (UTC)
commit aae0920f3f4fd7595dba395a5f72beb1ebbf38a9
Author: Yuri Konotopov <ykonotopov gnome org>
Date: Sun Apr 4 16:02:06 2021 +0400
extensions: fixed major version compatibility for GNOME 40+
Fixes: https://gitlab.gnome.org/Infrastructure/extensions-web/-/issues/138
sweettooth/extensions/tests.py | 6 ++++--
sweettooth/extensions/views.py | 8 +++++++-
sweettooth/static/js/extensionUtils.js | 6 +++++-
sweettooth/static/js/test/extensions.js | 13 +++++++++++--
4 files changed, 27 insertions(+), 6 deletions(-)
---
diff --git a/sweettooth/extensions/tests.py b/sweettooth/extensions/tests.py
index 0b80727..5bd3c46 100644
--- a/sweettooth/extensions/tests.py
+++ b/sweettooth/extensions/tests.py
@@ -762,6 +762,7 @@ class QueryExtensionsTest(BasicUserTestCase, TestCase):
self.assertEqual(views.grab_proper_extension_version(extension, "3.4.0", True).version, 1)
self.assertEqual(views.grab_proper_extension_version(extension, "3.7.4.1", True).version, 1)
self.assertEqual(views.grab_proper_extension_version(extension, "3.10.0", True).version, 1)
+ self.assertEqual(views.grab_proper_extension_version(extension, "3.10.0", False).version, 1)
self.assertEqual(views.grab_proper_extension_version(extension, "3.11.2", True).version, 1)
self.assertEqual(views.grab_proper_extension_version(extension, "3.13.4", True).version, 2)
self.assertEqual(views.grab_proper_extension_version(extension, "3.15.1", True).version, 2)
@@ -774,8 +775,9 @@ class QueryExtensionsTest(BasicUserTestCase, TestCase):
self.assertEqual(views.grab_proper_extension_version(extension, "3.18.3", True).version, 3)
self.assertEqual(views.grab_proper_extension_version(extension, "3.20.0", True).version, 4)
self.assertEqual(views.grab_proper_extension_version(extension, "3.24.0", True).version, 4)
- self.assertEqual(views.grab_proper_extension_version(extension, "40.alpha", True).version, 5)
- self.assertEqual(views.grab_proper_extension_version(extension, "40.beta", True).version, 5)
+ self.assertEqual(views.grab_proper_extension_version(extension, "40.alpha", True).version, 6)
+ self.assertEqual(views.grab_proper_extension_version(extension, "40.beta", True).version, 6)
self.assertEqual(views.grab_proper_extension_version(extension, "40.2", True).version, 6)
+ self.assertEqual(views.grab_proper_extension_version(extension, "40.2", False).version, 6)
self.assertEqual(views.grab_proper_extension_version(extension, "44.2", True).version, 5)
self.assertEqual(views.grab_proper_extension_version(extension, "129.rc", True).version, 5)
diff --git a/sweettooth/extensions/views.py b/sweettooth/extensions/views.py
index 510c7e8..10ba39e 100644
--- a/sweettooth/extensions/views.py
+++ b/sweettooth/extensions/views.py
@@ -49,13 +49,19 @@ def get_versions_for_version_strings(version_strings):
yield version
# If we already have a base version, don't bother querying it again...
- if point == -1:
+ if (major < 40 and point == -1) or minor == -1:
continue
base_version = get_version(major, minor, -1)
if base_version:
yield base_version
+ if major >= 40:
+ base_version = get_version(major, -1, -1)
+ if base_version:
+ yield base_version
+
+
def grab_proper_extension_version(extension, shell_version, disable_version_validation=False):
def get_best_shell_version():
visible_versions = extension.visible_versions
diff --git a/sweettooth/static/js/extensionUtils.js b/sweettooth/static/js/extensionUtils.js
index 261e606..381a8ad 100644
--- a/sweettooth/static/js/extensionUtils.js
+++ b/sweettooth/static/js/extensionUtils.js
@@ -117,7 +117,11 @@ define([], function () {
let mappedVersion = null;
if (major >= 40)
{
- mappedVersion = map[`${major}.${minor}`]
+ // alpha/beta/rc
+ if(isNaN(parseInt(minor)))
+ mappedVersion = map[major] || map[`${major}.${minor}`];
+ else
+ mappedVersion = map[`${major}.${minor}`] || map[major];
}
else
{
diff --git a/sweettooth/static/js/test/extensions.js b/sweettooth/static/js/test/extensions.js
index 871cbc2..8c9ea27 100644
--- a/sweettooth/static/js/test/extensions.js
+++ b/sweettooth/static/js/test/extensions.js
@@ -8,16 +8,25 @@ require(['extensionUtils', 'jquery', 'test/qunit'], function(extensionUtils) {
"3.2": { version: 4, pk: 4 },
"3.3": { version: 5, pk: 5 },
"3.3.1": { version: 6, pk: 6 },
- "3.4.1": { version: 7, pk: 7 } };
+ "3.4.1": { version: 7, pk: 7 },
+ "40.alpha": { version: 8, pk: 8 },
+ "40": { version: 9, pk: 9 },
+ "40.7": { version: 10, pk: 10 },
+ };
equal(grabProperExtensionVersion(map, "3.4.0"), null);
equal(grabProperExtensionVersion(map, "3.0.0").version, 1);
equal(grabProperExtensionVersion(map, "3.0.1").version, 2);
equal(grabProperExtensionVersion(map, "3.2.0").version, 4);
equal(grabProperExtensionVersion(map, "3.2.1").version, 3);
+ equal(grabProperExtensionVersion(map, "3.2.2").version, 4);
equal(grabProperExtensionVersion(map, "3.3.0"), null, "stable release checking");
equal(grabProperExtensionVersion(map, "3.3.1").version, 6);
equal(grabProperExtensionVersion(map, "3.4.1.1").version, 7);
+ equal(grabProperExtensionVersion(map, "40.alpha").version, 9);
+ equal(grabProperExtensionVersion(map, "40.beta").version, 9);
+ equal(grabProperExtensionVersion(map, "40.2").version, 9);
+ equal(grabProperExtensionVersion(map, "40.7").version, 10);
});
test("getBestExtensionVersion", function() {
@@ -32,7 +41,7 @@ require(['extensionUtils', 'jquery', 'test/qunit'], function(extensionUtils) {
equal(grabProperExtensionVersion(map, "3.11.2", true).version, 3);
equal(grabProperExtensionVersion(map, "3.20.0", true).version, 3);
equal(grabProperExtensionVersion(map, "3.24.0", true).version, 3);
- equal(grabProperExtensionVersion(map, "4.14.0", true).version, 3);
+ equal(grabProperExtensionVersion(map, "40.14", true).version, 3);
});
function nhvEqual(versions, current, operation, stability, version) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]