Pagina 1 di 1

[RISOLTO] Rilevamento di una nuova versione di un eseguibile (upgrade_package)

Pubblicato: 9 settembre 2022 - 08:14
di alain17
Buongiorno,

Sto utilizzando un server WAPT Enterprise 2.2.2.12388 su Ubuntu.

La mia domanda riguarda la funzionalità upgrade_package disponibile nei pacchetti WAPT. Ho capito che questa funzione consente di definire come aggiornare il pacchetto; tuttavia, non capisco come venga eseguito il rilevamento della versione nella console.

Ad esempio, ho preso il pacchetto tis-powertoys e l'ho modificato, quindi attualmente ho due versioni. La versione originale (0.61.1-7) mostra correttamente che è disponibile un aggiornamento dall'editore (il repository Git di PowerToys) visualizzando il testo in rosso, ma la mia versione leggermente modificata (0.61.1-8) non segnala alcun aggiornamento, pur trattandosi dello stesso eseguibile.
powertoys-upgrade.png
powertoys-upgrade.png (13,63 KB) Visualizzato 3343 volte
Puoi spiegarmi come funziona questo meccanismo di rilevamento della versione e come posso configurarlo in modo che reagisca al rilascio di una nuova versione dell'eseguibile?

Non credo di aver modificato il codice upgrade_package, ma per sicurezza lo inserisco qui:

Codice: Seleziona tutto

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: Rilevamento di una nuova versione di un eseguibile (upgrade_package)

Pubblicato: 9 settembre 2022 - 11:25
di dcardon
Ciao,

il confronto si basa sui pacchetti a cui si fa riferimento nello store selezionato nella console (di default https://store.wapt.fr). Non utilizza le informazioni del pacchetto di aggiornamento. Se desideri effettuare confronti con il repository Git di origine, puoi recuperare le informazioni da https://luti.tranquil.it/ , ma al momento non sono integrate nella visualizzazione della console.

Se una nuova versione del pacchetto è disponibile sul sito web dell'editore, potrebbe essere già presente nel repository wapt-testing, https://wapt.tranquil.it/wapt-testing/ , che ti consigliamo di controllare.

Cordiali saluti,

Denis

Re: Rilevamento di una nuova versione di un eseguibile (upgrade_package)

Pubblicato: 9 settembre 2022 - ore 14:00
di alain17
Salve,

grazie per la risposta. È un peccato che non sia ancora possibile, ma si potrebbe pensare di implementarlo in una versione futura? Ad esempio, tramite una funzione che potrebbe essere integrata nel pacchetto?

Cordiali saluti

Re: Rilevamento di una nuova versione di un eseguibile (upgrade_package)

Pubblicato: 9 settembre 2022 - 16:10
di dcardon
Per il recupero della versione del software, è sempre necessario ricorrere a qualche stratagemma, anche per i siti con API JSON (che non rispettano il proprio formato), e ciò richiede aggiornamenti regolari. Molti programmi software non forniscono nemmeno una versione coerente sul proprio sito web, e bisogna monitorare le modifiche da soli...

La soluzione migliore sarebbe integrare l'interfaccia del repository in LUTI, ma se il pacchetto non è ancora disponibile (perché lo sviluppatore è stato più creativo del solito con il suo sito web o il suo software), anche questo non aiuta molto. Normalmente, una volta che il nuovo software viene elencato in LUTI, il pacchetto viene compilato, testato, validato e quindi caricato su wapt-testing, quindi è già disponibile.

Cordiali saluti,

Denis