By now it is probably no longer news to many: GNOME Shell moved from GJS’ own custom imports system to standard JavaScript modules (ESM).

Extensions that target older GNOME versions will not work in GNOME 45. Likewise, extensions that are adapted to work with GNOME 45 will not work in older versions.

You can still support more than one GNOME version, but you will have to upload different versions to extensions.gnome.org for pre- and post-45 support.

Please file bugs with your favorite extensions or have a friendly conversation with your extension writers so that we can help minimize the impact of this change. Ideally, you could help with the port and provide a pull or merge request to help maintainers.

  • Vincent
    link
    fedilink
    English
    arrow-up
    21
    ·
    1 year ago

    I will say, as a JavaScript developer, the new module system is a pain everywhere. Node.js went to great pains to allow for an upgrade path without breaking changes, and it’s still a PITA for developers because there are so many edge cases that could go wrong, so you still have to actually keep testing in both older and newer versions.

    A hard break like this is painful, but I’m not sure if there’s a better solution. On the upside, it looks like it’ll be easier for someone like me to contribute fixes for this, even if I don’t know the specifics of extension development otherwise.