Opciones de actualización automática de complementos codificadas en addin.def¿Qué motivó esta solicitud? Con la llegada de JMP19, observé una función de actualización automática para complementos que buscaba actualizaciones de archivos en una carpeta de instalación. La implementación era algo engorrosa y terminaba afectando a gran parte de la infraestructura que ya teníamos.
¿Qué mejora le gustaría ver? En lugar de estar ubicadas en la configuración de Vistas > Complementos, estas opciones deberían estar codificadas en el archivo addin.def, necesario para todos los complementos. Esto facilitará la gestión para quienes ya cuentan con infraestructuras existentes, así como la implementación iterativa de las interesantes funciones de JMP.
¿Por qué es importante esta idea? Quiero llevar esta función al siguiente nivel. Es una idea excelente, pero su implementación actual puede causar problemas a otros usuarios. En mi infraestructura actual, las actualizaciones se comparan con una lista maestra para saber cuándo se publican nuevas versiones. La función de JMP podría eliminar parte de esta necesidad, pero requiere un diseño más refinado. Algunos ejemplos:
1. El complemento se instaló desde la ubicación correcta, todo bien... pero luego el usuario no puede acceder a la ubicación y necesita la actualización. Le paso el archivo jmpaddin para que pueda continuar. Lo arrastra a JMP... ahora es posible que la fuente de instalación sea la carpeta de descargas y, por ese cambio, no reciba notificaciones de actualizaciones... codificar la fuente correcta en el archivo def permitiría que esto funcionara siempre.
2. Complementos de prueba. Al igual que en el punto 1, si tiene una carpeta donde se encuentran sus pruebas, instalar un archivo de prueba cambiaría la ubicación de instalación a la ubicación de prueba y no se notificaría cuando se publique una nueva versión de producción. Además, dependiendo de cómo se nombren los archivos, es posible que no se notifiquen las nuevas versiones de prueba, ya que estas versiones suelen incluirse en el nombre del archivo, por lo que no es posible una coincidencia exacta del nombre del archivo para las comprobaciones de actualización.
En ambos ejemplos, hay aspectos de lo que ha hecho JMP que podrían ser útiles, pero el equipo de despliegue necesita mayor control sobre cómo se marcarán sus complementos para su actualización. Probablemente haya más ejemplos, pero creo que esto es suficiente para empezar a integrar la gestión de actualizaciones en el archivo addin.def con una o más variables.
¡Gracias!
Automatización y scriptingRe: Opciones de actualización automática del complemento codificadas en addin.defGracias @nathan-clark por resaltar los problemas.
¿Cómo es la velocidad del nuevo enfoque en comparación con " las actualizaciones se verifican en una lista maestra" [como en el Administrador de complementos de @Justin_Chilton ]?
Re: Opciones de actualización automática del complemento codificadas en addin.defTodavía no he hecho ninguna prueba de velocidad, @hogi . Principalmente, me ha molestado porque ha estado causando problemas con mis otras implementaciones. Sospecho que la velocidad sería mayor en general, ya que parece que JMP solo comprueba si hay una nueva modificación del nombre de archivo en comparación con mi comparación con las fechas de lanzamiento reales de las compilaciones. La velocidad también se determinará en función de la carpeta "source" a la que JMP hace referencia.
Re: Opciones de actualización automática de complementos codificadas en addin.def - Estado cambiado a: Confirmado¡Gracias por tomarse el tiempo para compartir esta solicitud! Es una excelente retroalimentación.
Re: Opciones de actualización automática del complemento codificadas en addin.def@nathan-clark ¿Puedes indicar la documentación de esta función y su implementación actual? No entiendo qué implica esa implementación y no he encontrado información al respecto. ¿Estás diciendo que JMP busca en la carpeta desde la que el usuario abrió originalmente el archivo .jmpaddin? ¿Y qué busca allí? ¿Archivos .jmpaddin con nombres diferentes pero con el mismo ID de complemento en la definición del complemento? ¿O algo sobre la versión del complemento en la definición del complemento? ¿O el mismo nombre de archivo pero con algún cambio en el contenido?
Re: Opciones de actualización automática del complemento codificadas en addin.def@hardner No estoy seguro de que exista documentación. La información que tengo proviene de mis propias pruebas/observaciones y de un hilo de soporte con el soporte de JMP, donde vi que JMP 19 me hacía preguntas sobre la búsqueda de actualizaciones con algunos de mis complementos.
Y sí, si vas a Ver > Complementos deberías poder ver algunos de los elementos que he descrito... deberías ver una sección "Instalar fuente" así como una lista desplegable "Actualizar"... si el menú desplegable está configurado en "buscar actualizaciones..." JMP monitoreará la carpeta de instalación indicada, y no es fácil ni posible cambiarla, todavía.
No estoy seguro de cómo monitorea JMP. Supongo que se trata de un archivo .jmpaddin con el mismo nombre y una fecha de modificación más reciente. Pero podría estar equivocado... Mi principal pregunta es cómo controlar algunas de las piezas.
1. Ya tengo una infraestructura de actualización automática, por lo que no quiero que JMP monitoree nada y quiero que eso lo configure el propio complemento, sin opción de elección del usuario.
2. Si quiero que JMP monitoree, quiero controlar cómo JMP monitoriza las actualizaciones, como forzar el monitor de una carpeta PROD, lo que permitiría al usuario cargar archivos de prueba .jmpaddin sin afectar el monitor de PROD.
Poder codificar esto mediante addin.def me parece lo más lógico... y si un usuario realmente quiere anularlo, la opción Ver>Complementos sigue estando disponible. Sin embargo, la implementación actual, independientemente de las reglas subyacentes, rompe aspectos de la infraestructura que ya construí y uso para la implementación de mi suite de complementos.
¿Eso ayuda?
Re: Opciones de actualización automática del complemento codificadas en addin.def¡Habilitar automáticamente la actualización de manera predeterminada (a través de una configuración en el complemento) para los complementos de la empresa será un gran cambio!
Es tan arriesgado que un usuario olvida activar la función de actualización y, por lo tanto, queda atrapado con una versión antigua.
Una configuración en el complemento es mucho mejor que una en las preferencias locales. ¿Cómo garantizar que 100 de cada 100 usuarios activen la función en las preferencias locales?
Re: Opciones de actualización automática del complemento codificadas en addin.defSegún nuestra experiencia:
- se monitorea un archivo con el mismo nombre
- la actualización se activa cuando el archivo es nuevo (incluso si no se cambia la versión)
- cambiar otros archivos en la carpeta no afecta el mecanismo
beneficio comparado con Comprobación de actualización@AddInManager:
-Se pueden actualizar varios complementos de forma sincrónica
- modo silencioso (aunque no me atrevo; es bueno saber qué complemento se actualiza)
Re: Opciones de actualización automática del complemento codificadas en addin.defPor el contrario, quiero que 0 personas utilicen la función de actualización automática... hasta que tenga el 100% de control sobre los demás aspectos de la actualización automática 
Re: Opciones de actualización automática del complemento codificadas en addin.defGracias @nathan-clark y @hogi . Solicité ayuda para obtener más detalles sobre esto. Estoy totalmente de acuerdo en que se debe tener control sobre las opciones relacionadas con este comportamiento.
Re: Opciones de actualización automática del complemento codificadas en addin.defEntonces, si @nathan-clark quiere recuperar el control (no permitir seleccionar la opción manualmente), una "configuración forzada" será útil.
Para mi caso, alguna selección de la configuración predeterminada será suficiente.
Cuando se instalan complementos desde Sharepoint y se sincronizan con OneDrive local, cada usuario tendrá su propia ruta de instalación.
Al instalarlo desde una unidad de red, puede ser beneficioso forzar la "actualización automática" para que se mantenga en una ruta predeterminada.
Re: Opciones de actualización automática del complemento codificadas en addin.def¡De acuerdo! Por eso quiero que sea codificable mediante addin.def.
Lo más importante que no me gusta es el cambio de la fuente de instalación... como tu sharepoint @hogi , si instalas una versión beta, esa fuente puede modificarse a la ubicación de la beta... por lo que no serán notificados si se crea un nuevo PROD.
Pequeñas cosas como esa pueden romper potencialmente la infraestructura/caminos existentes
Afortunadamente, no creo que el "ascensor" sea súper difícil de soportar en múltiples vías.
Re: Opciones de actualización automática del complemento codificadas en addin.defSi descargaste el archivo de SharePoint y luego lo abriste desde "Descargas", la actualización automática no hará nada, ya que asume que la ubicación de instalación es... Creo que el cliente con el que trabajaba esperaba que esto permitiera especificar una ubicación remota para buscar actualizaciones (su servidor corporativo, SharePoint o cualquier otro). Independientemente de cómo hubiera abierto el archivo, esta ubicación oficial se habría especificado, por ejemplo, en addin.def, como el lugar para buscar actualizaciones. Y no habría errores si esa ubicación fuera inaccesible.
Re: Opciones de actualización automática del complemento codificadas en addin.def@hardner, puedes sincronizar tu SharePoint para que la carpeta aparezca en tu explorador de archivos como si fuera local. Dentro de una ubicación de SharePoint, suele haber un botón "Sincronizar" que la muestra como una carpeta sincronizada local, accesible como cualquier otra carpeta en tu unidad.
Si descargan el archivo directamente, tienes razón, eso también puede "romper" la ruta prevista.
No puedo asegurar al 100% que esto sea común en todas las empresas, pero al menos así funciona la nuestra... puede que también haya un botón para "crear acceso directo a OneDrive". Hace algo parecido, pero intento no usarlo (hablaremos de él para otro día).
Re: Opciones de actualización automática del complemento codificadas en addin.defEntendido. Uso Sync, pero también tengo SharePoint que no me permiten sincronizar. Lo primero que pensé fue descargar algo así para tener el archivo. En cualquier caso, me di cuenta de que esta lógica solo funciona si los usuarios abren el archivo .jmpaddin directamente desde la ubicación oficial donde aparecerán las actualizaciones, y no me queda claro si se puede obligar a los usuarios a hacerlo en lugar de descargarlo, enviarlo por correo electrónico o cualquier otra opción.
Re: Opciones de actualización automática del complemento codificadas en addin.defSí, tiene sentido. Creo que lo que JMP intenta lograr tiene mucho sentido y puede simplificar muchos dolores de cabeza... Mi mayor motivación para el cambio fue que su implementación rompe la mía
Pero con los controles adecuados, ¡quizás pueda descontinuar parte de mi infraestructura para depender de la implementación de JMP!
Re: Opciones de actualización automática del complemento codificadas en addin.def¿Qué tal: AddinLoad.jsl ?
- sobrescribir el archivo de instalación al estándar de la empresa
- si Test-Dir: muestra una advertencia de que hay una versión de prueba instalada - sugiere al usuario instalar la versión oficial desde la fuente oficial
- si InstallationDir=Descargar -> deshabilitar actualización
Sólo tenemos que averiguar dónde está guardada la información y luego leerla, acceder a ella y modificarla.
Re: Opciones de actualización automática del complemento codificadas en addin.defLos archivos addinload pueden ser complicados según cómo se usen y el orden en que JMP instala las cosas. Creé mis cosas basándome en bibliotecas que se incluyen cuando las necesito... pero ya había usado addinload antes. Por lo demás, mi sistema era muy sólido, hasta que JMP devolvió las opciones al usuario. 
En definitiva, utilizaré el material de JMP si es mejor que el mío, pero no quiero que me obliguen a utilizarlo.
Re: Opciones de actualización automática del complemento codificadas en addin.defAh, aquí está:
Open(
"$USER_APPDATA_ALL/addinRegistryV2.xml",
XML Settings(
Stack( 0 ),
Row( "/AddinReg/Addins/Addin/@id" ),
Col(
"/AddinReg/Addins/Addin/@id",
Column Name( "Addin.id" ),
Fill( "Use Once" ),
Type( "Character" ),
Format( {"Best", Use thousands separator( 0 ), 15} ),
Modeling Type( "Continuous" )
),
Col(
"/AddinReg/Addins/Addin/@timeStamp",
Column Name( "Addin.timeStamp" ),
Fill( "Use Once" ),
Type( "Numeric" ),
Format( {"Best", Use thousands separator( 0 ), 15} ),
Modeling Type( "Continuous" )
),
Col(
"/AddinReg/Addins/Addin/@installSource",
Column Name( "Addin.installSource" ),
Fill( "Use Once" ),
Type( "Numeric" ),
Format( {"Best", Use thousands separator( 0 ), 15} ),
Modeling Type( "Continuous" )
),
Col(
"/AddinReg/Addins/Addin/@installSourceTimeStamp",
Column Name( "Addin.installSourceTimeStamp" ),
Fill( "Use Once" ),
Type( "Numeric" ),
Format( {"Best", Use thousands separator( 0 ), 15} ),
Modeling Type( "Continuous" )
),
Col(
"/AddinReg/Addins/Addin/@autoUpdate",
Column Name( "Addin.autoUpdate" ),
Fill( "Use Once" ),
Type( "Numeric" ),
Format( {"Best", Use thousands separator( 0 ), 15} ),
Modeling Type( "Continuous" )
),
Col(
"/AddinReg/Addins/Addin/@updatePrompt",
Column Name( "Addin.updatePrompt" ),
Fill( "Use Once" ),
Type( "Character" ),
Format( {"Best", Use thousands separator( 0 ), 15} ),
Modeling Type( "Continuous" )
)
),
XML Wizard( 0 )
);
Simplemente elimine la etiqueta autoUpdate y sus colegas podrán confiar en su implementación sólida.
Tal vez instale un complemento UpdateCheck que verifique las configuraciones, las ajuste y se queje si las configuraciones son incorrectas.
Re: Opciones de actualización automática del complemento codificadas en addin.def¡Qué interesante, @hogi ! Definitivamente parece una solución alternativa con la que debería experimentar.
La compatibilidad con JMP también me proporcionó algo de JSL que puedo usar para desactivar la configuración cuando se producen actualizaciones, y también necesito experimentar con ello.
Names Default To Here( 1 );
/* Installing Add-In:
Open( Add-In to open,
<CHECK for="" updates="">
, // "always" will check for updates at startup and while jmp is running
<UPDATE prompt="">
) // whether or not the add-in will silently update or prompt first */ Open( \\NetworkLocation\addins\test.jmpaddin, Check For Updates( "never" ), Update Prompt( 0 ) );
</UPDATE>
</CHECK>
Re: Opciones de actualización automática del complemento codificadas en addin.def¡Ah, maravilloso!
Lo ideal es configurar un script por lotes para actualizar la actualización:
Ejecute todos los instaladores de complementos y ajuste la configuración.