Transpile zastarelost na RoomOS
Promene JavaScript koda u RoomOS makroima
Ažurirali smo mašine koje pokreću makroe na RoomOS-u, a kao rezultat ovih ažuriranja neke JavaScript konvencije i funkcije više neće biti dostupne makroima. Konkretno, funkcije vezane za CommonJS više nisu dostupne. Neki uobičajeni primeri koda koji treba prepisivanje su:
require(), uključujući:require('xapi')- treba prepisati u standardni ECMAScriptuvoz. Npr.,const xapi = require('xapi')changed toimport xapi from 'xapi'rekuire.main
modul, uključujući:module.ekports- potrebno je prepisivanje na standardni ECMAScriptizvozmodule.name- treba zameniti sa_main_module_name()
Kako se ovo uključuje i isključuje?
Ove izmene stupaju na snagu kada se xConfiguration Macros EvaluateTranspiled prebaci iz True u False. Ova postavka je prisutna već duže vreme i promena je uvedena 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.
beleške: Ako je makro sačuvan na uređaju dok je prekidač False i kasnije odlučite da TURN prebacite nazad na True, možda će biti potrebno ponovno čuvanje tih makroa u makro editoru.
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 nadograde. U istoj verziji korak transpilacije prilikom čuvanja makroa preko XAPI je podrazumevano isključen. Ako je transpilacija potrebna preko XAPI opcija komande transpile mora biti eksplicitno podešena na true.
Počevši od RoomOS-a u julu 2025 (11.30) dijagnostika će biti prikazana kada je prekidač postavljen 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 postavljen na False. Cilj nam je da ovu promenu uvedemo u junu 2026. 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 beleškama o izdanju relevantnih izdanja RoomOS-a.
Svi korisnici koji, uprkos našim najboljim naporima u pokušaju da obavestimo i informišemo o promenama, vide da njihovi makroi ne uspevaju kada su promene trajno na mestu u RoomOS-u mogu i dalje da koriste (do) 6-mesečnog odloženog ažuriranja 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 transpilinga svih koda smanjuje vreme učitavanja prilikom primene i izvršavanja koda, kao i smanjenje složenosti na platformi.
Prekidač JavaScript motora kontroliše kConfiguration Macros KuickJSEngine: Isključeno 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 radi maksimalno i da vam možemo pomoći da smanjite raspoređivanje JavaScript ekstenzija na efikasan i siguran način.
Pročitajte više o makroima na roomos.cisco.com.