2013-07-31 6 views
6

Ho un progetto Laravel che vorrei utilizzare la mia propria fork (che ha unito un paio di richieste pull). Il seguente composer.json funziona come previsto (si recupera ramo principale dal mio repo):Richiesta di un fork con il compositore che altre dipendenze debbano utilizzare

{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://github.com/rmasters/framework" 
     } 
    ], 
    "require": { 
     "php": "5.4.*", 
     "laravel/framework": "dev-master" 
    }, 
    ... 
    "minimum-stability": "dev" 
} 

Tuttavia quando aggiungo un pacchetto che dipende dai componenti forniti da Illuminate laravel (ad esempio, zizaco/entrust che richiede le stesse versioni come previsto dalla mia forchetta) io alla fine con qualcosa di simile:

  • Installazione gexge/laravel-quadro (4.0.x-dev 87556b2)
  • lettura .../compositore/cache/file/gexge/framework/87556b ..... c382.zip dalla cache
  • Caricamento dalla cache
  • Estrazione dell'archivio

  • MOTIVO: zizaco/Entrust dev-master richiede illuminare/supporto 4.0.x -> satisfiable da

    • laravel/quadro [v4. 0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0-BETA4, v4.0.0-BETA3, v4.0.0-BETA2, v4.0.0, 4.0.x-dev],
    • gexge/framework [4.0.x-dev, v4.0.0 , v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5,
    • shrimpwagon/laravel-framework [4.0.x-dev, v4.0.0, v4.0.0-beta2, v4.0.0-BE TA3, v4.0.0-BETA4, v4.0.5],
    • illumini/supporto [4.0.x-dev, v4.0.0, v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5].

che in realtà finisce sia con la forchetta e questa forcella installato, con la forcella gexge la precedenza nel caricatore automatico.

C'è un modo per avere delle dipendenze che prendono la mia forchetta piuttosto che cercare di trovarne un'altra? La mia forchetta ha lo stesso nome di pacchetto (compositore.json non è stato modificato), quindi presumo che avrebbe funzionato.

In alternativa, posso bloccare determinati pacchetti dalla selezione? (Non ho trovato documenti per questo.) Fastidiosamente, nessuna delle due forcelle sembra avere molti motivi per essere in Packagist, ma suppongo che Composer dovrebbe essere in grado di aggirare questo problema.

risposta

10

La forcella ha un alias di diramazione per il master impostato su 4.1.x-dev, quindi non corrisponde al requisito 4.0.*.

La soluzione è quella di alias il pacchetto, richiedendo in questo modo

{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://github.com/rmasters/framework" 
     } 
    ], 
    "require": { 
     "php": "5.4.*", 
     "laravel/framework": "dev-master as 4.0.0" 
    }, 
    ... 
    "minimum-stability": "dev" 
} 

E infatti quelle forche non dovrebbe essere su Packagist, io contattare i proprietari.

+0

Genio, grazie Jordi! – Ross

+0

Sto ancora ottenendo questo, anche se il fork di gamberetti non è più su Packagist, in ogni modo intorno ad esso? –

+1

HAI SALVATO LA MIA VITA – alex

Problemi correlati