Precação deTranspilação em RoomOS
Alterações no código JavaScript nas macros do RoomOS
Atualizamos a máquina que está executando as macros no RoomOS e, como resultado dessas atualizações, algumas convenções e funções do JavaScript não estarão mais disponíveis para as macros. Em particular, as funções relacionadas ao CommonJS não estão mais disponíveis. Alguns exemplos comuns de códigos que precisam de reescrita são:
requerer()
, incluindo:obrigatório('xapi')
- precisa de reescrever para a importação padrão de ECMAScript. Ex.,
const xapi = require('xapi')
alterado paraimportar xapi de 'xapi'
exigir.principal
módulo
, incluindo:module.exports
- precisa de reescrita para a exportação padrão de ECMAScriptmodule.name
- deve ser substituídopor_main_module_name()
Como isso está ativado ou desativado?
Essas alterações entrarão em vigor quando as Macros de Configuração XConfiguração do EvaluateTranspiled forem alternadas
de Verdadeiro
para Falso
. Essa configuração está presente há muito tempo e a alteração é implementada alterando-se o valor padrão em novas versões de Verdadeiro
para Falso
.
Se as macros quebrarem essa alteração, a configuração do alternância (xConfiguração Macros EvaluateTranspiled: Verdadeiro
) será uma correção de curto prazo para fazê-las funcionar como antes. Observe, no entanto, que essa é apenas uma solução temporária: essa alternância desaparecerá após um período de transição.
Da mesma forma, em versões mais antigas de RoomOS, essa alteração pode ser testada sem ser atualizando definindo a alternância para Falso
.
Observação: se uma macro for sálvia no dispositivo enquanto a alternância for Falsa
e você posteriormente decidir TURN a alternância de volta para Verdadeiro
, salvar novamente essas macros no editor de macro poderá ser necessário.
Quando essas mudanças entrarão em vigor?
O valor padrão da alternância EvaluateTranspiled foi alterado para
Falso , começando com
RoomOS pode 2025 (11.28) , o que significa que osdispositivos alternarão por padrão quando atualizados. Na mesma versão, a etapa de transpilação ao salvar macros através do XAPI é desativada por padrão. Se a transpilação for necessária por meio da XAPI, a opção de comando transpilar deve ser explicitamente definida como verdadeira.
A partir do RoomOS de julho 2025 (11.30) , um diagnóstico será mostrado quando a alternância estiver definida como Verdadeiro
. Ainda funcionará como antes.
Avançar a alternância será completamente removido e o dispositivo funcionará como se estivesse configurado como Falso
. Pretendemos implementar essa mudança em novembro de 2025. Essa data pode mudar à medida que vemos quantos de nossos clientes são capazes de atualizar suas macros, mas o tempo é medido em meses, não anos. As datas exatas serão publicadas aqui e nas notas de versão dos lançamentos relevantes do RoomOS.
Todos os clientes que, apesar de nossos melhores esforços em tentar notificar e informar sobre as mudanças, vêem suas macros falharem quando as mudanças estiverem permanentemente em vigor no RoomOS ainda poderão usar a atualização do software com atraso de até 6 meses que é fornecida através do Control Hub para dispositivos registrados em nuvem para retardar a alteração.
Por que isso é necessário? Detalhes técnicos
O principal motor dessa mudança é que atualizamos nosso mecanismo JavaScript para usar o QuickJS, que serve como um tempo de execução JavaScript moderno e atualizado para sistemas incorporados. Depois disso, uma vez que não é mais necessário com um mecanismo JavaScript moderno, agora estamos removendo o suporte para transpilação de JavaScript. Remover a etapa extra de transpilação de todo o código reduz o tempo de carga ao implantar e executar código, bem como reduzir a complexidade na plataforma.
O comutador do mecanismo JavaScript é controlado por XConfiguração de Macros QuickJSEngine: Desativado
para Ativado
. Essa mudança foi implementada no RoomOS Dezembro 2023 (11.11) e planejamos remover essa configuração alternando na mesma linha do tempo que o EvaluateTranspiled
.
Estamos fazendo essas mudanças para garantir que o RoomOS atue ao máximo e que possamos ajudá-lo a escalar a implantação de ramais javaScript de forma eficiente e segura.
Leia mais sobre macros no roomos.cisco.com.