2016-05-17 3 views
0

Ich benutze, wie immer Komponist in meinen Projekten.Git Tracking auf composer.lock Datei

Wie immer, ich Composer.lock-Datei in git verfolgen. Erstens, weil ein ehemaliger Lead-Entwickler mir das gesagt hat. Zweitens, weil es wirklich Praxis ist, alle die gleichen Abhängigkeiten zu erhalten. Und um sie einfach in der Produktion zu installieren.

Wie auch immer, ich benutze tatsächlich eine Bibliothek. Es erfordert Symfony/Prozess. Das Problem ist, dass ich auf dem Produktionsserver wegen der PHP-Version (5.4.44) nur v2.8.6 von symfony/process haben kann.

Aber auf den meisten Entwicklern haben wir PHP5.6 oder PHP7. So könnten wir symfony/process v3.0.6 (laste stable release) verwenden.

So in composer.json, habe ich symfony/Prozess erfordern = 2.8.6

Also alles, was wir diese Version haben. Das funktioniert, jedes Problem.

Ich habe immer noch eine Frage, die mich die ganze Zeit stören. In gewisser Weise würde ich Version> = 2.8.6 in composer.json setzen, und so könnten wir für dev v3.0.6 und in der Produktion die kompatible Version haben.

Aber in diesem Fall werden wir ständig einen Konflikt mit der composer.lock Datei (zwischen Devs und Produktion) haben. Also konnten wir es nicht mehr verfolgen. Trotzdem möchte ich die neueste stabile Version bekommen. Und an manchen Tagen werden wir den Produktionsserver auf PHP 5.6 aktualisieren. Und so verwenden Sie symfony/process zur neuesten stabilen Version.

Also sollte ich in diesem Fall aufhören, Composer.lock zu verfolgen? Wie konnten wir die neueste Version bekommen und die Migration auf PHP5.6 einfacher machen?

Oder ist dies immer noch eine bessere Idee, Composer.lock-Datei zu verfolgen.

Danke,

Antwort

1

Verwenden Sie zwei Zweige, einen für Entwickler, die andere für die Produktion oder Freigabe mit ihren eigenen composer.lock. Halten Sie die kontinuierliche Zusammenführung von Entwicklung zu Produktion, täglich oder alle paar Stunden oder jedes andere geeignete Intervall. Verzweigen Sie die Produktion von Dev und modifizieren Sie die .lock zu 2.8.6. Spätere Zusammenführung von der Entwicklung zur Produktion wird keinen Konflikt verursachen. Die Entwickler sollten nicht vom lokalen Entwickler zum entfernten Produktionszweig wechseln.

Wenn Sie denken, dass 2 Zweige Unannehmlichkeiten sind, können Sie die beiden Sperren an einer geeigneten Stelle des Repos hinzufügen. ZB 3.x.x ist wo es sein sollte und 2.x.x in einem anderen Ordner. In der Produktionsumgebung könnten Sie die Version 2.x.x kopieren, um die Version 3.x.x zu ersetzen. Dies könnte in etwas wie einem Skript vor dem Start oder post-checkout Hook getan werden.

Verwandte Themen