¿El principio de las actualizaciones de paquetes?
Publicado: 18 de julio de 2018 - 14:19
Buen día,
Recientemente comencé a usar la versión 1.5.1.26 de WAPT Community y tengo una pregunta que me ha estado molestando. No entiendo bien cómo funcionan las actualizaciones del software.
Cuando importo un paquete desde la tienda WAPT https://store.wapt.fr/ Usando el botón "Importar desde Internet", recibo este paquete en mi repositorio privado. Hasta ahora, todo bien. Pero si hay una nueva versión del software en su sitio web oficial, el paquete no se actualiza automáticamente.
¿Importar el paquete desde la tienda WAPT actualizará los paquetes de mi repositorio privado? De ser así, ¿dependemos de la persona que administra el paquete en la tienda? De no ser así, ¿tenemos que esperar a que haya una nueva versión en la tienda antes de volver a importarlo a nuestro repositorio privado?
Otra pregunta relacionada con las actualizaciones de paquetes
Me di cuenta de que la versión de OwnCloud en la tienda está desactualizada. Así que creé el paquete y añadí la función `update_package()` que actualiza el código fuente si no está actualizado dentro del paquete. Para quienes usan ownCloud, aquí está la función que recupera la última versión del software del sitio web oficial https://owncloud.org/descargar/ :
Esto funciona correctamente en PyScripter. Al hacer clic derecho en `update-package-source` y seleccionar "Ejecutar", se actualiza el software en la carpeta y la versión en el archivo `control`. Después, solo hay que ejecutar `build-upload` y listo. El problema es que no se puede hacer directamente desde la consola. Quizás no he descubierto cómo; corríjanme si me equivoco.
Para una alternativa un poco "fea", podría incluir la actualización del paquete al comienzo de la función install() después de verificar si la versión en internet es superior a la de mi paquete; aún no lo he probado, pero no parece muy adecuado.
Gracias por tus comentarios
Recientemente comencé a usar la versión 1.5.1.26 de WAPT Community y tengo una pregunta que me ha estado molestando. No entiendo bien cómo funcionan las actualizaciones del software.
Cuando importo un paquete desde la tienda WAPT https://store.wapt.fr/ Usando el botón "Importar desde Internet", recibo este paquete en mi repositorio privado. Hasta ahora, todo bien. Pero si hay una nueva versión del software en su sitio web oficial, el paquete no se actualiza automáticamente.
¿Importar el paquete desde la tienda WAPT actualizará los paquetes de mi repositorio privado? De ser así, ¿dependemos de la persona que administra el paquete en la tienda? De no ser así, ¿tenemos que esperar a que haya una nueva versión en la tienda antes de volver a importarlo a nuestro repositorio privado?
Otra pregunta relacionada con las actualizaciones de paquetes
Me di cuenta de que la versión de OwnCloud en la tienda está desactualizada. Así que creé el paquete y añadí la función `update_package()` que actualiza el código fuente si no está actualizado dentro del paquete. Para quienes usan ownCloud, aquí está la función que recupera la última versión del software del sitio web oficial https://owncloud.org/descargar/ :
Código: Seleccionar todo
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()Para una alternativa un poco "fea", podría incluir la actualización del paquete al comienzo de la función install() después de verificar si la versión en internet es superior a la de mi paquete; aún no lo he probado, pero no parece muy adecuado.
Gracias por tus comentarios