Saltar al contenido principal

Canales de lanzamiento

Applies to
Windows
MacOS
Linux

Los canales son una parte fundamental de cómo Velopack entiende y construye los lanzamientos. Cada lanzamiento debe pertenecer a un canal. Si no especificas un canal al crear un lanzamiento (mediante el argumento --channel), el canal predeterminado será el nombre del sistema operativo de destino (p. ej., win, osx o linux).

Al crear lanzamientos, Velopack generará un archivo releases.{channel}.json que debe subirse junto con tus otros recursos (p. ej., .nupkg). Así es como UpdateManager sabe qué lanzamientos están disponibles.

En general, no deberías proporcionar un canal al constructor de UpdateManager (déjalo en null). En este caso, solo buscará paquetes de actualización en el mismo canal para el que se creó el lanzamiento actual. Por ejemplo, si proporcionaste el argumento --channel stable a vpk e instalaste tu aplicación, UpdateManager buscará automáticamente el archivo releases.stable.json al comprobar si hay actualizaciones.

tip

Por motivos de compatibilidad con versiones anteriores, Velopack también generará un archivo RELEASES (para el canal win), o un archivo RELEASES-{channel} (para cualquier otro canal). Implementar estos archivos junto con el releases.{channel}.json permitirá que las aplicaciones antiguas actualicen a Velopack. Si no tienes usuarios con versiones antiguas de tu software, puedes ignorar estos archivos.

Cambio de canales en aplicaciones instaladas

A menudo es conveniente permitir que los usuarios cambien de canal fácilmente. Por ejemplo, si tus usuarios descargaron un instalador para la versión "stable" de tu aplicación, solo recibirán actualizaciones del canal "stable". Más adelante, deciden que desean cambiar al canal "beta" para probar algunas funciones experimentales de tu aplicación.

Lee más sobre cómo cambiar de canales aquí.

Implementación de aplicaciones multiplataforma

Es importante que, al implementar aplicaciones multiplataforma (o multi-arquitectura), cada os/rid único tenga su propio canal. ¡No sería bueno que tu aplicación de Windows intentara instalar un paquete de OSX, etc.!

Los canales predeterminados son win, osx o linux, por lo que si solo distribuyes un lanzamiento por plataforma, no necesitas especificar un argumento de canal; todo debería funcionar automáticamente. Si distribuyes canales de funciones (p. ej., 'stable', 'beta') o necesitas distribuir múltiples versiones de tu aplicación por sistema operativo (p. ej., win-x64, win-arm64), tendrás que definir una estrategia de canales que no genere conflictos.

Por ejemplo, si estuviera distribuyendo una aplicación en Windows y OSX que necesitara ser compatible con x64 y arm64, y también necesitara ser compatible con "stable" y "beta", necesitaría los siguientes 8 canales:

  • win-x64-stable
  • win-x64-beta
  • win-arm64-stable
  • win-arm64-beta
  • osx-x64-stable
  • osx-x64-beta
  • osx-arm64-stable
  • osx-arm64-beta

Renombrar un canal

No puedes renombrar un canal como tal, pero puedes reemplazarlo (es decir, forzar a todos tus usuarios a cambiar al nuevo canal). Imagina que has estado publicando una aplicación que solo es compatible con x64 en Windows en el canal stable hasta ahora, pero ahora te gustaría lanzar una versión arm64 de tu aplicación. Por lo tanto, quieres migrar a todos los usuarios del canal stable a win-x64, mientras también creas un nuevo canal llamado win-arm64.

Debes publicar tu próxima actualización (digamos v2.0.0) usando --channel win-x64, lo que creará un nuevo archivo releases.win-x64.json. Ahora puedes copiar este archivo y renombrarlo como releases.stable.json e implementar ambos archivos junto con tu .nupkg v2.0.0 en tu servidor de actualizaciones. Cualquier usuario en el canal "stable" encontrará el archivo releases.stable.json y actualizará a tu lanzamiento v2.0.0 win-x64, y una vez hecho esto, buscará futuras actualizaciones en releases.win-x64.json. Solo necesitas hacer esto una vez; no necesitarás actualizar el archivo releases.stable.json de nuevo. Sin embargo, puede que no quieras eliminarlo para que los usuarios que no hayan abierto tu aplicación en algún tiempo puedan seguir encontrando las nuevas actualizaciones.

En concreto, tu servidor de actualizaciones pasa de esto:

releases.stable.json (points at v1.x.x win-x64 releases)

a esto (después de publicar v2.0.0 en win-x64 y copiar el índice):

releases.win-x64.json (v2.0.0 — the new canonical channel)
releases.stable.json (a copy of releases.win-x64.json, so legacy "stable" users find v2.0.0)