Vous êtes ici : Accueil Support Documentation How-tos Publier un oeuf (egg release) avec zest.releaser

Publier un oeuf (egg release) avec zest.releaser

Comment publier un egg sur n'importe quel serveur d'egg (pypi, packages.communesplone.be, ...)

1. Installer zest.releaser

Pour d'avantages d'explications sur les commandes ci-dessous, consultez le tutoriel : www.communesplone.org/support/documentation/tutoriels/guide-du-futur-developpeur/se-preparer-a-developper-un-produit-archetypes

Dans /srv, créer un environnement virtuel python
cd /srv
/path_to_python26/bin/virtualenv --no-site-packages releaser
Installer les packages python nécessaires
bin/easy_install zest.releaser

2. Utiliser zest.releaser pour faire tout le travail : fullrelease

En utilisant fullrelease, ceci va permettre depuis le trunk d'un produit SVN :
- de tagger la version
- mettre à jour la version du trunk
- envoyer l'egg sur le serveur d'egg choisi

Pour cela, récupérer le trunk du package (qui doit avoir une structure d'egg évidemment), par exemple http://svn.communesplone.org/svn/communesplone/monpackage/trunk.  Le fichier setup.py doit contenir une version cohérente, par exemple 0.2.3dev

zest.releaser va créer le tag (checkins SVN compris) 0.2.3, mettre à jour la version du trunk en 0.2.4dev et envoyer l'egg sur le serveur d'egg choisi (par défaut pypi, mais on peut également renseigner son propre serveur d'egg).  Dans tous les cas, un fichier .pypirc doit exister à la racine du dossier personnel de l'utilisateur en cours et contenir quelque chose de semblable à :
[distutils]
index-servers =
    communesplone

[communesplone]
repository:http://packages.communesplone.be
username:username
password:password

Vous devez évidemment avoir un username/password sur le serveur d'egg sur lequel vous souhaitez publier le nouvel egg.  Si c'est bien le cas, se positionner à la racine du trunk récupéré et appeler fullrelease (/srv/releaser/bin/fullrelease).

Si tout se passe bien (...) tout est mis à jour en une fois et on peut continuer à adapter le trunk pour la prochaine release...

3. Si on veut publier un egg à partir d'un tag existant

Récupérer avec le gestionnaire de source le tag.
Dans le dossier de celui-ci:
/srv/releaser/bin/release

Le tag n'est pas modifié dans le gestionnaire de source et un egg est créé.
 

4. Et si on souhaite simplement publier un egg?

zest.releaser appelle la commande suivante lorsqu'il s'agit de publier un egg :

/srv/releaser/bin/python setup.py sdist register -r communesplone upload -r communesplone

Autrement dit, zest.releaser n'est pas nécessaire pour publier un egg, il facilite simplement le travail à effectuer autour de cette publication

Actions sur le document