Page 1 sur 1

[RESOLU] Détection de nouvelle version d'un exécutable (upgrade_package)

Posté : 09 sept. 2022 - 08:14
par alain17
Bonjour,

Je fais tourner un serveur WAPT Entreprise 2.2.2.12388 sous Ubuntu.

Ma question concerne la fonctionnalité d'upgrade_package disponible dans les paquets WAPT. J'ai bien compris que cette fonction permet de définir comment le paquet doit être mis à jour, en revanche, je n'arrive pas à comprendre par quel mécanisme la détection de version est effectuée dans la console.

Par exemple, j'ai repris le package tis-powertoys et l'ai modifié, de sorte que j'ai actuellement deux versions. La version d'origine (0.61.1-7) montre bien qu'une mise à jour est disponible chez l'éditeur (le repository Git de PowerToys) en affichant le texte en rouge, mais ma version légèrement modifiée (0.61.1-8) ne signale aucune mise à jour, alors qu'il s'agit du même exécutable.
powertoys-upgrade.png
powertoys-upgrade.png (13.63 Kio) Vu 1485 fois
Pouvez-vous me dire comment fonctionne ce mécanisme de détection de version et comment je peux le configurer pour qu'il réagisse à la publication d'une nouvelle version de l'exécutable ?

Je ne crois pas avoir modifié le code de upgrade_package, mais à tout hasard je le place ici:

Code : Tout sélectionner

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: Détection de nouvelle version d'un exécutable (upgrade_package)

Posté : 09 sept. 2022 - 11:25
par dcardon
Bonjour,

la comparaison se base sur les paquets référencé dans le store sélectionné dans la console (par défaut https://store.wapt.fr). Ca n'utilise pas les infos du update package. Si vous voulez faire des comparaisons par rapport au git source, les infos peuvent être récupéré depuis https://luti.tranquil.it/ , mais elles ne sont pas intégré dans la visu console pour l'instant.

Si une nouvelle version du paquet est dispo sur le site de l'éditeur, il est possible qu'elle soit déjà dans le dépôt wapt-testing, https://wapt.tranquil.it/wapt-testing/ , à vérifier.

Cordialement,

Denis

Re: Détection de nouvelle version d'un exécutable (upgrade_package)

Posté : 09 sept. 2022 - 14:00
par alain17
Bonjour,

Merci pour votre réponse. Dommage que ça ne soit pas encore possible, mais est-ce que c'est quelque chose d'envisageable pour une future version ? Par exemple via une fonction implémentable dans le paquet ?

Meilleures salutations

Re: Détection de nouvelle version d'un exécutable (upgrade_package)

Posté : 09 sept. 2022 - 16:10
par dcardon
Pour les récupérations de version de logiciel, il y a toujours un peu de bidouille, et cela même pour les sites qui ont des api json (qui ne respecte pas leur propre format), et cela demande un peu de patch régulièrement. Pas mal de logiciel ne fournissent même pas de version cohérente sur leur site et il faut monitorer les changements tout cours...

Le mieux sera de le plugger l'interface du dépôt sur le LUTI, mais bon, si le paquet n'est pas encore dispo (parce que l'éditeur a fait preuve de plus de créativité que d'habitude avec son site web ou son logiciel), ça n'aide pas non plus beaucoup. Normalement une fois que le nouveau logiciel est référencé dans le LUTI, le paquet est buildé, testé, validé puis uploadé dans wapt-testing, donc déjà dispo.

Cordialement,

Denis