2017-03-31 4 views
0

Ich entwickle ein Composer-Paket, das in einer anderen Anwendung verwendet wird. Das Paket befindet sich in einem separaten Repository. Hin und wieder, wenn ich während der Entwicklung etwas im Paket repariere, muss ich seine Version erhöhen, indem ich ein Git-Tag zugebe, so dass die Anwendung, in der das Paket verwendet wird, die neueste Version davon herunterladen kann. Ich habe am Ende viele Tags.Composer Update ohne Versionierung

Gibt es eine geeignetere Möglichkeit, das Paket in der Entwicklung zu aktualisieren (das Composer-Update cmd), in dem es verwendet wird, ohne Tausende von Tags zu verwenden?

Angenommen, ich ändere das Paket, commit und schiebe die Änderungen auf den Repo. Wenn ich Composer im Bereich der App aktualisiere, wird das Paket aktualisiert. Obwohl die Version nicht mit der letzten Änderung erhöht wird, gibt es nur neue Commits im Repo des Pakets.

Antwort

1

Was ist schlecht mit vielen Tags?

Sie können sich auf Filialen verlassen. Composer würde das Repository klonen und jedes Mal, wenn Sie update ausführen, das letzte Commit dieses Zweiges auschecken. Ich empfehle dringend, sich auf einen Zweig mit einem Versionsalias zu verlassen: "your/lib": "dev-feature as 2.2.0" - dies wird Abhängigkeiten von anderen Bibliotheken erfüllen, die dieses in einer bestimmten Version benötigen, und es macht es klarer, auf welcher Version dieser Zweig basiert.

+0

Das ist geholfen. Obwohl danke für den Versions-Alias. – Sergey

1

Normalerweise gibt es zwei Möglichkeiten, um Pakete durch Composer-Update zu aktualisieren: Tags und Zweige. Da Sie keine Tags verwenden möchten, sprechen Sie hier nur Zweige.

Wie, wenn Sie auf master Zweig arbeiten, und wollen, dass die Änderungen von master Niederlassung in Ihrer Anwendung installiert werden, müssen Sie die Abhängigkeiten des Pakets in composer.json als

{ 
    "require": { 
     "vendor/package": "dev-master" 
    } 
} 

Weitere Einzelheiten ändern können Sie sich beziehen versions.