GNOME is in buroblêd omjouwing en ûntwikkeling ynfrastruktuer foar GNU/Linux bestjoeringssystemen.
In pear dagen lyn waard bekend makke ynformaasje oer in feroaring wat miskien net yn 'e smaak is fan alle Gnome-brûkers en is dat yn' e nije ferzje fan GNOME 45 Guon wizigingen binne makke dy't ynfloed hawwe op omjouwingsplugins.
Spesifyk wurdt neamd dat Feroare de organisaasje fan moduleladen yn plugins foar GNOME Shell.
It wurdt neamd dat:
JavaScript is ûntstien yn webbrowsers om in bytsje ynteraktiviteit ta te foegjen oan oars statyske siden. Lytse stikjes koade hoegden net yn meardere triemmen te splitsen, sadat de taal dêr gjin meganisme foar levere.
Dit waard in probleem doe't minsken begûnen te skriuwen gruttere programma yn JavaScript, sadat omjouwings lykas node.js en GJS tafoege harren eigen ymport systemen te organisearjen koade yn meardere triemmen. As gefolch hienen ûntwikkelders en ark muoite mei de oergong fan de iene omjouwing nei de oare.
As sadanich, it probleem dat plugins sille hawwe ûntwikkele foar eardere ferzjes fan GNOME en dat Se sille net kinne rinne yn 'e folgjende ferzje fan GNOME 45, komt troch in kompatibiliteitsbreuk dy't oerskeakele is fan it eigen modulymportsysteem, spesifyk foar de GJS JavaScript runtime (GNOME JavaSkript basearre op de SpiderMonkey-motor fan it Mozilla-projekt), nei it ymportmeganisme fan standert JavaScript-module (ESM). beskreaun yn ECMAScript.
Legacy-ymporten wurde noch stipe yn extensions.gnome.org, mar jo moatte pre- en post-GNOME 45-stipe laden om sawol LTS as reguliere distribúsjes te stypjen.
Dêrneist wurdt neamd dat De ferskillen komme op it feit del dat earder, neist GNOME Shell, de "ymport" foarwerp waard brûkt» om JavaScript-modules en GObject-keppelings te ferbinen, mar no moat de operator "ymport" brûkt wurde.
Oan 'e oare kant wurdt it ek neamd dat plugins oanpast om te rinnen op GNOME 45 net kinne wurde ynstalleare op âldere ferzjes fan GNOME en dat om kompatibiliteit te behâlden mei ferskate ferzjes fan GNOME, plugin-ûntwikkelders moatte twa plugin-farianten yn útwreidingen uploade. gnome .org - ien foar GNOME 45 en letter, en ien foar âldere ferzjes fan GNOME.
No, d'r is in lyts fangen: modules en legacy-ymporten binne yn 'e praktyk ynkompatibel.
Modules wurde oars laden as skripts en guon útspraken, nammentlik ymportearje en eksportearje, binne allinich jildich yn modules. Dat betsjut dat it besykjen om in module te ymportearjen mei it legacy-systeem sil resultearje yn in syntaksisflater as de module ien fan dy ferklearrings brûkt (sawat sa wierskynlik as in paus dy't katolyk is).
Modules ferbergje ek alles fan bûten dat net eksplisyt eksportearre wurdt. Dus hoewol it technysk mooglik is om in skript as module te ymportearjen, is it sawat like brûkber as it ymportearjen fan in lege triem.
finalmente ûntwikkelders wurde neamd dat om te wurkjen oan GNOME 45 en nijere ferzjes, tafoegings moatte de koade feroarje dy't ferbûn is mei it laden fan bibleteken, soargje derfoar dat de extension.js triem befettet ynskeakelje () / útskeakelje () metoaden yn de standert klasse en, by it brûken fan prefs.js, definiearje ExtensionPreferences. subklasse mei in fillPreferencesWindow metoade.
De wizige ferzje fan it plugin moat keppele wurde oan nije GNOME Shell-ferzjes fia de '»shell-ferzje»: [«45» ]' parameter yn metadata.json. Foar GNOME earder as ferzje 45, kinne jo aparte ferzjes fan plugins oanmeitsje, ek soargje dat se keppelje oan âldere ferzjes fia de shell-ferzje-parameter yn metadata.json. Jo kinne wizige tafoegings testen mei GNOME OS-builds.
Likegoed wurdt in portabiliteitsgids dield, dy't rieplachte wurde kin fan 'e folgjende link. Last but not least, it is it neamen wurdich dat de lansearring fan de nije ferzje fan Gnome 45 is pland foar 20 septimber (foar moarn).
As jo binne ynteressearre om der mear oer te witten, kinne jo de details kontrolearje yn 'e folgjende link.