Raccourcis : Contenu - rubriques - sous rubriques
FR

Piste :

Wiki: Plan du site - Derniers changements - Back link

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:tutoriels:utiliser-composer [2015/03/09 11:42] laurentfr:tutoriels:utiliser-composer [2015/03/09 16:04] (Version actuelle) – [Développer une application et des modules séparément] laurent
Ligne 14: Ligne 14:
 Une application développée avec Composer ne comporte normalement pas les bibliothèques tierces. C'est à dire que le code source de l'application, dans un dépôt git, subversion ou mercurial, ne contient pas le code source de ces bibliothèques tierces. Elles sont installées par Composer lors du déploiement de l'application (que ce soit en local pour développer ou sur un serveur de déploiement pour la mise en production). Une application développée avec Composer ne comporte normalement pas les bibliothèques tierces. C'est à dire que le code source de l'application, dans un dépôt git, subversion ou mercurial, ne contient pas le code source de ces bibliothèques tierces. Elles sont installées par Composer lors du déploiement de l'application (que ce soit en local pour développer ou sur un serveur de déploiement pour la mise en production).
  
-Ainsi, une application utilisant le framework Jelix 1.7+ avec Composer, ne devrait pas inclure Jelix dans son code source, et indiquer plutôt le paquet Jelix dans le fichier composer.json de l'application. Composer installera alors les fichiers de Jelix (et autres bibliothèques) dans un dossier @@vendor/@@ (que vous ne devez donc pas inclure dans votre dépôt git/svn/hg).+Ainsi, une application utilisant le framework Jelix 1.7+ avec Composer, ne devrait pas inclure Jelix dans son code source, et indiquer plutôt le paquet Jelix dans le fichier composer.json de l'application. Composer installera alors les fichiers de Jelix (et autres bibliothèques) dans un dossier @@vendor/@@ (que [[https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md|vous ne devez donc pas inclure dans votre dépôt]] git/svn/hg).
  
 Pour créer un nouveau projet, deux choix. Pour créer un nouveau projet, deux choix.
Ligne 170: Ligne 170:
  
    * Dans le composer JSON, vous indiquez non pas une version stable du paquet d'un module, mais sa branche de développement ("dev-quelquechose"). Vous avez alors, dans le répertoire du module dans @@F@vendor/@@, un clone Git du projet du module, et non pas uniquement ses sources (C'est une des raisons d'ailleurs pour laquelle il ne faut jamais inclure le répertoire vendor).    * Dans le composer JSON, vous indiquez non pas une version stable du paquet d'un module, mais sa branche de développement ("dev-quelquechose"). Vous avez alors, dans le répertoire du module dans @@F@vendor/@@, un clone Git du projet du module, et non pas uniquement ses sources (C'est une des raisons d'ailleurs pour laquelle il ne faut jamais inclure le répertoire vendor).
-   * Vous pouvez alors faire des modifications dans les sources du module (dans vendor/), les tester avec votre application, et commiter dans le dépôt du module comme à votre habitude, quand les modifications sont terminées+   * Vous pouvez alors faire des modifications dans les sources du module (dans vendor/), les tester avec votre application, et commiter dans le dépôt du module comme à votre habitude, quand les modifications sont terminées, en tenant compte des informations suivantes 
-   * **Attention** ne manipulez pas Composer tant que vous n'avez rien commiter +       * Dans le dépôt du module (dans vendor/), vous remarquerez que deux "remote" sont déclarés : "composer" et "origin". Il faut travailler sur une branche issue de "origin": le push sera facilité 
-   * Dans le dépôt du module (dans vendor/), vous remarquerez que deux "remote" sont déclarés : "composer" et "origin".+       * **Attention** : ne manipulez pas Composer tant que vous n'avez rien commité et poussé sur les dépôts d'origine, en particulier si d'autres personnes sont susceptibles de commiter dans le dépôt d'origine. Un "composer update" pourrait écraser vos modifications ou vos commits locaux. Si vous avez vraiment besoin de faire un "composer update" et qu'il est succeptible d'avoir des nouveaux commits distant, travaillez alors sur une nouvelle branche locale : Composer n'y touchera pas.
    * Enfin, une fois que le module est stable, vous mettrez un tag de version (ex: v1.0) dans le dépôt du module.    * Enfin, une fois que le module est stable, vous mettrez un tag de version (ex: v1.0) dans le dépôt du module.
  
 Une fois que votre module et votre application sont "stables", vous changerez alors la version du module dans le composer.json de l'application, en indiquant le numéro de version stable du module.  Une fois que votre module et votre application sont "stables", vous changerez alors la version du module dans le composer.json de l'application, en indiquant le numéro de version stable du module. 
- 
- 
- 
-TODO: verifier le comportement de composer avec des changements dans le dépôt local de vendor/monmodule/. Ici les tests ont été fait alors que Composer a fait un checkout de origin/master. 
- 
-   * changer de remote (sans modification) + composer update.  
-     * exemple: on est sur master -> origin/master et on fait un  git checkout -b cp-master --track composer/master 
-     * Résultat : RAS 
-   * changement dans la branche tracké via "composer" 
-     * modif puis composer update/install sans nouvelle version. Résultat : RAS 
-     * modif puis commiter puis  composer update/install sans nouvelle version. Résultat : RAS 
-     * modif puis commiter puis pusher puis composer update/install sans nouvelle version. Résultat : on ne peut pas pousser car l'url du remote est celle en lecture seule. Il faut passer sur la branche de origin correspondante, fusionner, et pousser (ou alors modifier l'url push du remote "composer"). Sinon RAS. 
-   * changement dans la branche tracké via "origin" 
-     * modif puis composer update/install sans nouvelle version. Résultat : ? 
-     * modif puis commiter puis  composer update/install sans nouvelle version. Résultat : ? 
-     * modif puis commiter puis pusher puis composer update/install sans nouvelle version. Résultat : ? 
-     * modif puis composer update/install avec nouvelle version dispo. Résultat : ? 
-     * modif puis commiter puis  composer update/install avec nouvelle version dispo. Résultat : ? 
-     * modif puis commiter puis pusher puis composer update/install avec nouvelle version dispo. Résultat : ? 
-   * passage à une version stable dans le composer.json, sans modification des sources du module. Résultat : ? 
-   * passage à une version stable dans le composer.json, avec modification des sources du module non commitées. Résultat : ? 
-   * passage d'une version stable à instable. Résultat : ? 
-   * changement distant + composer update alors que l'on est sur origin master ou composer master. Résultat : mise à jour du remote composer mais pas du remote origin. Par contre mise à jour de la branche locale origin master mais pas la branche locale composer master. 
-   * changement distant + changement local + composer update alors qu'on est sur le remote composer. Résultat : ? 
-   * changement distant + changement local + composer update alors qu'on est sur le remote origin. Résultat : ? 
  
  
  
fr/tutoriels/utiliser-composer.txt · Dernière modification : 2015/03/09 16:04 de laurent
Fils rss des changements récents dans le wiki Creative Commons License