2014-02-10 4 views
5

Ich möchte Änderungen versuchen, die ich am Doctrine-ORM in meinem lokalen Projekt vorgenommen habe, bevor eine Pull-Anforderung gesendet wurde.Verwenden eines benutzerdefinierten Git-Repositorys zusammen mit Packagist in Composer

ich meine Änderungen an dem default-lockmode Zweig in meinem GitHub-Repository-Klon geschoben habe, fügten dann folgendes composer.json:

{ 
    "require": { 
     "doctrine/orm": "dev-default-lockmode" 
    }, 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/BenMorel/doctrine2.git" 
     } 
    ] 
} 

Ich dachte, das das doctrine/orm Paket in meiner Git-Repository über das gefunden würde bevorzugen eine von Packagist, aber immer noch die anderen Pakete von Packagist.

Allerdings, wenn ich composer update laufen lasse, erhalte ich folgende Fehlermeldung:

Your requirements could not be resolved to an installable set of packages.

Problem 1

  • Installation request for doctrine/orm dev-default-lockmode -> satisfiable by doctrine/orm[dev-default-lockmode].
  • doctrine/orm dev-default-lockmode requires doctrine/dbal >=2.5-dev,<2.6-dev -> no matching package found.

Potential causes:

  • A typo in the package name
  • The package is not available in a stable-enough version according to your minimum-stability setting

So sieht es aus wie es jetzt alle Pakete in meinem GitHub-Repository zu finden ist zu erwarten.

Ist es möglich, ein benutzerdefiniertes Repository nur für doctrine/orm zu verwenden, aber Packagist trotzdem für alle anderen zu verwenden?

Antwort

7

ich nur fehlte die minimum-stability Einstellung:

{ 
    "minimum-stability": "dev", 

    "require": { 
     "doctrine/orm": "dev-default-lockmode" 
    }, 

    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/BenMorel/doctrine2.git" 
     } 
    ] 
} 

Lehre DBAL richtig aus Packagist gezogen wurde, war dies nicht das Problem. Das eigentliche Problem war, dass dieses Paket noch nicht als stabile freigegeben ist.

Wie so oft, ist die Antwort in der Fehlermeldung, die ich übersehen:

The package is not available in a stable-enough version according to your minimum-stability setting

1

Es sieht aus wie Ihr Problem ist, dass das Paket, das Sie selbst Abhängigkeiten bekam

"require": { 
    "php": ">=5.3.2", 
    "ext-pdo": "*", 
    "doctrine/collections": "~1.1", 
    "doctrine/dbal": ">=2.5-dev,<2.6-dev", 
    "symfony/console": "2.*" 
}, 

Dies sind aussehen wie sie aus dem Repository versuchen aufgelöst werden sollen, einschließlich hat.

Haben Sie die ursprünglichen Verweise auf Doktrepositorien in Ihrer Konfiguration verlassen. Sie werden benötigt, um Sammlungen/Debal zu lösen.

Ihr privates Repository sollte Vorrang haben.

auch Abhängigkeiten erfüllen Sie auch Aliase

https://getcomposer.org/doc/05-repositories.md#using-private-repositories 

Wenn Sie weitere Hilfe benötigen, können Sie mehr von den Komponisten Datei, aussehen sollte.

+0

Ja, es Abhängigkeiten hat, ich will nicht, diese ändern, ich will sie alle haben zurückgreifen zu Verpacker. – Benjamin

+0

Sie haben also immer noch die alten Verweise auf die Lehre an anderer Stelle in Ihrer Konfiguration? – BillyBigPotatoes

+0

Es kann einfacher sein, keinen neuen Namen des Pakets zu erstellen, sondern stattdessen einen Aliasnamen zu verwenden. – BillyBigPotatoes