Ho iniziato a utilizzare di recente la versione 1.5.1.26 di WAPT Community e ho una domanda che mi tormenta. Non capisco bene come funzionano gli aggiornamenti del pacchetto software.
Quando importo un pacchetto dallo store WAPT https://store.wapt.fr/ Utilizzando il pulsante "Importa da Internet", ricevo questo pacchetto nel mio repository privato. Finora tutto bene. Ma se sul sito ufficiale è disponibile una nuova versione del software, il pacchetto non si aggiorna automaticamente.
L'importazione del pacchetto dallo store WAPT aggiornerà i pacchetti nel mio repository privato? In tal caso, dipendiamo dalla persona che gestisce il pacchetto nello store? In caso contrario, dobbiamo attendere una nuova versione sullo store prima di reimportarlo nel nostro repository privato?
Un'altra domanda relativa agli aggiornamenti dei pacchetti
Ho notato che la versione di OwnCloud sullo store è obsoleta. Ho quindi creato il pacchetto e aggiunto una funzione `update_package()` che aggiornerà il codice sorgente se non è già aggiornato all'interno del pacchetto. Per chi utilizza ownCloud, ecco la funzione che recupera l'ultima versione del software dal sito web ufficiale https://owncloud.org/download/ :
Codice: Seleziona tutto
from setuphelpers import *
import glob
import re
def update_package():
htmlSource = wgets("https://owncloud.org/download/").splitlines()
filename = ''
realVersion = ''
for line in htmlSource:
match = re.search("https://download.owncloud.com/desktop/stable/ownCloud-.*-setup\.exe", line)
if match:
realVersion = line[line.find("ownCloud-")+9:line.find("-setup.exe")]
print("Last version : ", realVersion)
filename = 'ownCloud-%s-setup.exe' % realVersion
print("File name : ", filename)
exe = glob.glob('*.exe')
for fn in exe:
if fn != filename :
print 'remove' + fn
remove_file(fn)
if not isfile(filename):
print('Download' + filename)
wget('https://download.owncloud.com/desktop/stable/ownCloud-%s-setup.exe' % (realVersion), filename)
print ('Write ' + realVersion + '-0 in WAPT\\control')
from waptpackage import PackageEntry
pe = PackageEntry()
pe.load_control_from_wapt(os.getcwd())
pe.version = realVersion +'-0'
pe.save_control_to_wapt(os.getcwd())
print('The update is complete, you can now test and then launch a build upload.')
if __name__ == '__main__':
update_package()Per un'alternativa un po' "brutta", potrei includere l'aggiornamento del pacchetto all'inizio della funzione install() dopo aver verificato se la versione su Internet è superiore a quella del mio pacchetto; non l'ho ancora provato, ma non mi sembra molto adatto.
Grazie per il tuo feedback
