Appunti Plone

Tips, Tricks & mini howto

Stabilizzare le versioni di ogni pacchetto in un buildout.

with one comment

La sezione [versions]

Il vostro buildout.cfg cominciera’ con una sezione [buidout] in cui ad un certo punto ci saranno le righe:
...
extends = http://dist.plone.org/release/3.3.4/versions.cfg
versions = versions
...

Queste due righe fanno si ‘ che vengano bloccati tutti i pacchetti elencati in versions.cfg alla relativa versione indicata a fianco di ciascun pacchetto.

In altre parole, un “$buildout -n” non aggiornera’ questi pacchetti anche se ne e’ stata rilasciata  una versione piu’ recente.

Presumibilmente avrete aggiunto altri pacchetti al vostro buildout popolando la sezione eggs con una riga del tipo:

eggs =
    ...
    plone.app.ldap
    ...

Per “pinnare” la versione del pacchetto ed evitare che venga aggiornata automaticamente dovete aggiugere al vostro buildout.cfg una sezione [versions] in cui eguagliate (o diseguagliate) un prodotto con il numero di versione desiderato. Ad esempio:

[versions]
plone.app.ldap = 1.1
python-ldap = 2.2.0

N.B.: La sezione va aggiunta dopo quella [buildout] subito prima dell’inizio della sezione successiva.

Come sapere quali pacchetti non son pinnati?

Date le decine di prodotti e pacchetti che include un buildout standard puo’ essere molto facile lasciarne qualcuno unpinned.

Wichert Akkerman ha gentilmente pensato una riga di codice shell che ci viene in aiuto (linux):

$ bin/buildout -Novvvvv |sed -ne 's/^Picked: //p' | sort | uniq

Da qualche versione di plone ad oggi non si riesce piu’ a lancire il comando buildout con l’opzione -o (offline). Quindi tale comando andrebbe rivisto senza la ‘o’ e pare funzionare comunque correttamente.

$ bin/buildout -Nvvvvv |sed -ne 's/^Picked: //p' | sort | uniq

Tale comando restituisce qualcosa del tipo:

elementtree = 1.2.7-20070827-preview
plone.recipe.distros = 1.3
plone.recipe.zope2install = 1.2
plone.recipe.zope2instance = 1.3
python-openid = 2.0.1
setuptools = 0.6c7
zc.recipe.egg = 1.0.0

E’ sufficiente copiare ed incollare questo output nella sezione [versions] creata in precedenza.

fonte: http://maurits.vanrees.org/weblog/archive/2008/01/easily-creating-repeatable-buildouts

Written by sauzher

27 gennaio 2010 a 10:28

Pubblicato su Plone

Una Risposta

Subscribe to comments with RSS.

  1. Il -o non è possibile utilizzarlo da quando le buildouts fanno utilizzo delle extends per le configurazioni di plone; es:

    extends = http://dist.plone.org/release/3.3.1/versions.cfg

    qui per forza devi andare online 🙂
    una soluzione potrebbe essere quella di mettere questo versions.cfg in locale nella bo e trasformare quindi la riga precedente in:

    extends = versions.cfg

    a questo punto il -o funziona e le versioni pinnate le puoi mettere diretammente in questo file 🙂

    per ottenere le versioni pinnate dei prodotti qualcuno ha pensato di rilasciare un recipe specifica:

    http://pypi.python.org/pypi/buildout.dumppickedversions

    non fa altro che riportare l’elenco dei pick ad ogni lancio del bo, l’elenco è fatto apposta per essere copiato/incollato nel file versions.

    Antonio Sagliocco

    4 febbraio 2010 at 17:43


Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: