2013-06-27 4 views
7

Das Projekt wird über composer.phar install --prefer-source eingerichtet und enthält einige Module, die in git gehalten werden.Composer Workflow: Wie aktualisiere ich composer.lock, wenn ich eine Abhängigkeit ändere

Ich verwalte alle diese Module und ihre Git-Repositories in meiner IDE (PhpStorm) und könnte daher einige Änderungen an einigen der Module im vendor/-Ordner vornehmen - direkt zum Quell-Git-Repository.

Wie kann ich jetzt sicherstellen, dass meine Mitarbeiter meine aktuelle Modulversion erhalten, wenn eine composer.phar install (composer.lock ist im Repo) gemacht wird?

Wenn ich einen lokalen composer.phar update es sieht aus wie die composer.lock nicht aktualisiert, weil ich bereits die neueste Version haben

+0

Wenn Sie auf ein Tag zeigen, ändert sich die Version nicht und Composer sieht keinen Grund, es zu aktualisieren. Wenn dies der Fall ist, sollten Sie die Versionsnummer erhöhen, wenn Sie die Paketdefinition ändern. –

+0

Ich zeige auf "*". Das Problem ist, wie man einen aktualisierten 'composer.lock' erzeugt – Alex

+0

Wird nicht aktualisiert, weil Sie keine Änderungen vornehmen. Nachdem Sie die Bibliothek von Vendor/dir geändert haben, sollten Sie die Änderungen an Remote übertragen. Danach wird der Komponist eine neue Version erkennen und entsprechend handeln. Und ich schlage vor, "dev-develop" oder "dev-master" anstelle von "*" zu verwenden, damit Sie mehr Kontrolle haben. –

Antwort

4
  1. Commit in der die Änderungen (wie ich nur die direkt im vendor Ordner Commit gemacht) Repo-Module, die du aktualisiert hast.
  2. Die Änderungen an alle entsprechenden Remote-Repos übertragen.
  3. Markieren Sie die neuen Änderungen mit den entsprechenden Versionen.
  4. Führen Sie composer update vendor1/package1 vendor2/package2 (oder nur composer update, wenn Sie nicht explizit sein müssen).
  5. Commit und drücken Sie die aktualisierte composer.lock Datei.
  6. Ihre Mitarbeiter müssen die aktualisierte Datei composer.lock abrufen und ausführen (installieren Sie die neuesten Paketversionen aus der Sperrdatei).

Wenn Sie Versionen Einschränkungen wie "vendor/package": "3.5.*" in Ihrem composer.json angegeben haben, und Sie haben eine neue Version wie 3.6.0 getaggt Sie benötigen, um Ihre composer.json Datei entsprechend vor dem Schritt 4. zu aktualisieren.


P.S. Es ist sehr gut, dass Sie einen solchen Workflow mit --prefer-source verwenden. Bitte verwenden Sie keine * oder dev-master Versionsbeschränkungen in Ihrem composer.json. Ich würde empfehlen, immer Versionen zu verwenden, selbst wenn sie im Null-Hauptversionsbereich sind (0.X.X).