None of the Gnome extensions that are in use now will work on Gnome 45 when it’s released on September 20.
Dyed-in-the-wool Gnome users who have their desktop all tricked-out with carefully selected Gnome extensions might want to do some research before upgrading to Gnome 45, which will be released two weeks from today. Why? Because the gnomes at Gnome have been busy making some changes as to how things work in their world, which means your favorite extension won’t work in the next release unless it’s been upgraded by its developers.
Here’s the deal: in the next release, the folks at Gnome will be adopting standard JavaScript modules, known as ECMAScript Modules or ESMs, as the desktop environment’s main way to manage and organize code. While this will be good for Gnome in the long run, since it’ll make it easier for Gnome devs to work with all the major JavaScript engines, in the short term it means that the extensions you’re running now won’t work in Gnome 45 without some serious tweaking from the extension’s developers.
“Modules are loaded differently than scripts, and some statements — namely import and export — are only valid in modules,” Florian Müllner explained in a post on Gnome’s blog on Saturday. “That means that trying to import a module with the legacy system will result in a syntax error if the module uses one of those statements (about as likely as a pope being Catholic).”
Müllner said there are other reasons while yesterday’s extensions won’t load on tomorrows’s Gnome.
“Modules also hide anything to the outside that isn’t explicitly exported. So while it is technically possible to import a script as module, it is about as useful as importing an empty file.”
So, what does this mean for Gnome users who absolutely insist of having their extensions, but who also can’t wait for Gnome 45 to be released because they like having the latest and greatest? According to Müllner, they’re pretty much facing a fork with two tines.
“Extensions that target older GNOME versions will not work in GNOME 45,” he said. “Likewise, extensions that are adapted to work with GNOME 45 will not work in older versions.”
For the time being, this pretty much puts the onus on the Gnome user who uses extensions to make sure that their favorite extensions are ready for the new Gnome when it’s released, and if not, to gently goad the extension’s developers to “get ‘er done.”
It also means that for at least the next little while, Gnome extension developers are going to have to build and maintain two versions of their extension: one for folks running Gnome 45 and after, and another for folks running Gnome 44 and before.
In addition, many devs are going to have to learn some new tricks to get their extensions to play the ESM way. In this regard, the Gnome gnomes have been working overtime to help, and have published a porting guide with detailed instructions.
To any developer who takes a look at the guide and is still doing some serious head scratching: all is not lost.
“You can always find friendly people on Matrix and Discourse who will be happy to help with any porting issues,” Müllner said.
Christine Hall has been a journalist since 1971. In 2001, she began writing a weekly consumer computer column and started covering Linux and FOSS in 2002 after making the switch to GNU/Linux. Follow her on Twitter: @BrideOfLinux