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

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
alain17
Messaggi: 24
Registrazione: 17 giugno 2022 - 07:32

9 settembre 2022 - 8:14

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 3341 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
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

9 settembre 2022 - 11:25

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
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
alain17
Messaggi: 24
Registrazione: 17 giugno 2022 - 07:32

9 settembre 2022 - 14:00

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
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

9 settembre 2022 - 16:10

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
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
Bloccato