Transpilna zastarelost sistema RoomOS
Spremembe kode JavaScript v makrih RoomOS
Posodobili smo stroje, ki poganjajo makre v sistemu RoomOS, in kot rezultat teh posodobitev nekatere konvencije in funkcije JavaScript ne bodo več na voljo makrom. Zlasti funkcije, povezane s CommonJS , niso več na voljo. Nekateri pogosti primeri kode, ki jo je treba prepisati, so:
zahtevati()
, vključno z:zahteva ("xapi")
- je treba ponovno napisati na standardni uvoz ECMAScripta. Npr.,
const xapi = zahteva ('xapi')spremenjeno
vuvoz xapi iz 'xapi'
zahtevaj.glavno
modul,
ki vključuje:module.exports
- je treba prepisati na standardni ECMAScriptizvoz
module.name
- je treba nadomestiti z_main_module_name()
Kako je to vklopljeno in izklopljeno?
Te spremembe začnejo veljati, ko je xConfiguration Macros EvaluateTranspiled
preklopljen iz »True
« v »False
«. Ta nastavitev je prisotna že dolgo časa, sprememba pa se uvede s spremembo privzete vrednosti v novih izdajah iz True
v False
.
Če se makri pri tej spremembi prekinejo, je izrecna nastavitev preklopa nazaj (xConfiguration Macros EvaluateTranspiled: True
) kratkoročna rešitev, da bodo delovali kot prej. Vendar upoštevajte, da je to le začasna rešitev: ta preklop bo izginil po prehodnem obdobju.
Podobno lahko pri starejših različicah RoomOS to spremembo preizkusite brez nadgradnje tako, da preklopno stikalo nastavite na False
.
Opomba: Če je makro shranjen v napravi , medtem ko je stikalo False
in se pozneje odločite za TURN preklop nazaj na True
, boste morda morali te makre znova shraniti v urejevalniku makrov.
Kdaj bodo te spremembe začele veljati?
Privzeta vrednost preklopnega stikala EvaluateTranspiled
je bila spremenjena v False
, začenši s sistemom RoomOS May 2025 (11.28), kar pomeni, da bodo naprave ob nadgradnji privzeto preklopile. V isti različici je korak pretvorbe pri shranjevanju makrov prek XAPI privzeto izklopljen. Če je prek XAPI potrebna transpilacija, mora biti možnost ukaza transpile izrecno nastavljena na true.
Začenši z RoomOS julij 2025 (11.30) bo prikazana diagnostika, ko je preklopno stikalo nastavljeno na True
. Še vedno bo delovalo kot prej.
Če greste naprej, bo preklopno stikalo popolnoma odstranjeno in naprava se bo obnašala, kot da je nastavljena na False
. To spremembo nameravamo uvesti novembra 2025. Ta datum se lahko spremeni, ko vidimo, koliko naših strank lahko posodobi svoje makre, vendar se časovnica meri v mesecih, ne letih. Točni datumi bodo objavljeni tukaj in v opombah ob izdaji ustreznih izdaj RoomOS.
Vse stranke, ki kljub našim prizadevanjem za obveščanje in obveščanje o spremembah vidijo, da njihovi makri ne uspejo, ko so spremembe trajno uvedene v sistemu RoomOS, lahko še vedno uporabijo (do) 6-mesečno zakasnjeno posodobitev programske opreme, ki je na voljo prek nadzornega središča za naprave, registrirane v oblaku, da odložijo spremembo.
Zakaj je to potrebno? Tehnične podrobnosti
Glavno gonilo za to spremembo je, da smo posodobili naš mehanizem JavaScript za uporabo QuickJS, ki služi kot sodoben, posodobljen izvajalnik JavaScript za vgrajene sisteme. Po tem, ker s sodobnim motorjem JavaScript ni več potreben, zdaj odstranjujemo podporo za transpilacijo JavaScripta. Odstranitev dodatnega koraka prelivanja vse kode skrajša čas nalaganja pri uvajanju in izvajanju kode ter zmanjšuje kompleksnost platforme.
Stikalo mehanizma JavaScript nadzoruje xConfiguration Macros QuickJSEngine: Izklopljeno
spremenjeno v Vklopljeno
. Ta sprememba je bila uvedena v RoomOS December 2023 (11.11) in nameravamo odstraniti to konfiguracijsko stikalo na isti časovni premici kot EvaluateTranspiled
.
Te spremembe izvajamo, da bi zagotovili, da RoomOS deluje maksimalno in da vam lahko pomagamo učinkovito in varno razširiti uvajanje razširitev JavaScript.
Več o makrih preberite na roomos.cisco.com.