Je découvre depuis quelques temps WAPT Community version 1.5.1.26 et une question me turlupine. Je ne comprends pas très bien comment fonctionne la mise à jour des paquets logiciels.
Lorsque j'importe un paquet depuis le store de WAPT https://store.wapt.fr/ avec le bouton "Importer depuis Internet", je reçois ce paquet dans mon dépôt privé. Jusque là c'est ok. Mais s'il y a une nouvelle version du logiciel sur leur site officiel, le paquet ne va pas se mettre à jour automatiquement.
Est-ce que le fait d'avoir importé le paquet depuis le store de WAPT va mettre à jour les paquets qui sont dans mon dépôt privé ? Si oui, est-on dépendant de la personne qui gère le paquet sur le store ? Si non, doit-on attendre de voir une nouvelle version sur le store pour le ré-importer sur notre dépôt privé ?
Autre question liée aux mises à jour de paquet
Je constate que la version de OwnCloud sur le store n'est pas à jour. J'ai donc créé le paquet en y ajoutant une fonction update_package() qui va mettre à jour la source s'il ne l'est pas dans le paquet. Pour ceux qui utilisent ownCloud voici la fonction qui récupère la dernière version du logiciel sur le site officiel https://owncloud.org/download/ :
Code : Tout sélectionner
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()
Pour une alternative un peu "moche", je peux inclure la mise à jour du paquet au début de la fonction install() après avoir vérifié si la version sur le net est supérieure à celle de mon paquet, je n'ai pas encore essayé mais cela ne m'a l'air pas très adapté.
Merci pour vos retours