Il principio degli aggiornamenti dei pacchetti?
Pubblicato: 18 luglio 2018 - 14:19
Buongiorno,
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/ :
Funziona perfettamente in PyScripter. Cliccando con il tasto destro del mouse su `update-package-source` e selezionando "Esegui", si aggiorna il software nella cartella e la versione nel file `control`. A questo punto basta eseguire `build-upload` e il gioco è fatto. Il problema è che non è possibile farlo direttamente dalla console. Forse non ho capito come; correggetemi se sbaglio.
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
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