Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

composer.json recursive dependencies

I'm trying to manage my personal packages via Composer and I'm getting some errors when I "composer update/install" a module (which depends on another module which depends on another module, etc).

I have a composer.json file in my Admin module which references and requires a personal repository "Access" :

"repositories": [
        {
            "type": "vcs",
            "url": "git@gitlab.[hidden].com:[hidden]/php-zf2-access.git"
        },
],
"require": {
        [hidden]/php-zf2-access": "dev-master"
}

My Access module has a composer.json file which references and requires a personal repository Basic :

"repositories": [
        {
            "type": "vcs",
            "url": "git@gitlab.[hidden].com:[hidden]/php-zf2-basic.git"
        }
    ],
"require": {
        "[hidden]/php-zf2-basic": "dev-master"
    },

When I'm installing/updating my Admin module, I get this error :

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

Problem 1

- Installation request for [hidden]/php-zf2-access dev-master -> satisfiable by [hidden]/php-zf2-access[dev-master].

- [hidden]/php-zf2-access dev-master requires [hidden]/php-zf2-basic dev-master -> no matching package found.

If I "composer install" my Access module, it correctly loads my Basic module (no configuration error in my composer.json Access module), so why my Admin module can't load Access which loads Basic ?

If I add my Basic module configuration (repositories : ....basic.git + require: .....basic:"dev-master") to my composer.json's Admin module, no error is raised and the installation runs perfectly (but I don't want this as a solution).

Thank you for your help.

like image 432
Vincent Caggiari Avatar asked Jul 28 '14 23:07

Vincent Caggiari


1 Answers

Composer can not load repositories recursively. The easiest if you have private packages to manage that have dependencies on each other is to use Toran Proxy or Satis.

like image 114
Seldaek Avatar answered Oct 22 '22 12:10

Seldaek