Seite 1 von 1

[GELÖST] Erkennung einer neuen Version einer ausführbaren Datei (upgrade_package)

Veröffentlicht: 9. September 2022 - 8:14 Uhr
von alain17
Guten Morgen,

Ich betreibe einen WAPT Enterprise 2.2.2.12388 Server unter Ubuntu.

Meine Frage betrifft die Funktion `upgrade_package` in WAPT-Paketen. Mir ist bewusst, dass man mit dieser Funktion festlegen kann, wie das Paket aktualisiert werden soll; allerdings verstehe ich nicht, wie die Versionserkennung in der Konsole funktioniert.

Ich habe beispielsweise das tis-powertoys-Paket genommen und modifiziert, sodass ich aktuell zwei Versionen habe. Die Originalversion (0.61.1-7) zeigt korrekt an, dass ein Update vom Herausgeber (dem PowerToys-Git-Repository) verfügbar ist, indem der Text rot dargestellt wird. Meine leicht modifizierte Version (0.61.1-8) hingegen meldet kein Update, obwohl es sich um dieselbe ausführbare Datei handelt.
powertoys-upgrade.png
powertoys-upgrade.png (13,63 KB) 3503 Aufrufe
Können Sie mir erklären, wie dieser Versionserkennungsmechanismus funktioniert und wie ich ihn so konfigurieren kann, dass er auf die Veröffentlichung einer neuen Version der ausführbaren Datei reagiert?

Ich glaube nicht, dass ich den Code des Upgrade-Pakets verändert habe, aber sicherheitshalber füge ich ihn hier ein:

Code: Alle auswählen

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

Betreff: Erkennung einer neuen Version einer ausführbaren Datei (Upgrade-Paket)

Veröffentlicht: 9. September 2022 - 11:25 Uhr
von dcardon
Hallo,

der Vergleich basiert auf den im Konsolenfenster ausgewählten Paketen (standardmäßig https://store.wapt.fr). Informationen aus dem Update-Paket werden nicht berücksichtigt. Für Vergleiche mit dem Quell-Git-Repository können Sie die entsprechenden Informationen unter https://luti.tranquil.it/ . Diese werden derzeit jedoch nicht in der Konsole angezeigt.

Falls eine neue Version des Pakets auf der Website des Herausgebers verfügbar ist, befindet sie sich möglicherweise bereits im wapt-testing-Repository ( https://wapt.tranquil.it/wapt-testing/ ). Bitte prüfen Sie dies.

Viele Grüße,

Denis

Betreff: Erkennung einer neuen Version einer ausführbaren Datei (Upgrade-Paket)

Veröffentlicht: 9. September 2022 – 14:00 Uhr
von alain17
Hallo,

vielen Dank für Ihre Antwort. Es ist schade, dass dies noch nicht möglich ist. Könnte man das in einer zukünftigen Version implementieren? Zum Beispiel über eine Funktion, die im Paket implementiert werden könnte?

Mit freundlichen Grüßen

Betreff: Erkennung einer neuen Version einer ausführbaren Datei (Upgrade-Paket)

Veröffentlicht: 9. September 2022 – 16:10 Uhr
von dcardon
Für die Versionsabfrage von Software ist immer ein kleiner Umweg nötig, selbst bei Websites mit JSON-APIs (die sich nicht an ihr eigenes Format halten), und regelmäßige Updates sind erforderlich. Viele Softwareprogramme bieten nicht einmal eine einheitliche Versionsnummer auf ihrer Website an, sodass man die Änderungen komplett überwachen muss.

Die beste Lösung wäre die Integration der Repository-Schnittstelle in LUTI. Wenn das Paket aber noch nicht verfügbar ist (weil der Entwickler bei seiner Website oder Software besonders kreativ war), hilft das auch nicht viel. Normalerweise wird das Paket, sobald die neue Software in LUTI gelistet ist, erstellt, getestet, validiert und dann auf wapt-testing hochgeladen, sodass es bereits verfügbar ist.

Viele Grüße,

Denis