Compositor requiere nombre de rama

106

Por ejemplo, quiero requerir:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "v1-master"
  }
}

En este ejemplo, intento require google/apiclienten la rama v1-master. Me sale un error:

  [UnexpectedValueException]                                                        
  Could not parse version constraint v1-master: Invalid version string "v1-master"
Mago
fuente

Respuestas:

186

Necesita prefijar todas las ramas de desarrollo (= no etiquetadas) por dev-.

Para instalar la rama que necesita, use:

composer require google/apiclient:dev-v1-master

Consulte los documentos del compositor .

Tomáš Votruba
fuente
1
Información útil. ¡Gracias!
Matt Komarnicki
Estoy intentando eso en una máquina con Windows, pero no puedo encontrar el comando correcto para ejecutar el compositor para descargar un paquete del repositorio de git. ¿Así que, por favor, me ayudas en esto?
Jefe del equipo de programadores de PHP Sr.
Agregue el prefijo 'dev-' solo en el comando composer. ¿No necesita cambiar nada en el nombre de las ramas del repositorio?
Silas Ribas Martins
No se pudo reinstalar la rama actualizada incluso con --no-cache, así que usé esto:composer require google/apiclient:dev-v1-master#COMMITHASH
M Rostami
46

esto funcionará:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "dev-BRANCH_NAME"
  }
}

entonces el patrón es "dev- *", si el nombre de la rama es "bug-fix", entonces "dev-bug-fix"

con línea de comando:

composer require google/apiclient:dev-BRANCH_NAME
fico7489
fuente
4
Gracias por explicar el patrón "dev- *"
Emeka Mbah
4
Si ha bifurcado el repositorio principal, no cambie el nombre del proveedor en la parte requerida. Bifurcación: "url": "https://github.com/your-username/google-api-php-client.git"pero requiere estancias: googlevendedor.
Vladimir Vukanac
1
@VladimirVukanac ¡esa pequeña joya necesita más visibilidad!
Jacob Thomason