[RESUELTO] Detección de una nueva versión de un ejecutable (upgrade_package)

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
alain17
Mensajes: 24
Inscripción: 17 de junio de 2022 - 07:32

9 de septiembre de 2022 - 8:14 a. m

Buen día,

Estoy ejecutando un servidor WAPT Enterprise 2.2.2.12388 en Ubuntu.

Mi pregunta se refiere a la función "upgrade_package" disponible en los paquetes WAPT. Entiendo que esta función permite definir cómo se debe actualizar el paquete; sin embargo, no entiendo cómo se realiza la detección de versiones en la consola.

Por ejemplo, modifiqué el paquete tis-powertoys, por lo que actualmente tengo dos versiones. La versión original (0.61.1-7) indica correctamente que hay una actualización disponible del editor (el repositorio Git de PowerToys) mostrando el texto en rojo, pero mi versión ligeramente modificada (0.61.1-8) no informa de ninguna actualización, a pesar de ser el mismo ejecutable.
juguetes-de-poder-actualización.png
powertoys-upgrade.png (13,63 KB) Visto 3345 veces
¿Puede decirme cómo funciona este mecanismo de detección de versiones y cómo puedo configurarlo para que reaccione ante el lanzamiento de una nueva versión del ejecutable?

No creo que haya modificado el código upgrade_package, pero por si acaso, lo pondré aquí:

Código: Seleccionar todo

def update_package():
    # Declaring local variables
    result = False
    proxies = get_proxies()
    architecture = control.architecture
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
    git_repo = "microsoft/PowerToys"
    url_api = "https://api.github.com/repos/%s/releases/latest" % git_repo
    bin_name_sub = "PowerToysSetup%s.exe"
    # Getting latest version information from official sources
    print("API used is: %s" % url_api)
    json_load = json.loads(wgets(url_api, proxies=proxies))

    for download in json_load["assets"]:
        if bin_contains in download["name"] and architecture in download["name"]:
            url_dl = download["browser_download_url"]
            version = json_load["tag_name"].replace("v", "")
            latest_bin = download["name"]
            break

    print("Latest %s version is: %s" % (app_name, version))
    print("Download URL is: %s" % url_dl)

    # Downloading latest binaries
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(url_dl, latest_bin, proxies=proxies)

    # Changing version of the package
    if Version(version) > control.get_software_version():
        print("Software version updated from: %s to: %s" % (control.get_software_version(), Version(version)))
        result = True
    control.version = "%s-%s" % (Version(version), control.version.split("-", 1)[-1])
    # control.set_software_version(Version(version))
    control.save_control_to_wapt()

    # Deleting outdated binaries
    remove_outdated_binaries(version)

    # Validating update-package-sources
    return result
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

9 de septiembre de 2022 - 11:25

Hola,

la comparación se basa en los paquetes referenciados en la tienda seleccionada en la consola (por defecto https://store.wapt.fr). No utiliza información del paquete de actualización. Si desea realizar comparaciones con el repositorio Git de origen, puede obtener la información de https://luti.tranquil.it/ , pero actualmente no está integrada en la visualización de la consola.

Si hay una nueva versión del paquete disponible en el sitio web del editor, es posible que ya se encuentre en el repositorio wapt-testing, https://wapt.tranquil.it/wapt-testing/ , que debería consultar.

Saludos,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
alain17
Mensajes: 24
Inscripción: 17 de junio de 2022 - 07:32

9 de septiembre de 2022 - 14:00

Hola,

gracias por tu respuesta. Es una pena que aún no sea posible, pero ¿sería algo que se podría implementar en una versión futura? Por ejemplo, ¿mediante una función que se pudiera incluir en el paquete?

Saludos cordiales.
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

9 de septiembre de 2022 - 16:10

Para obtener la versión del software, siempre hay que recurrir a soluciones alternativas, incluso para sitios con API JSON (que no se ajustan a su propio formato), y requiere actualizaciones periódicas. Muchos programas ni siquiera ofrecen una versión consistente en su sitio web, y hay que estar pendiente de los cambios...

La mejor solución sería integrar la interfaz del repositorio en LUTI, pero si el paquete aún no está disponible (porque el desarrollador ha sido más creativo de lo habitual con su sitio web o software), tampoco sirve de mucho. Normalmente, una vez que el nuevo software aparece en LUTI, el paquete se compila, se prueba, se valida y se sube a wapt-testing, por lo que ya está disponible.

Saludos cordiales,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Bloqueado