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-archetypesDans /srv, créer un environnement virtuel python
cd /srv /path_to_python26/bin/virtualenv --no-site-packages releaserInstaller 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:passwordVous 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

