Carnet Wiki

FAQ pratique : Comment SPIPer avec git.spip.net

Version 14 — Avril 2020 JLuc

N’hésitez pas à répondre aux questions sans réponse.
Les parties incertaines et à valider sont en italique.

Questions avec réponses

Non : on peut cloner un repo, ou plus simplement juste télécharger son code, sans devoir s’inscrire sur git.spip.net

- Pour cloner : la commande est git clone url_repo.
- Pour télécharger, on se servira de l’icone « Télécharger » sur la page d’une contribution, à droite des adresses ssh et https (voir copies d’écran ci dessous).

Rq  : Le téléchargement permet de récupérer le zip de la contribution et de l’installer pour SPIP, mais ce n’est pas un repo git qu’on récupère ainsi, et on ne pourra pas utiliser git dessus, par exemple pour le mettre à jour ou pour commiter. Si on veut pouvoir mettre à jour le source du plugin au moyen de git (git pull)et commiter (git commit puis git push, il faut cloner le repo.

- Pour cloner : la commande est git clone url_repo, où url_repo est l’adresse https ou ssh du repo (voir ci dessous)

Un repo peut être accédé par les 2 protocoles ssh et https, et propose donc des urls pour chacun de ces protocoles. Ces 2 urls sont indiquées sur les pages du repo.

Par exemple pour cloner facteur, on utilisera l’une des 2 lignes :
-  url https: git clone https://git.spip.net/spip-contrib-extensions/facteur.git


-  url ssh : git clone git@git.spip.net:spip-contrib-extensions/facteur.git

Tout le monde peut utiliser l’url https, mais il faut être inscrit et avoir déposé une clé ssh pour utiliser l’url ssh. Cela permet également de commiter.

Oui, il faut s’inscrire sur git.spip.net et accepter la [charte de la zone pour pouvoir commiter -> - https://zone.spip.net/trac/spip-zone/wiki/CharteDeFonctionnement]. Consultez aussi la charte d’accueil de SPIP

 ? Comment fait on pour apporter des modifications à une contribution ?

C’est tout. S’inscrire permet On peut ensuite de commiter sur un repo et pusher .

-  Pour un repo compte cloné par https: on peut commiter sans clé SSH en indiquant simplement son login et son mot de passe git.spip.net lors du push :
$git push origin branche -> prompt de demande du login (pseudo ou mail fonctionnent) -> prompt de demande du mot de passe

- Par SSH :
Une fois le compte créé sur git.
spip.- avec l’url ssh net , il faut avoir créé créer une clé ssh ( pour cela , SSH  : suivre les indications de " class="spip_url spip_out auto" rel="nofollow external">https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent),
et l’avoir déclarée , puis il faut déclarer à git.spip.spip net la clé ainsi créée : on transfère le contenu de la clé publique dans la configuration du compte :

Profil et réglages > Configuration > Clés SSH / GPG</code>.  > Votre authentification sera ensuite automatique et transparente : plus besoin de mot de passe.


? Comment informer SVP qu'il y a une mise à jour importante et que le zip qu'il propose doit être mis à jour afin  que  tous  les  utilisateurs  de  SPIP  puissent  bénéficier  de  la  nouvelle  version  du  plugin  ?


Il faut créer un nouveau tag git et le "débardeur" se charge ensuite de mettre à jour le zip, qui sera proposé dans la partie privée de votre SPIP. Il n'y a pas d'interface gitea pour créer un tag et il faut donc le faire par la ligne de commande.


Exemple : pour créer un nouveau tag 1.., se mettre dans le dossier source racine du plugin, et faire :
<code>git tag -a v1.. -m "Version 1.."
git push
git push --tags

Si vous voulez, vous pouvez paramétrer votre git pour éviter cette dernière étape : ouvrez votre ficheir ~/.gitconfig et assurez vous qu’il y a dedans :

[push]
    default = simple
    followTags = true

Avec ce paramétrage, il suffit de faire :

git tag -a v1.. -m "Version 1.."
git push

Sous git, créer un tag n’a qu’un très faible coût. Il faut donc créer un tag chaque fois que c’est utile, c’est à dire chaque fois qu’on veut mettre à disposition des utilisateurs une nouvelle version du plugin.

Une bonne partie de la config proposée par Delicious Insight peut être reprise ainsi que leur prompt (un peu adapté), super utile : https://delicious-insights.com/fr/articles/apprendre-git (dans Installation et Configuration>configuration partagée")

Il y a 2 manières de faire : en cliquant un bouton (simple et automatique) ou en ligne de commande (personnalisable au besoin).

-  Automatiquement : sur git.spip.net, chacun peut trouver, à coté de son avatar, une opération appelée « Nouvelle migration ». Elle permet en un seul formulaire de transférer un repo github ou autre vers son organisation personnelle sur la forge ou dans une des organisation spip-contrib.

-  En ligne de commande : Chaque repo git, qu’il soit distant ou local, possède un historique, et qu’on peut synchroniser les historiques entre les repos
Pour importer un repo github ou gitlab sur git.spip.net,

  1. Tu clones en local ton repo
  2. Tu crée un nouveau repo sur git.spip.net
  3. Tu références ce repo distant dans ton repos local avec git remote add <unnomdetonchoix> <lurldureposdistant>. <unnomdetonchoix> est le nom qui permet de référencer (depuis ton repos local) le repos distant nouvellement créé. Mais si en fait tu souhaites ne garder qu’un seul dépot distant comme dépot de référence, plutôt qu’ajouter la nouvelle url à l’url existante, tu peux aussi simplement la remplacer : git remote set-url origin <lurl du repos distant> .
  4. Tu fais git push <unnomdetonchoix>

Rq : Par convention, lorsqu’on clone une depot distant, il est référencé avec le nom origin comme dépot local. Mais tu peux en référencer plusieurs.
Une pratique courante est
-  upstream pour désigner le repos communautaire officiel du projet
-  origin pour designer le repos distant « personnel »

Pour ne pas surcharger le serveur, il ne faut cloner localement que les plugins dont on a besoin. Donc si vous n’avez pas besoin de tous les plugins, ne clonez pas tous les plugins.

Dans certains cas toutefois, on a parfois besoin des sources de tous les plugins, par exemple pour faire des recherches globalement sur tout le code afin d’étudier les cas d’usages d’une fonction ou pour corriger tous ces appels.

Toute personne inscrite sur git.spip.net est abonnée à l’ensemble des dépôts.

Cet abonnement à maintenant l’effet de vous notifier des divers échanges (tickets, PR, ...) qui ont lieu sur ces divers dépôts.
Ceci est dû au fait que par défaut à la création de votre compte, celui ci est configuré pour que toutes les notifications vous soient envoyées.

Toute personne inscrite sur git.spip.net est abonnée à l’ensemble des dépôts, et vous êtes notifiés des divers échanges qui ont lieu sur ces divers dépôts : tickets, PR, ...
En effet, votre compte est configuré par défaut de telle sorte que toutes les notifications vous parviennent. Vous pouvez modifier personnaliser cette configuration depuis https://git.spip.net/user/settings/account

Questions encore sans réponses

...

...

...

...

...

...

...

...

...

...

...

...

Retour à la version courante

Toutes les versions