Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Contribuer à une bibliothèque présente sur Pypi et GitHub

+9 votes

Je souhaite contribuer à un projet Python disponible sur Pypi et GitHub : ici.

D'un côté, faire un pip install pylatex me permet d'installer les dépendances et d'ajouter le module au PYTHON_PATH. De l'autre, un git clone me simplifie la vie pour effectuer des changements.

Comment m'y prendre ?

demandé 16-Jan-2015 par Vayel (1,050 points)

En fait que le projet se trouve sur Pypi n'impactera pas vraiment ta façon de contribuer. La méthode de @foxmask me semble assez "idéal" et toute la partie "mise à disposition sur Pypi" va être gérée par le mainteneur du projet (donc pas toi à priori ;))

2 Réponses

+10 votes
 
Meilleure réponse

je ne vais pas recopier tout le post de Sam... il y a probablement une autre manière de faire ici : Travailler sur une lib externe à votre projet proprement en Python

tout est dans l'usage de l'option -e lors de l'installation par pip

pip install -e git+https://git@github.com/sametmax/minibelt.git#egg=minibelt

qui se veut l'équivalent de

python setup.py develop

le post est court, je te laisse le lire...

répondu 17-Jan-2015 par Lhassa (794 points)
sélectionné 17-Jan-2015 par Vayel

Excellent, c'est exactement ce qu'il fallait !

+6 votes

Je ferai 3 virtualenv : prod, test, dev

le premier me sert à exploiter la version dispo sur pypi

virtualenv prod
cd prod
source bin/activate
pip install pylatex 

sur github je clone le repo du projet qui m'interesse sur mon compte puis je me fais mon environnement de dev

virtualenv dev
source bin/activate
git clone https://github.com/moncompte/PyLateX
git checkout -b ma_feature

je code je test je commit je push

je creee un environnement de test en local d'où je vais installer la version du virtualenv de dev

virtualenv test
cd test 
source bin/activate

j'installe la version que j'ai fini sur mon virtualenv de dev dans mon virtualenv de test

cd ../dev/
python setup.py install 

je retourne à test via

cd -

je test blabla ma version en test
si ca me convient je fais un PR sur le projet original

et ainsi de suite

voici le workflow que je suis depuis que j'utilise git

Dans l'absolue ; les 3 environnements pourraient tout aussi bien être sur 3 serveurs différents et via des "fabfile" (en utilisant fabric) deployer les versions de dev à test.

Ce n'est pas la panacée mais c'est "une voie" simple pour des projets tout rikiki pouce pouce ;)

répondu 16-Jan-2015 par foxmask (2,888 points)

Ton lien est très intéressant foxmask.

C'est là que je me rends compte que je sous exploite Git...

Très intéressant ce système d'environnement dédié au test ! Par contre, à quoi sert l'env prod ?

Prod = production

C'est l'environnent stable qu'on ne manipule que pour les outils finis par exemple.
J'ai donne ici un cas generic . ici prod sera mis a jour que via pip install provenant de pypi.
Est ce. Plus claire? Sinon je peux la refaire ;)

Oui mais ça ne me sert que pour utiliser la bibliothèque, non ? Ce que je veux dire, c'est que l'env "prod" ne m'est pas utile pour contribuer. Dans le cas contraire, je ne comprends pas en quoi.

Oui "prod" sert pour soi , un moment donné ta contribution est didpo sur pipy et tu la retrouveras bien "en prod" ;)

C'est pas la première fois que je le vois passer ce schéma pour Git... Il y en a d'autres équivalents? Juste par curiosité.

...