[spip-dev] Renommages branches & tags SPIP + plugins-dist

Hello everybody !

Il est probable qu’on s’occupe dans le week end (demain?) de renommer les branches & tags de SPIP et des plugins-dist, tel que proposé dans un thread précédent (Release, Git, Composer - du 14 septembre dernier).

Tout le monde semblait partant (je n’ai pas vu de contre indication en tout cas !).

Je pense ajouter également, enfin remplacer plutôt, le fichier .gitsvnextmodules par un fichier spip_modules.json ou quelque chose comme ça dans les branches 3.1+. Ce fichier listerait simplement l’url des Gits des plugins-dist (sans préciser la branche ou tag) et le répertoire destination. Encore une fois ce n’est pas quelque chose (ce fichier) qui sera pérennisé (l’idée est tout de même pour les futurs développement d’aller vers un composer.json)

Les outils checkout et spip-cli seront temporairement cassés et devront être mis à jour. J’essaierai de m’occuper de checkout.

Voilà, j’espère que vous avez la forme !

Tendresse à toutes & tous,

Matthieu.

Yes !

Gogogo
Tant qu’à faire appelle le fichier plugins-dist.json ça sera plus explicite.

La bise
Eric

Bonjour,

Je n'ai pas les mains dans Spip depuis début juillet, mais je continue à suivre les échanges de Spip-dev et la zone, et tout le travail des piliers de Spip.

J'espère aussi que vos proches et vous avez la forme,
et j'envoie aussi un peu de tendresse charentaise à toutes & tous.

go go go !

Super !

Pour des SPIP 3.2 ou 3.3 déjà installés en Git avec checkout, on pourra avoir un guide ou les commandes qui vont bien pour mettre à jour ?
Ça consistera surtout à changer les remotes ou les branches, non ?

On va lancer les hostilités donc.

Attention /!\ : les scripts d’installation (checkout, spip-cli) vont casser pendant quelques temps (heures, jours...).

Bisous.

MM.

Ah merde... J'ai écrit toute la doc d'une procédure d'installation de SPIP qui doit avoir lieu... demain :stuck_out_tongue:

Voilà, c’est fait pour cette partie.

Résumé.

Sur spip/spip :

- Les branches spip-X ont été renommées X (spip-3.2 => 3.2)
- Les tags spip-X ont été renommés vX (spip-3.2.1 => v3.2.1)

Quelques cas particuliers :

- branche 1.9 => 1.9.1
- branche spip-1.9.2 => 1.9.2

Les tags des versions ont été homogénéisés selon semver, avec les pre-release séparés par - et éventuellement '.'. Des releases spéficiques (a à z sont séparés par +, comme des «build» au sens semver). Exemples (j’ai plus les vrais en tête) :

- spip-3.0.0alpha1 => v3.0.0-alpha.1
- spip-3.0.0-beta => v3.0.0-beta
- spip-1.9.2f => v1.9.2+f

Sur spip/{plugins-dist} :

- branche X => branche 'spip-X'

Exemple :

- 3.2 => spip-3.2

On conserve ces branches pour historique des plugins-dist, mais dans le futur on évitera d’en créer «pour une version de SPIP particulière».

Voilà, hope it helps.

Je bascule sur la mise à jour des outils.
Et après j’essaie de voir pour indiquer des commandes de migration éventuellement.

Bizous.

MM.

Hop,

J’ai envoyé un premier pas avec une version 1.4.0 de checkout.

Ce n’est qu’une première étape (plugins-dist.json n’est pas encore introduit), mais ça télécharge ou met à jour un SPIP ce qui est déjà pas si mal.

J’ai ajouté un lien aussi sur la commande 'checkout' exécutable, vers checkout.php d’avant pour avoir un nom de commande identique entre Windows et MacOs/Linux. Et adapté le readme en conséquence.

Cependant checkout ne supprime pas les branches ou tags qui ont été supprimé sur le dépot distant.

Pour ça il faut lancer

- git fetch --prune
- git fetch --prune --prune-tags

ou plus spécifiquement avec le nom du remote

- git fetch origin --prune
- git fetch origin --prune --prune-tags

Les branches suivies localement auparavant sont conservées. Typiquement si vous étiez en 'spip-3.2' vous aurez une branche '3.2' active (le nouveau nom), qui suit origin/3.2, et une branche 'spip-3.2' présente d’avant, qui suit origin/spip-3.2 qui n’existe plus (car enlevé avec le --prune).

Cette branche locale spip-3.2 peut donc être supprimée.

C’est pareil pour les plugins dist (dans l’autre sens).

MM.

Voilà, tout est à peu près fait pour ce que j’indiquais (reste plus qu’à vérifier tout ça)

- un fichier plugins-dist.json est présent dans les 3 branches master, 3.2 et 3.1 et est utilisé de préférence par l’outil Checkout (à mettre à jour) (lonsqu’on lance 'checkout spip ...')

- un mini script très très à l’arrache http://spip.pastebin.fr/66841 nettoie les branches et tags supprimées du remote 'origin' ; ça peut aider...

/!\ Attention (cher développeureuse de SPIP) à ne pas faire de `git push --tags` à un moment après ta mise à jour, sans avoir fait par exemple un `git fetch origin --prune --prune-tags` avant sur ton projet pour ne pas repusher tous les anciens tags d’un coup (ça serait ballot) ! Note que git push a une option --dry-run qui permet de voir et vérifier ce qui va être envoyé.

Belle nuit à toutes & tous,

MM.

Matthieu Marcillaud a écrit le 28/09/2020 à 02:12 :

Voilà, tout est à peu près fait pour ce que j’indiquais (reste plus qu’à vérifier tout ça)

- un fichier plugins-dist.json est présent dans les 3 branches master, 3.2 et 3.1 et est utilisé de préférence par l’outil Checkout (à mettre à jour) (lonsqu’on lance 'checkout spip ...')

Merci.
Testé avec succès en local.
Juste un détail : spip-contrib-outils / checkout · GitLab indique :
checkout spip -bspip-3.2 dossier_destination
mais maintenant, c'est :
checkout spip -b3.2 dossier_destination

- un mini script très très à l’arrache http://spip.pastebin.fr/66841 nettoie les branches et tags supprimées du remote 'origin' ; ça peut aider...

Testé aussi, merci.

/!\ Attention (cher développeureuse

qui est peureuse ?
SPIP peut faire peur ?