Partage
  • Partager sur Facebook
  • Partager sur Twitter

{Composer}Comment faire son propre dépôt privé ?

    18 avril 2015 à 15:44:42

    Une question somme toutes directe, mais dont les tutoriels trouvés s'avèrent plutôt flous sur le sujet. Je cherche à disposer de mon propre dépôt de packages Composer, afin de mettre au point ma boîte à outils sous forme de librairies interdépendantes. Si un projet a besoin d'une de ces librairies, il aura ainsi toutes les dépendances qui vont avec.

    La doc de Composer m'oriente sur Satis, afin de récupérer récursivement les dépôt externes Git et compagnie à déclarer en plus des packages à l'intérieur de mon dépôt personnel (parce que sans ça Composer n'est pas récursif pour la détection des dépôts dans les dépendances).

    Quelqu'un peut-il m'aigüiller un peu svp ?

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2015 à 16:57:20

      Il est tout à fait possible d'installer packagist sur son propre serveur pour avoir son propre dépôt Composer privé. Les sources de packagist.org sont disponible sur github: https://github.com/composer/packagist. Il est donc possible de le mettre en place sur son serveur (c'est d'ailleurs ce que j'ai fait là ou je travaille et ça marche très bien).

      Il suffira alors d'ajouter ce bloc dans ton composer.json :

      "repositories": [{
          "type": "composer",
          "url": "https://packagist.ton-domaine.fr/"
      }]

      Et normalement tu n'as plus qu'à ajouter tes dépendances qu'il ira chercher sur packagist.org ou dans le packagist que tu as défini.

      Edit: J'avais commencé à écrire un article sur ce sujet ce matin, donc je viens de le terminer : http://www.toshy.net/article/mettre-en-place-un-packagist-local

      -
      Edité par Toshy62 18 avril 2015 à 17:25:49

      • Partager sur Facebook
      • Partager sur Twitter
      I <3 Ge0 | nohar | Shig was here -> .
        18 avril 2015 à 17:24:29

        Oui, sauf que de ce que je comprends de la doc de Composer, si une dépendance a des dépôts dépendants, mon dépôt ne les aura pas.

        Par exemple si sur mon dépôt je référence un package qui a besoin d'un dépôt Git pour chercher ses propres dépendances, mon dépôt ne l'aura pas en référence et ne pourra pas dl les dépendances de ce package quand je le mettrai en dépendance d'un projet.

        Ou alors j'ai mal compris qqchose ?

        • Partager sur Facebook
        • Partager sur Twitter
          18 avril 2015 à 17:30:06

          Bah si les dépendances de ta librairie se trouve soit sur ton dépôt Packagist ou sur Packagist.org, il n'y a pas de raison qu'il ne les trouvent pas, si tu as renseigné ton Packagist dans le composer.json de ton projet et dans celui de ta librairies qui a des dépendances vers d'autres librairies de ton Packagist.

          Après c'est ma vision, je ne vois pas pourquoi ça ne fonctionnerai pas...

          -
          Edité par Toshy62 18 avril 2015 à 17:30:36

          • Partager sur Facebook
          • Partager sur Twitter
          I <3 Ge0 | nohar | Shig was here -> .
            18 avril 2015 à 17:42:35

            Je parle du cas suivant :

            • Je veux faire un projet
            • Il a une dépendance : package1
            • package1 se trouve sur mon dépôt
            • package1 a une dépendance : package2
            • package2 se trouve sur un autre dépôt (par exemple : Git)
            D'après la doc de Composer, à moins de répéter le dépôt Git dans son composer.json, il n'y a pas moyen de trouver package2 à partir de mon projet. Il suggèrent Satis comme solution au problème pour générer un packages.json à partir d'une liste de dépôts, mais c'est là que ça se corse pour moi et c'est pourquoi je suis venu poster ce topic.
            • Partager sur Facebook
            • Partager sur Twitter
              18 avril 2015 à 18:09:51

              Satis ou une instance local de Packagist c'est la même chose le but est d'avoir une application web capable de répondre sur URL_DU_DEPOT/packages.json, Satis comme Packagist sont des applications qui permettent de répondre dynamiquement et de lister des paquets sur la route packages.json.

              A la différence que la configuration de Satis semble plus complexe (enfin pas plus complexe, Satis fait via un fichier de configuration, ce que Packagist te permet de faire via une interface web). Il serait intéressant de savoir où tu es bloqué dans la solution Satis (ce que tu as déjà fait et ou tu bloques).

              -
              Edité par Toshy62 18 avril 2015 à 18:11:18

              • Partager sur Facebook
              • Partager sur Twitter
              I <3 Ge0 | nohar | Shig was here -> .
                18 avril 2015 à 18:13:28

                Comprendre comment la déployer. xD
                J'en suis vraiment au début (à part le DL, et encore j'arrive pas à DL Satis via composer, je suis obligé de passer par le zip de GitHub...)

                Tu me dis qu'un dépôt Packagist personnel est capable de trouver récursivement les dépôts nécessaires aux dépendances des paquets qu'il propose ?

                • Partager sur Facebook
                • Partager sur Twitter
                  18 avril 2015 à 19:28:41

                  Normalement oui, derrière c'est la même technologie que Satis, Satis génère une fois packages.json en fonction de la configuration que tu lui donnes tandis que Packagist le génère dynamiquement en fonction du contenu de sa base de données (les paquets ajoutés). Mais pour des données identique, le packages.json de Satis et de Packagist devrait être identique c'est juste la façon d'alimenter la liste des paquets qui change entre les deux programmes.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  I <3 Ge0 | nohar | Shig was here -> .
                    18 avril 2015 à 21:10:40

                    Je vais voir ce que je peux en faire, j'ai mis en favoris ton tuto (et ton site) pour pouvoir installer ça en même temps que le reste sur un serveur virtualisé en attendant le réel :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 avril 2015 à 21:17:17

                      Si tu pourras me faire des retours sur ta mise en place et les éventuelles problèmes, ça sera avec plaisir...
                      • Partager sur Facebook
                      • Partager sur Twitter
                      I <3 Ge0 | nohar | Shig was here -> .

                      {Composer}Comment faire son propre dépôt privé ?

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown