it-swarm.com.de

Wie kann ich den Composer dazu bringen, das neueste Commit für ein Paket von GitHub im Master-Zweig?

Ich versuche, Composer das neueste Commit für das Behat/MinkSelenium2Driver-Paket herunterzuladen. Dieses Repo hat nur einen Hauptzweig. Ich habe jede Methode ausprobiert, die mir einfällt, einschließlich des Löschens der Dateien und des Zurückziehens, um sie zum Laufen zu bringen, aber es funktioniert nicht.

Wie bekomme ich es, die neuesten zugesagten Dateien oder zumindest die Dateien aus der unten aufgeführten Liste der Commits einzulesen?

Insbesondere möchte ich dieses Commit erhalten: https://github.com/Behat/MinkSelenium2Driver/commit/2e73d8134ec8526b6e742f05c146fec2d5e1b8d6

Danke, Patrick

32
Patrick

Es gibt nur eine Möglichkeit, den Kopf des Repositorys zu ergreifen: 

"require": { "behat/mink-Selenium2-driver" : "dev-master" }
"minimum-stability": "dev"

Naja, mindestens zwei Möglichkeiten:

"require": { "behat/mink-Selenium2-driver" : "dev-master as 1.1.x-dev" }
"minimum-stability": "dev"

Wahrscheinlich mindestens drei Möglichkeiten:

"require": { "behat/mink-Selenium2-driver" : "dev-master#2e73d8134ec8526b6e742f05c146fec2d5e1b8d6" }
"minimum-stability": "dev"

Da dieses Repository den Hauptzweig tatsächlich als 1.1.x-dev verfälscht hat, würde dies auch funktionieren, ohne dass die Mindeststabilität alle anderen Pakete beeinflusst:

"require": { "behat/mink-Selenium2-driver" : "1.1.*@dev" }
49
Sven

Keine der obigen Optionen funktionierte, bis ich die Datei composer.lock gelöscht habe. 

Nachdem ich die composer.lock-Datei gelöscht habe, wurde das letzte Commit ausgeführt, ohne etwas anderes als den Zweignamen angeben zu müssen. (Dev-Master in meinem Fall)

Von jetzt an scheint es also so zu sein: 

1- Löschen Sie die Datei composer.lock.
2- den Anforderungsordner löschen. (veraltete Dateien)
3- komposer installieren. 

9

Einfach den Master-Zweig angeben:

composer require --dev behat/mink-Selenium2-driver:dev-master

PS: Mit dem --dev wird lediglich angegeben, dass dies eine Test-/Entwicklungsanforderung ist.

5
Berend de Boer

In unserem Fall funktionierte keine der vorherigen Antworten. Es stellte sich heraus, dass es etwas Einfaches war:

Composer verwendet nur das Repository-Attribut des ROOT-Komponisten.json

https://getcomposer.org/doc/04-schema.md#repositories

In unserem Fall haben wir versucht, das neueste Commit einer unserer transitiven Abhängigkeiten von dev-master zu erhalten. Es gab einige Probleme mit den Haken zwischen Github und Packagist, die das Funktionieren des normalen Verhaltens verhinderten. Es dauerte ein paar Stunden, bis wir erkannten, dass wir den falschen composer.json (den aus unserer Bibliothek, der die Abhängigkeit trägt) bearbeiteten, anstelle der Spitze -level composer.json, das wir installiert haben.

0
lmsurprenant

Ich denke, dass die beste Antwort darin besteht, die Mindeststabilität stabil zu halten.

"minimum-stability" : "stable"

Geben Sie dann im Abschnitt "Required" "dev-master @ dev" an.

"require" : {
  "ResistFascism" : "[email protected]"
}

Oder Sie können tun, was ich mache und nicht Master verwenden, sondern eher meine eigenen Zweige erstellen. Geben Sie also nicht das ResistFascism-Paket vom Master-Zweig aus an, sondern geben Sie in Ihrer composer.json einen Dev-Zweig an.

"require" : {
  "ResistFascism" : "[email protected]"
}

Ich mag es, alle meine externen Pakete auf stabilen Versionen zu behalten, weil ich das in der Produktion laufe, aber ich verwalte meine eigenen Pakete oft auf Dev-Versionen. Sie können aber auch Master verwenden. Es ist persönliche Präferenz.

0
Halfstop