Merge pull request #314893 from honnip/gnome-extensions-collision

gnomeExtensions: count naming collisions only for the last three shell versions
This commit is contained in:
Jan Tojnar 2024-05-31 11:01:55 +02:00 committed by GitHub
commit c7e65c09b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 263 additions and 574 deletions

@ -56,7 +56,7 @@ let
homepage = link;
license = lib.licenses.gpl2Plus; # https://gjs.guide/extensions/review-guidelines/review-guidelines.html#licensing
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ];
maintainers = [ lib.maintainers.honnip ];
};
passthru = {
extensionPortalSlug = pname;

@ -1,371 +1,50 @@
{
"38": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
"fuzzy-clock": [
"Fuzzy_Clock@dallagi",
"fuzzy-clock@keepawayfromfire.co.uk"
],
"hide-activities-button": [
"Hide_Activities@shay.shayel.org",
"hide-activities-button@nmingori.gnome-shell-extensions.org"
],
"shutdowntimer": [
"ShutdownTimer@neumann",
"ShutdownTimer@deminder"
],
"bottompanel": [
"bottompanel@tmoer93",
"bottom-panel@sulincix"
],
"noannoyance": [
"noannoyance@sindex.com",
"noannoyance@daase.net"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"transparent-window": [
"transparent-window@pbxqdown.github.com",
"transparentwindows.mdirshad07"
],
"azan-islamic-prayer-times": [
"azan@faissal.bensefia.id",
"azan@hatem.masmoudi.org"
],
"floating-dock": [
"floatingDock@sun.wxg@gmail.com",
"floating-dock@nandoferreira_prof@hotmail.com"
],
"gnome-trash": [
"gnome-trash@gnome-trash.b00f.gitlab.com",
"gnome-trash@b00f.github.io"
],
"true-color-invert": [
"true-color-invert@jackkenney",
"true-color-window-invert@lynet101"
],
"volume-scroller": [
"volume_scroller@trflynn89.pm.me",
"volume_scroller@francislavoie.github.io"
]
},
"40": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
"system-monitor": [
"system-monitor@paradoxxx.zero.gmail.com",
"System_Monitor@bghome.gmail.com"
],
"hide-activities-button": [
"Hide_Activities@shay.shayel.org",
"hide-activities-button@nmingori.gnome-shell-extensions.org"
],
"clipboard-indicator": [
"clipboard-indicator@tudmotu.com",
"clipboard-indicator@Dieg0Js.github.io"
],
"shutdowntimer": [
"ShutdownTimer@neumann",
"shutdown-timer-gnome-shell-extension",
"ShutdownTimer@deminder"
],
"noannoyance": [
"noannoyance@sindex.com",
"noannoyance@daase.net"
],
"fuzzy-clock": [
"fuzzy-clock@keepawayfromfire.co.uk",
"FuzzyClock@johngoetz"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"panel-date-format": [
"panel-date-format@keiii.github.com",
"panel-date-format@atareao.es"
],
"disable-unredirect-fullscreen-windows": [
"unredirect@vaina.lt",
"unredirect@aunetx"
],
"floating-dock": [
"floatingDock@sun.wxg@gmail.com",
"floating-dock@nandoferreira_prof@hotmail.com"
],
"extension-list": [
"extension-list@tu.berry",
"screen-lock@garciabaameiro.com"
],
"wireguard-indicator": [
"wireguard-indicator@gregos.me",
"wireguard-indicator@atareao.es"
],
"true-color-invert": [
"true-color-invert@jackkenney",
"true-color-window-invert@lynet101"
],
"volume-scroller": [
"volume_scroller@trflynn89.pm.me",
"volume_scroller@francislavoie.github.io"
],
"floating-panel": [
"floating-panel@aylur",
"floating-panel-usedbymyself@wpism"
]
},
"41": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
"shutdowntimer": [
"ShutdownTimer@neumann",
"ShutdownTimer@deminder"
],
"noannoyance": [
"noannoyance@sindex.com",
"noannoyance@daase.net"
],
"fuzzy-clock": [
"fuzzy-clock@keepawayfromfire.co.uk",
"FuzzyClock@johngoetz"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"panel-date-format": [
"panel-date-format@keiii.github.com",
"panel-date-format@atareao.es"
],
"disable-unredirect-fullscreen-windows": [
"unredirect@vaina.lt",
"unredirect@aunetx"
],
"floating-dock": [
"floatingDock@sun.wxg@gmail.com",
"floating-dock@nandoferreira_prof@hotmail.com"
],
"wireguard-indicator": [
"wireguard-indicator@gregos.me",
"wireguard-indicator@atareao.es"
],
"true-color-invert": [
"true-color-invert@jackkenney",
"true-color-window-invert@lynet101"
],
"volume-scroller": [
"volume_scroller@trflynn89.pm.me",
"volume_scroller@francislavoie.github.io"
],
"floating-panel": [
"floating-panel@aylur",
"floating-panel-usedbymyself@wpism"
]
},
"42": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
"persian-calendar": [
"PersianCalendar@oxygenws.com",
"persian-calendar@iamrezamousavi.gmail.com"
],
"clipboard-indicator": [
"clipboard-indicator@tudmotu.com",
"clipboard-indicator@Dieg0Js.github.io"
],
"noannoyance": [
"noannoyance@sindex.com",
"noannoyance@daase.net"
],
"fuzzy-clock": [
"fuzzy-clock@keepawayfromfire.co.uk",
"FuzzyClock@johngoetz"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"panel-date-format": [
"panel-date-format@keiii.github.com",
"panel-date-format@atareao.es"
],
"wireguard-indicator": [
"wireguard-indicator@gregos.me",
"wireguard-indicator@atareao.es"
],
"true-color-invert": [
"true-color-invert@jackkenney",
"true-color-window-invert@lynet101"
],
"volume-scroller": [
"volume_scroller@trflynn89.pm.me",
"volume_scroller@francislavoie.github.io"
],
"auto-activities": [
"auto-activities@acedron.github.io",
"auto-activities@CleoMenezesJr.github.io"
],
"floating-panel": [
"floating-panel@aylur",
"floating-panel-usedbymyself@wpism"
]
},
"43": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"lock-keys": [
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
"persian-calendar": [
"PersianCalendar@oxygenws.com",
"persian-calendar@iamrezamousavi.gmail.com"
],
"clipboard-indicator": [
"clipboard-indicator@tudmotu.com",
"clipboard-indicator@Dieg0Js.github.io"
],
"keep-awake": [
"KeepAwake@jepfa.de",
"awake@vixalien.com"
],
"noannoyance": [
"noannoyance@sindex.com",
"noannoyance@daase.net"
],
"fuzzy-clock": [
"fuzzy-clock@keepawayfromfire.co.uk",
"FuzzyClock@johngoetz"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"panel-date-format": [
"panel-date-format@keiii.github.com",
"panel-date-format@atareao.es"
],
"battery-time": [
"batime@martin.zurowietz.de",
"batterytime@typeof.pw"
],
"volume-scroller": [
"volume_scroller@trflynn89.pm.me",
"volume_scroller@francislavoie.github.io"
],
"floating-panel": [
"floating-panel@aylur",
"floating-panel-usedbymyself@wpism"
]
},
"44": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"workspace-indicator": [
"workspace-indicator@gnome-shell-extensions.gcampax.github.com",
"horizontal-workspace-indicator@tty2.io"
],
"persian-calendar": [
"PersianCalendar@oxygenws.com",
"persian-calendar@iamrezamousavi.gmail.com"
],
"clipboard-indicator": [
"clipboard-indicator@tudmotu.com",
"clipboard-indicator@Dieg0Js.github.io"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"panel-date-format": [
"panel-date-format@keiii.github.com",
"panel-date-format@atareao.es"
],
"battery-time": [
"batime@martin.zurowietz.de",
"batterytime@typeof.pw"
]
},
"45": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"persian-calendar": [
"PersianCalendar@oxygenws.com",
"persian-calendar@iamrezamousavi.gmail.com"
],
"battery-time": [
"batime@martin.zurowietz.de",
"batterytime@typeof.pw"
],
"power-profile-indicator": [
"power-profile-indicator@laux.wtf",
"power-profile@fthx"
]
},
"46": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"persian-calendar": [
"PersianCalendar@oxygenws.com",
"persian-calendar@iamrezamousavi.gmail.com"
],
"power-profile-indicator": [
"power-profile-indicator@laux.wtf",
"power-profile@fthx"
]
}
"applications-menu": [
"Applications_Menu@rmy.pobox.com",
"apps-menu@gnome-shell-extensions.gcampax.github.com"
],
"workspace-indicator": [
"horizontal-workspace-indicator@tty2.io",
"workspace-indicator@gnome-shell-extensions.gcampax.github.com"
],
"persian-calendar": [
"persian-calendar@iamrezamousavi.gmail.com",
"PersianCalendar@oxygenws.com"
],
"openweather": [
"openweather-extension@jenslody.de",
"openweather-extension@penguin-teal.github.io"
],
"clipboard-indicator": [
"clipboard-indicator@tudmotu.com",
"clipboard-indicator@Dieg0Js.github.io"
],
"system-monitor": [
"system-monitor@gnome-shell-extensions.gcampax.github.com",
"System_Monitor@bghome.gmail.com"
],
"virtualbox-applet": [
"vbox-applet@gs.eros2.info",
"vbox-applet@buba98"
],
"panel-date-format": [
"panel-date-format@atareao.es",
"panel-date-format@keiii.github.com"
],
"battery-time": [
"batterytime@typeof.pw",
"batime@martin.zurowietz.de"
],
"kernel-indicator": [
"kernel-indicator@elboulangero.gitlab.com",
"kernel-indicator@pvizc.gitlab.com"
],
"fuzzy-clock": [
"fuzzy-clock@keepawayfromfire.co.uk",
"FuzzyClock@johngoetz"
],
"power-profile-indicator": [
"power-profile-indicator@laux.wtf",
"power-profile@fthx"
]
}

@ -3,111 +3,49 @@
# - Every item from ./collisions.json (for the respective Shell version) should have an entry in here
# - Set the value to `null` for filtering (duplicate or unmaintained extensions)
# - Sort the entries in order of appearance in the collisions.json
# - Make a separate section for each GNOME version. Collisions will come back eventually
# as the extensions are updated.
{
# ####### GNOME 45 #######
"apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
"Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
"apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
"horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
"workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
"PersianCalendar@oxygenws.com" = "persian-calendar";
"persian-calendar@iamrezamousavi.gmail.com" = "persian-calendar-2";
"PersianCalendar@oxygenws.com" = "persian-calendar";
"openweather-extension@jenslody.de" = "openweather";
"openweather-extension@penguin-teal.github.io" = "openweather-refined";
"clipboard-indicator@tudmotu.com" = "clipboard-indicator";
"clipboard-indicator@Dieg0Js.github.io" = "clipboard-indicator-2";
"system-monitor@gnome-shell-extensions.gcampax.github.com" = "system-monitor";
"System_Monitor@bghome.gmail.com" = "system-monitor-2";
"vbox-applet@gs.eros2.info" = "virtualbox-applet";
"vbox-applet@buba98" = "virtualbox-applet-2";
"panel-date-format@atareao.es" = "panel-date-format-2";
"panel-date-format@keiii.github.com" = "panel-date-format";
"batime@martin.zurowietz.de" = "battery-time";
"batterytime@typeof.pw" = "battery-time-2";
"batime@martin.zurowietz.de" = "battery-time";
# No longer maintained: https://gitlab.com/arnaudr/gnome-shell-extension-kernel-indicator
"kernel-indicator@elboulangero.gitlab.com" = null;
"kernel-indicator@pvizc.gitlab.com" = "kernel-indicator";
"fuzzy-clock@keepawayfromfire.co.uk" = "fuzzy-clock-2";
"FuzzyClock@johngoetz" = "fuzzy-clock";
"power-profile-indicator@laux.wtf" = "power-profile-indicator";
"power-profile@fthx" = "power-profile-indicator-2";
# ############################################################################
# These are conflicts for older extensions (i.e. they don't support the latest GNOME version).
# Make sure to move them up once they are updated
# ####### GNOME 44 #######
"workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
"horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
"clipboard-indicator@tudmotu.com" = "clipboard-indicator";
"clipboard-indicator@Dieg0Js.github.io" = "clipboard-indicator-2";
"vbox-applet@gs.eros2.info" = "virtualbox-applet";
"vbox-applet@buba98" = "virtualbox-applet-2";
"panel-date-format@keiii.github.com" = "panel-date-format";
"panel-date-format@atareao.es" = "panel-date-format-2";
# ####### GNOME 43 #######
"lockkeys@vaina.lt" = "lock-keys";
"lockkeys@fawtytoo" = "lock-keys-2";
# DEPRECATED: Use "Caffeine" instead
"KeepAwake@jepfa.de" = "keep-awake";
"awake@vixalien.com" = null;
"noannoyance@sindex.com" = "noannoyance";
"noannoyance@daase.net" = "noannoyance-2";
"fuzzy-clock@keepawayfromfire.co.uk" = "fuzzy-clock-2";
"FuzzyClock@johngoetz" = "fuzzy-clock";
"volume_scroller@trflynn89.pm.me" = "volume-scroller";
"volume_scroller@francislavoie.github.io" = "volume-scroller-2";
# no source repository can be found for this extension
"floating-panel@aylur" = "floating-panel";
"floating-panel-usedbymyself@wpism" = null;
# ####### GNOME 42 #######
"wireguard-indicator@gregos.me" = "wireguard-indicator-2";
"wireguard-indicator@atareao.es" = "wireguard-indicator";
"auto-activities@acedron.github.io" = "auto-activities-2";
"auto-activities@CleoMenezesJr.github.io" = "auto-activities";
"true-color-invert@jackkenney" = "true-color-invert";
"true-color-window-invert@lynet101" = "true-color-window-invert";
# ####### GNOME 41 #######
# These extensions no longer collide. We preserve the old attribute name for backwards compatibility.
"floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
"unredirect@vaina.lt" = "disable-unredirect-fullscreen-windows";
"unredirect@aunetx" = "disable-unredirect-fullscreen-windows-2";
# At the moment, ShutdownTimer@deminder is a fork of ShutdownTimer@neumann which adds new features
# there seem to be upstream plans, so this should be checked periodically:
# https://github.com/Deminder/ShutdownTimer https://github.com/neumann-d/ShutdownTimer/pull/46
"ShutdownTimer@neumann" = null;
"shutdown-timer-gnome-shell-extension" = "shutdowntimer-2";
"ShutdownTimer@deminder" = "shutdowntimer";
# ####### GNOME 40 #######
"System_Monitor@bghome.gmail.com" = "system-monitor-2";
"Hide_Activities@shay.shayel.org" = "hide-activities-button";
"hide-activities-button@nmingori.gnome-shell-extensions.org" = "hide-activities-button-2";
"extension-list@tu.berry" = "extension-list";
"screen-lock@garciabaameiro.com" = "screen-lock"; # Don't know why they got 'extension-list' as slug
# ####### GNOME 3.38 #######
"bottompanel@tmoer93" = "bottompanel";
"bottom-panel@sulincix" = "bottompanel-2";
# See https://github.com/pbxqdown/gnome-shell-extension-transparent-window/issues/12#issuecomment-800765381
"transparent-window@pbxqdown.github.com" = "transparent-window";
"transparentwindows.mdirshad07" = null;
# Forks of each other, azan@faissal.bensefia.id is more recent
"azan@faissal.bensefia.id" = "azan-islamic-prayer-times";
"azan@hatem.masmoudi.org" = null;
"true-color-window-invert@lynet101" = "true-color-window-invert";
"volume_scroller@francislavoie.github.io" = "volume-scroller-2";
# ############################################################################
# Overrides for extensions that were manually packaged in the past but are gradually

File diff suppressed because one or more lines are too long

@ -9,7 +9,7 @@ import urllib.error
import urllib.request
from operator import itemgetter
from pathlib import Path
from typing import List, Dict, Optional, Any, Tuple
from typing import List, Dict, Optional, Any, Tuple, Set
# We don't want all those deprecated legacy extensions
# Group extensions by GNOME "major" version for compatibility reasons
@ -302,15 +302,21 @@ if __name__ == "__main__":
json.load(out)
with open(updater_dir_path / "collisions.json", "w") as out:
# Find the name collisions only for the last 3 shell versions
last_3_versions = sorted(supported_versions.keys(), key=lambda v: float(v), reverse=True)[:3]
package_name_registry_for_versions = [v for k, v in package_name_registry.items() if k in last_3_versions]
# Merge all package names into a single dictionary
package_name_registry_filtered: Dict[PackageName, Set[Uuid]] = {}
for pkgs in package_name_registry_for_versions:
for pname, uuids in pkgs.items():
if pname not in package_name_registry_filtered:
package_name_registry_filtered[pname] = set()
package_name_registry_filtered[pname].update(uuids)
# Filter out those that are not duplicates
package_name_registry_filtered: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {
# The outer level keys are shell versions
shell_version: {
# The inner keys are extension names, with a list of all extensions with that name as value.
pname: extensions for pname, extensions in collisions.items() if len(extensions) > 1
} for shell_version, collisions in package_name_registry.items()
}
json.dump(package_name_registry_filtered, out, indent=2, ensure_ascii=False)
package_name_registry_filtered = {k: v for k, v in package_name_registry_filtered.items() if len(v) > 1}
# Convert set to list
collisions: Dict[PackageName, List[Uuid]] = {k: list(v) for k, v in package_name_registry_filtered.items()}
json.dump(collisions, out, indent=2, ensure_ascii=False)
out.write("\n")
logging.info(