Perdu dans les chemins / l'installation

  1. oui, c’est du au passage du chargement des plugin-dist via Composer, et non plus via plugins-dist.json + checkout. Pour les plugins-dist SPIP on dit à Composer de les ranger dans plugins-dist/ mais, à l’instar de vendor/, il range par organisation (ici ces plugins étant dans l’orga spip/)

Tu peux faire éventuellement un ticket et une PR sur le script checkout, mais non il ne prévoit pas les suppressions de plugins-dist enlevés, lors d’une mise à jour tel que tu as faite.

Oui mais non… Composer a créé un autoloader pour plugins-dist/spip/archiviste/src
Pas pour ton ancien chemin de plugin dont Composer n’a pas connaissance.

Ce faisant tous les use Spip\Archiver\SpipArchiver sont voués à l’échec (du moins il vont chercher dans plugins-dist/spip/archiviste/src qui est resté sur la branche master et pas dans la branche zipper-a-plat que tu souhaites tester.

Tu t’en es aperçu après

Ce sont 2 mondes totalement différents justement ! C’est normal une différence de comportement.
L’autoloader de Composer est (relativement) fixe une fois généré (activer ou desactiver des plugins dans l’interface SPIP ne modifierait pas l’autoloader de Composer — du moins sans une manipulation en plus en ligne de commande…)

On préfère les verbes, tout simplement, je suppose

C’est bien d’arriver après la bataille, mais je sais pas ? Lire Dépot composer et "packages" pour SPIP - #12 par JamesRezo par exemple

Donc par défaut Composer récupère des «zips» des archives parce que c’est bien moins lourd et plus rapide.
On peut vouloir dire à composer de tout le temps récupérer des sources (git), ou le faire pour certains dépots ou organisations uniquement.

C’est ce que ferait dans composer.json cette config pour l’orga spip/ :

    "config": {
        "preferred-install": {
            "spip/*": "source"
        }
    },

Note que pour que ce soit pris en compte il faut supprimer le vendor/ ou le plugins-dist/ et relancer composer install.

L’inconvénient de cela, c’est qu’il crée un diff dans le composer.json de SPIP, pour quelque chose qui est du domaine du développeur, et que tu as pas envie de commiter.

James a crée une commande composer local copie un peu de composer global qui duplique le composer.json en composer.local.json et utilise ce dernier.
Dedans, la commande spéciale composer local mode-dev va ajouter ce qu’il faut pour que les plugins dist soient récupérés en Git (et une fois fait d’ailleurs, Composer continue d’utiliser le git ensuite).

Donc tldr:

rm -rf plugins-dist/*
composer local mode-dev
composer local install

Tu auras tes plugins-dist/spip/* en Git.

2 « J'aime »