zds-site icon indicating copy to clipboard operation
zds-site copied to clipboard

Commande pour remettre à zéro l'espace de dev

Open A-312 opened this issue 4 years ago • 8 comments

Lorsqu'on n'a pas installé l'installation depuis longtemps, il faudrait pouvoir remettre à zéro automatiquement le repertoire zds-site :

  1. supprimer node_modules et zmd/node_modules
  2. supprimer base.db
  3. supprimer zdsenv
  4. supprimer contents-private + contents-public

A-312 avatar Feb 29 '20 19:02 A-312

En tant que développeur occasionnel, j'aimerai pouvoir mettre à jour mon environnement de développement sans réfléchir du tout et sans recloner tout. Avec l'objectif d'avoir zéro friction sur cette étape-là.

Ce qui me convient, c'est quelque chose du genre (ou encore plus simple, mais n'abusons pas ;-) ) :

git pull  upstream
git checkout dev
git merge upstream/dev
make install-linux

Cette procédure a échoué chez moi, et j'ai dû supprimer le virtualenv et un fichier sur les conseils des développeurs.

Je pense que make install-linux devrait faire lui-même cette opération de ménage par défaut. Les utilisateurs avancés peuvent toujours utiliser les différents composants séparément pour une installation sur mesure.

Autrement, on pourrait ajouter une question pour demander si on veut remettre à zéro l'environnement ou conserver ce qui existe. make install-linux demande déjà de choisir la distribution pour laquelle on installe, une interaction en plus ne serait pas un gros dépaysement.

Sinon, une partie stand-alone du makefile pourrait faire le job. Cette solution a pour moi un avantage : si la procédure d'installation change significativement, il est aussi possible que la procédure de nettoyage change aussi (et donc que le nouveau script d'installation ne sache pas comment nettoyer l'ancien).

Dans ce cas, on aurait quelque chose comme ça :

make cleanup  # utilise la procédure de la version non mise à jour
git pull upstream  # on met à jour depuis l'upstream
git checkout dev
git merge upstream/dev
make install-linux  # installation sur une base propre

Arnaud-D avatar Feb 29 '20 22:02 Arnaud-D

J'ai encore eu besoin de suivre cette procédure. Comme ce ticket est finalement une source d'information utile, on pourrait l'intégrer à la doc (si ce n'est pas déjà fait, mais je n'ai rien trouvé), à défaut d'avoir une commande dédiée.

Je pense qu'on pourrait intégrer un paragraphe quelque part dans cette partie : https://docs.zestedesavoir.com/install.html .

Arnaud-D avatar Apr 13 '20 11:04 Arnaud-D

Fait le si tu juges important par contre je ne trouve pas que l'intégrer dans cette partie de la doc soit adapté, une partie : "Maintenir son espace de dev à jour" serait plus adapté.

D'ailleurs une partie est décrit ici : https://zestedesavoir.com/forums/sujet/324/comment-contribuer-comprendre-comment-suivre-le-workflow/

A-312 avatar Apr 13 '20 11:04 A-312

Je pense vraiment que ça devrait être dans la partie installation, parce que c'est utile pour refaire une installation propre sans tout recloner. Dans plein de cas, la commande make install-linux (ou équivalent) ne suffit pas, parce qu'elle ne supprime rien du tout et ça ne réinstalle pas correctement. Ça m'est arrivé au moins deux fois déjà.

C'est la partie « facile » qui est décrite dans le sujet du forum. Je l'ai pas trouvée super claire d'ailleurs quand je m'en suis servi la première fois. Notamment, c'est difficile de faire la part des choses entre la première fois et une resynchronisation. J'ai réussi à mieux comprendre le principe grâce à cette explication-là.

Tout ça pourrait faire l'objet d'une une partie « maintenir son espace de dev », mais ça devrait être selon moi plus selon l'idée de guides comme @Situphen a commencé à faire (PR #5704). On y reprendrait des infos présentes ailleurs évidemment.

Qu'en penses-tu @A-312 ?

Arnaud-D avatar Apr 13 '20 12:04 Arnaud-D

Je pense toujours que si je cherche à maintenir mon espace de dev, je ne vais pas fouiller dans l'explication de la première installation de l'espace de dev) mais dans la partie utilisation.

A-312 avatar Apr 13 '20 13:04 A-312

J'ai découvert qu'on a déjà une cible make qu fait une partie du boulot :

wipe-db: ## Remove the database and the contents directories
	rm -f base.db
	rm -rf contents-private/*
	rm -rf contents-public/*

On peut s'en servir à travers new-db :

new-db: wipe-db migrate-db generate-fixtures

Arnaud-D avatar Apr 24 '20 09:04 Arnaud-D

On pourrait imaginer une commande Make brand-new qui lance clean puis update puis new-db, cela devrait faire l'affaire dans 99% des cas, non ?

Situphen avatar Sep 25 '21 11:09 Situphen

L'idée est d'avoir un truc vraiment propre sans avoir à changer quoi que ce soit au dépot local.

Un cas important selon moi que ton idée ne gère pas est de supprimer le venv et les modules js. C'est utile notamment quand on fait de la QA sur des procédures d'installation. Un souci typique, c'est tu ne peux pas tester les dépendances correctement sans ça, parce que tu risques d'avoir des choses installées d'avant. Quand tu fais update ça ne gère pas ce cas.

Donc je verrais plutôt un clean-all qui fait clean + supprimer le venv + wipe-db + rm sur les dossiers node et zmd. Bref, un truc qui ne laisse que les fichiers versionnés et les modif globales sur le système.

Arnaud-D avatar Sep 25 '21 11:09 Arnaud-D