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

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
alain17
Messages : 24
Inscription : 17 juin 2022 - 07:32

09 sept. 2022 - 08:14

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) Consulté 579 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
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1412
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

09 sept. 2022 - 11:25

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
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
alain17
Messages : 24
Inscription : 17 juin 2022 - 07:32

09 sept. 2022 - 14:00

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
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1412
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

09 sept. 2022 - 16:10

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
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
Verrouillé