2013-06-27 4 views
7

Il progetto è configurato tramite composer.phar install --prefer-source e contiene alcuni moduli che vengono mantenuti in git.Flusso di lavoro del compositore: Come aggiornare compositore.lock quando ho cambiato una dipendenza

Gestisco tutti questi moduli e i relativi repository git nel mio IDE (PhpStorm) e quindi posso apportare alcune modifiche ad alcuni dei moduli nella cartella vendor/ - direttamente nel repository git di origine.

Come posso assicurarmi ora che i miei colleghi ottengano la mia versione recente del modulo quando fa un composer.phar install (composer.lock è nel repository)?

Se faccio un locale composer.phar update sembra che il composer.lock non è aggiornato, perché ho già la versione più recente (come ho appena fatto il commit direttamente nella cartella vendor)

+0

Se si punta a un tag, la versione non cambia e il compositore non vede un motivo per aggiornarlo. In tal caso, è necessario incrementare il numero di versione quando si modifica la definizione del pacchetto. –

+0

Punto a "*". Il problema è come generare un 'composer.lock' aggiornato. – Alex

+0

Non è aggiornato, perché non si stanno spingendo le modifiche. Dopo aver modificato la libreria da vendor/dir, è necessario trasferire le modifiche a remote. Dopo che il compositore rileverà la nuova versione e agirà di conseguenza. E suggerisco di usare "dev-develop" o "dev-master" invece di "*" come richiesto, in modo da poter avere più controllo. –

risposta

4
  1. commettere i cambiamenti nel repository dei moduli che hai aggiornato.
  2. Spingere le modifiche a tutti i rispettivi repository remoti.
  3. Contrassegna le nuove modifiche con le versioni appropriate.
  4. Eseguire composer update vendor1/package1 vendor2/package2 (o solo composer update se non è necessario essere espliciti).
  5. Confermare e inoltrare il file composer.lock aggiornato.
  6. I tuoi colleghi devono estrarre il file composer.lock aggiornato ed eseguire composer install (installa le ultime versioni del pacchetto dal file di blocco).

versioni restrizioni se è stato specificato quali "vendor/package": "3.5.*" nella vostra composer.json e avete etichettato come una nuova versione 3.6.0 è necessario aggiornare il file composer.json di conseguenza prima fase 4..


P.S. È molto buono che tu usi un tale flusso di lavoro con --prefer-source. Si prega di non utilizzare le restrizioni di versione * o dev-master nel proprio composer.json. Suggerirei sempre di utilizzare le versioni anche se si trovano nell'intervallo di versione maggiore zero (0.X.X).