Página 1 de 1

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

Publicado: 9 de septiembre de 2022 - 8:14 a. m.
por alain17
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 3350 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

Re: Detección de una nueva versión de un ejecutable (upgrade_package)

Publicado: 9 de septiembre de 2022 - 11:25 a. m.
por dcardon
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

Re: Detección de una nueva versión de un ejecutable (upgrade_package)

Publicado: 9 de septiembre de 2022 - 14:00
por alain17
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.

Re: Detección de una nueva versión de un ejecutable (upgrade_package)

Publicado: 9 de septiembre de 2022 - 16:10
por dcardon
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