Nous avons utilisé pour la maquette SPIPRemix le générateur de dépôt composer statique Satis [1]
Les dépôts composer et leurs outils
- le service Packagist,
- l’application packagist pour une instance publique dédiée,
- l’outil Satis,
- Un autre outil web conçus et maintenus par nos soins,
- Une solution payante ...
Mise en place d’un dépôt composer public dédié à SPIP
- Idéalement, le composant
spip/spip
devrait être mis à disposition sur le service Packagist. Ainsi, la commandecomposer create-project spip/spip
ne nécessiterait aucune configuration particulière sur la machine de l’utilisateur (ni de paramètre--repository=https://...
), Ce composant référencerait le dépôt composer de SPIP où se trouverait tous les autres composants, plugins, squelettes, etc. - Choisir entre satis et une gestion manuelle et l’installation d’une instance packagist. Ça existe, ça marche, ça coûte moins en temps et en énergie que de maintenir une solution qui nous serait propre,
- Choisir un URL en https (Nous suggérons :
https://get.spip.net
) - Pour la maquette SPIPRemix, le dépôt est à l’adresse https://composer-spip.lerebooteux.fr
Satis
- Satis est un outil en ligne de commande. Il se base sur un fichier JSON référençant les dépôts GIT/SVN de chaque composant. Ajouter un dépôt de code source se fait avec une commande, construire le dépôt composer se fait avec une autre commande et génère des fichiers JSON statiques.
- Il est possible de fournir et de personnaliser une page HTML, générée par ligne de commande (la même que pour les JSON) en se basant sur des templates TWIG.
- Il est possible de produire un script php associé à ce dépôt pour générer des statistiques de téléchargement.
- Il est possible de produire des ZIPs classiques et d’alimenter le même dépôt via une configuration spécifique.
- Il existe des applications web permettant de mettre à jour le fichier de configuration. Il serait aussi possible de produire ce fichier de manière plus automatisée (pas vraiment recommandé) ou via une application web à concevoir.
Packagist
- Packagist est une application basée sur le framework Symfony. Il utilise une base de données MySQL et, au moment de la publication de la maquette, reste à étudier sur l’ensemble de ses fonctionnalités.
Serveurs Git
- les plates-formes GIT telles que github, gitlab et gitea produisent les zips de leurs dépôts de code source. Packagist, Satis et en sous-main Composer savent exploiter l’API de certaines de ces plates-formes pour référencer les archives mises à disposition par ces plates-formes.
Déplacement ou suppression du fichier archivelist.txt et aménagements ou arrêt de smart_paquets
- Le dépôt composer prend le relai et s’appuie sur les noms de branches et de tags, le fichier archivelist.txt n’est plus nécessaire et peut-être supprimé.
- Le cron et le script (smart_paquets) qui génèrent les zip de SPIP pour le référentiel https://files.spip.net peuvent être arrêtés et supprimer de la zone.