Transpile deprecation on RoomOS
Promene JavaScript koda u RoomOS makroima
Ažurirali smo mašineriju koja pokreće makroe na RoomOS-u, a kao rezultat ovih ažuriranja neke JavaScript konvencije i funkcije više neće biti dostupne makroima. Konkretno, funkcije povezane sa CommonJS-om više nisu dostupne. Neki uobičajeni primeri koda koji treba prepisati su:
zahtevaju (),
uključujući:require('xapi')
- potrebno je prepisivanje na standardni ECMAScriptuvoz
. Na primer,const kapi = rekuire('kapi')
promenjen dauveze kapi iz 'kapi'
Rekuire.Main
modul
, uključujući:module.exports
- potrebno je prepisivanje na standardni ECMAScriptizvoz
module.name
- treba zameniti sa_main_module_name()
Kako se ovo uključuje i isključuje?
Ove promene stupaju na snagu kada se kConfiguration Macros EvaluateTranspiled
prebacuje sa True
na False
. Ova postavka je prisutna već duže vreme i promena se uvodi promenom podrazumevane vrednosti u novim izdanjima iz True
u False
.
Ako se makroi prekinu na ovoj promeni, eksplicitno podešavanje prekidača nazad (xConfiguration Macros EvaluateTranspiled: True
) je kratkoročno rešenje da bi oni radili kao i ranije. Imajte na umu, međutim, da je ovo samo privremeno rešenje: Ovaj prekidač će nestati nakon prelaznog perioda.
Slično tome, na starijim verzijama RoomOS-a ova promena se može testirati bez nadogradnje postavljanjem prekidača na False
.
Napomena: Ako je makro sačuvan na uređaju dok je prekidač False i kasnije odlučite da TURN prekidač nazad na
True
, možda će biti potrebno ponovno čuvanje tih makroa u uređivaču makroa.
Kada će ove promene stupiti na snagu?
Podrazumevana vrednost prekidača EvaluateTranspiled
je promenjena u False
počevši od RoomOS May 2025 (11.28), što znači da će se uređaji podrazumevano prebaciti kada se nadogradi. U istoj verziji, korak transpilacije prilikom čuvanja makroa kroz XAPI je podrazumevano isključen. Ako je transpilacija potrebna preko XAPI-a, opcija transpile komande mora biti eksplicitno podešena na true.
Počevši od RoomOS jula 2025 (11.30) dijagnostika će biti prikazana kada je prekidač podešen na True
. I dalje će raditi kao i ranije.
Ubuduće prekidač će biti potpuno uklonjen i uređaj će se ponašati kao da je podešen na False
. Cilj nam je da ovu promenu uvedemo u novembru 2025. godine. Ovaj datum se može promeniti jer vidimo koliko naših kupaca može da ažurira svoje makroe, ali vremenska linija se meri u mesecima, a ne godinama. Tačni datumi će biti objavljeni ovde i u napomenama o izdavanju relevantnih izdanja RoomOS-a.
Svi kupci koji, uprkos našim najboljim naporima u pokušaju da obaveštimo i informišemo o promenama, vide da njihovi makroi ne uspevaju kada su promene trajno na snazi u RoomOS-u mogu i dalje koristiti (do) KSNUMKS-mesečno odloženo ažuriranje softvera koje se obezbeđuje preko Control Hub-a za uređaje registrovane u oblaku kako bi odložili promenu.
Zašto je to neophodno? Tehnički detalji
Glavni pokretač za ovu promenu je da smo ažurirali naš JavaScript motor da koristi KuickJS, koji služi kao moderan, ažuriran JavaScript runtime za ugrađene sisteme. Nakon toga, pošto više nije potreban sa modernim JavaScript motorom, sada uklanjamo podršku za transpilaciju JavaScript-a. Uklanjanje dodatnog koraka prevođenja svih koda smanjuje vreme učitavanja prilikom primene i izvršavanja koda, kao i smanjenje složenosti platforme.
Prekidač JavaScript motora kontroliše xConfiguration Macros QuickJSEngine: Off
promenjen u On
. Ova promena je uvedena u RoomOS decembar 2023 (11.11), i planiramo da uklonimo ovaj prekidač konfiguracije na istoj vremenskoj liniji kao i EvaluateTranspiled
.
Radimo ove promene kako bismo osigurali da RoomOS obavlja maksimalno i da vam možemo pomoći da smanjite primenu JavaScript ekstenzija na efikasan i siguran način.
Pročitajte više o makroima na roomos.cisco.com.