Dépréciation de Transpile sur RoomOS
Modifications apportées au code JavaScript dans les macros RoomOS
Nous avons mis à jour les machines exécutant les macros sur RoomOS et, à la suite de ces mises à jour, certaines conventions et fonctions JavaScript ne seront plus disponibles pour les macros. En particulier, les fonctions liées à CommonJS ne sont plus disponibles. Voici quelques exemples courants de code nécessitant une réécriture :
require(),
y compris :require('xapi')
- doit être réécrit dans l'importation ECMAScriptstandard
. Par exemple,const xapi = require('xapi')
changé pourimporter xapi de 'xapi'
require.main
,
y compris :module.exports
- doit être réécrit dans l'exportation ECMAScriptstandard
module.name
- doit être remplacé par_main_module_name()
Comment cela est-il activé et désactivé ?
Ces modifications prennent effet une fois que xConfiguration Macros EvaluateTranspiled
est basculé de True
à False
. Ce paramètre existe depuis longtemps et le changement est mis en œuvre en modifiant la valeur par défaut dans les nouvelles versions de True
à False
.
Si les macros se cassent lors de cette modification, la définition explicite de la bascule (xConfiguration Macros EvaluateTranspiled : True
) est une solution à court terme pour les faire fonctionner comme avant. Notez toutefois qu'il ne s'agit que d'une solution temporaire : cette bascule disparaîtra après une période de transition.
De même, sur les anciennes versions de RoomOS, cette modification peut être testée sans mise à niveau en définissant la bascule sur False
.
Remarque : Si une macro est enregistrée sur l'appareil alors que la bascule est False
et que vous décidez plus tard de TURN la bascule à nouveau à True
, il peut être nécessaire de réenregistrer ces macros dans l'éditeur de macros.
Quand ces changements entreront-ils en vigueur ?
La valeur par défaut de la bascule EvaluateTranspiled
a été modifiée en False
à partir de RoomOS May 2025 (11.28), ce qui signifie que les appareils basculeront par défaut lors de la mise à niveau. Dans la même version, l'étape de transposition lors de l'enregistrement de macros via XAPI est désactivée par défaut. Si la transpilation est requise via XAPI, l'option de commande transpile doit être explicitement définie sur true.
À partir de RoomOS July 2025 (11.30) un diagnostic s'affiche lorsque le basculement est défini sur True
. Cela fonctionnera toujours comme avant.
À l'avenir, la bascule sera complètement supprimée et l'appareil se comportera comme s'il était défini sur Faux
. Nous prévoyons de déployer ce changement en novembre 2025. Cette date peut changer à mesure que nous voyons combien de nos clients sont en mesure de mettre à jour leurs macros, mais la chronologie est mesurée en mois, pas en années. Les dates exactes seront publiées ici et dans les notes de version des versions pertinentes de RoomOS.
Tous les clients qui, malgré tous nos efforts pour essayer de notifier et d'informer sur les modifications, voient leurs macros échouer lorsque les modifications sont définitivement en place dans RoomOS peuvent toujours utiliser la mise à jour logicielle retardée (jusqu'à) 6 mois fournie via Control Hub pour les appareils enregistrés dans le cloud pour retarder la modification.
Pourquoi est-ce nécessaire ? Détails techniques
Le principal moteur de ce changement est que nous avons mis à jour notre moteur JavaScript pour utiliser QuickJS, qui sert de runtime JavaScript moderne et mis à jour pour les systèmes embarqués. Après cela, puisqu'il n'est plus nécessaire avec un moteur JavaScript moderne, nous supprimons maintenant le support de la transpilation de JavaScript. La suppression de l'étape supplémentaire de transpillage de tout le code réduit le temps de chargement lors du déploiement et de l'exécution du code, tout en réduisant la complexité de la plate-forme.
Le commutateur de moteur JavaScript est contrôlé par xConfiguration Macros QuickJSEngine : Off
changé en On
. Ce changement a été déployé dans RoomOS December 2023 (11.11), et nous prévoyons de supprimer cette bascule de configuration sur la même chronologie que EvaluateTranspiled
.
Nous effectuons ces modifications pour nous assurer que RoomOS fonctionne au maximum, et que nous pouvons vous aider à faire évoluer le déploiement des extensions JavaScript de manière efficace et sécurisée.
En savoir plus sur les macros sur roomos.cisco.com.