Dieu vous Lexpage... euh... vous bénisse !    —  mere-teresa

Discussions

Python : apprentissage, ide, etc

yaug 457 Maitre jedi
Reprise automatique du message précédent.
Bon, intéressantes toutes ces discussions aujourd'hui.
Pour la prod PHP, vu que je commite le fichier .lock de symfony (bonne pratique justement), cela me sert à freezer ma prod, le composer install se servant uniquement du .lock.

mais je vais creuser ce freeze total, c'est tellement pas bête que le cancre informatique que je suis n'y avais point pensé.
Fabe 401 Maitre jedi
GuybrushCela permet de déployer *exactement* les versions pinnées des dépendances, et donc de "cloner" son environnement vers la prod
yaugPour la prod PHP, vu que je commite le fichier .lock de symfony (bonne pratique justement), cela me sert à freezer ma prod, le composer install se servant uniquement du .lock.
Le lockfile permet de "freezer" une version des dép entre plusieurs environnements mais reste un mécanisme de build, soumis à des aléas de build (notamment la fiabilité des repo d'artefacts), il devrait arrêter d'exister à partir de l'étape d'intégration continue.
Le fait qu'on pratique un langage de script ne doit pas nous empêcher de bien séparer les étapes de build et de release. Ça ne nous viendrait pas à l'idée d'utiliser un Cargo.lock pour builder un binaire Rust directement sur le serveur de prod. Je crois que ça devrait être pareil pour PHP :-)
yaug 457 Maitre jedi
FabeÇa ne nous viendrait pas à l'idée d'utiliser [INSERT CHINESE WORDS HERE]
ah mais je n'ai jamais prétendu utiliser de bonnes pratiques. Je suis un dev propre parmi les devs crades on dira. Mais j'y travaille. Notamment via les suggestions faites ici.


Ce message a été modifié 1 fois. Dernière modification : 28 novembre 2018 à 16:42 par yaug.

Fabe 401 Maitre jedi
yaugah mais je n'ai jamais prétendu utiliser de bonnes pratiques. Je suis un dev propre parmi les devs crades on dira. Mais j'y travaille. Notamment via les suggestions faites ici.
Ah mais attention c'était pas un jugement sur toi en tant que dev, you are not your code :-)

Et puis il y'en a qui défendent vraiment cette histoire d'installer composer en prod. Je ne peux pas expliquer leurs arguments par contre :-p
Après je serai curieux de savoir si le cas de pip est vraiment très différent ou pas, ça m'a pas sauté aux yeux dans le post de guy.
Guybrush 4912 Bob
La situation est un peu similaire avec pip, mais le fait que de nombreux packages soient disponibles sur PyPi (le repository "officiel" de pip) fait qu'on passe nettement plus rarement par git ou svn pour déployer des paquets. Couplé au fait que PyPi interdit d'écraser une release déjà distribuée fait que si tu "pinnes" les dépendances depuis PyPi, tu te retrouveras exactement avec le même code en production qu'en staging. Composer est un peu différent en ce sens, et je pense que la raison est historique : Composer est arrivé avant que Packagist ne soit très répandu, alors que pip est arrivé alors que PyPi était déjà bien ancré dans les usages. C'est pareil avec NodeJS : npm et npmjs (le repository) sont arrivés sensiblement en même temps.
Fabe 401 Maitre jedi
For the record, Packagist.org n'héberge aucun package, il ne repose que sur l'API de Github pour downloader une release.

Il me semble que c'est le cas aussi pour npmjs mais j'ai moins de certitudes.
Guybrush 4912 Bob
Ok, je ne savais pas que Packagist se "limitait" à ça et n'hébergeait rien. Pour npmjs, à ma connaissance, ce n'est pas le cas, mais je me trompe peut-être ? Pour PyPI, par contre, je suis sûr que ce n'est pas le cas :-)
yaug 457 Maitre jedi
Pray for me lexpage community.

Je suis en train de refaire du python (2.7) et je bloque sur des pbs d'encodage. :D
Guybrush 4912 Bob
Passe à python 3 :-D

En 2.7, le module codecs (de mémoire) est sans doute le plus utile dans la lib standard.

Mais vraiment, passe à python 3, surtout que la branche 2.x est abandonnée à partir de janvier, après 10 ans d'annonces :-D
yaug 457 Maitre jedi
Oui oui je sais. D'habitude je suis en python 3, mais là je fais avec l'existant pour du script quick (ou pas) and dirty.
Donc je ne vais pas tout de suite me casser les noix à tout enlever pour passer à la 3 sur mon pc et sur le serveur.

Mais clairement, ça va être nécessaire.

Répondre

Vous devez être inscrit et identifié.