Personal tools
E' uscito il Buildout 2.0! Posso rilanciare il mio buildout?

Scegli la tua soluzione

Mar 11, 2013

E' uscito il Buildout 2.0! Posso rilanciare il mio buildout?

Viene rilasciata una nuova versione di un pacchetto, e per molti Plonisiti è il caos. Vediamo come usare (o non usare) il Buildout 2.0

Non è molto che è uscita la versione 2.0 di zc.buildout e, come spesso accade, i buildout, soprattutto quelli un po’ più vecchi, non prendono di buon grado l’aggiornamento.
Nel caso di questo pacchetto, le cause sono alcuni import che sono cambiati o sono stati spostati.

Il Buildout 2.0 fa un taglio netto con il passato che, con le versioni 1.6 e 1.7, aveva come obiettivo principale quello di isolare il più possibile il buildout dalla componente Python. Ma il compito si è rivelato troppo difficile da implementare, e quindi si è scelto di abbandonare questa strada e lasciare all’utilizzatore di decidere tramite l'utilizzo di virtualenv.

Non è però in questo articolo che voglio analizzare le modifiche apportate a questo componente (che potete comunque trovare qui). Oggi vediamo cosa fare per far funzionare i nostri bulidout.

Rimanere ancorati al passato.

Tutto dipende dal bootstrap.py presente nel vostro buildout.

Se vi interessa rimanere sulle versioni 1.x, allora potete usare questo bootstrap.py: contiene una restrizione sulla versione di zc.buildout che deve essere minore di 2.0 - http://downloads.buildout.org/1/bootstrap.py.

Ma se non vi sentite troppo sicuri nel sostituire il bootstrap.py del vostro buildout, c’è una seconda soluzione, suggerita in risposta a questo bug report su stack overflow.
Dovrete semplicemente rilanciare il bootstrap del vostro buildout forzando la versione di zc.buildout in questo modo:


python bootstrap.py -v 1.7.1
 

Tuttavia, con versioni molto vecchie del bootstrap.py, potreste ritrovarvi nel caso in cui non sia possibile forzare la versione; allora dovrete per forza aggiornare il file con la versione di cui sopra, per poi eseguire il comando forzando zc.buildout all’ultima versione precedente alla 2.0; al momento, questa: https://pypi.python.org/pypi/zc.buildout/1.7.1.

Il nuovo che avanza.

Per usare la versione 2.0 di zc.buildout vi consiglio di utilizzare questa versione del bootstrap: http://downloads.buildout.org/2/bootstrap.py.

In questo caso, però, vi potreste trovare nella situazione inversa, ovvero: dopo aver lanciato il solito comando "./bin/buildout -N", non trovate la nuova versione di zc.buildout.

La causa è da attribuire alla presenza di buildout.dumppickedversions che ha fatto il pin di alcune versioni e, quindi, lanciando il buildout con il “-N” (pratica più che corretta!), la nuova versione per zc.buildout non è stata presa in considerazione.
Magari avete specificato il dumppickedversions nelle extensions nel vostro buildout.cfg e state pensando di rimuoverlo; ma nelle ultime versioni del buildout è automaticamente incluso.
La soluzione, consigliata da Reinout van Rees nel suo post, è molto semplice: fate il pin di questi due prodotti nel [versions] del vostro file di configurazione e avrete il vostro pacchetto aggiornato :)


[versions] zc.buildout = 2.0.1 zc.recipe.egg = 2.0.0a3
 
Filed under: , ,
comments powered by Disqus