jeudi 13 juin 2019

How to locally include second order dependencies

I am simultaneously developping two composer packages: a general package that will be used in other packages I develop, and a specific one for a specific purpose, that requires the general package to work.

For now, my directory looks like this:

projects
|- general-package
|  |- composer.json
|  |- "other files"
|
|- specific-package
|  |- composer.json
|  |- "other files"
|
|- testing-directory
   |- composer.json
   |- "other files"

Here are the 3 composer.json files:

general-package/composer.json

{
    "name": "vendor/general-package",
    "require": {
        "php": ">=7.0.0"
    }
}

specific-package/composer.json

{
    "name": "vendor/specific-package",
    "require": {
        "php": ">=7.0.0",
        "vendor/general-package": "^1.0"
    }
}

testing-directory/composer.json

{
    "config": {
        "preferred-install": "source"
    },
    "repositories": [{
            "type": "path",
            "url": "../specific-package",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "path",
            "url": "../general-package",
            "options": {
                "symlink": true
            }
        },
    ],
    "require": {
        "php": ">=5.3.7",
        "vendor/specific-package": "@dev",
        "vendor/general-package": "@dev"
    }
}

When running composer update in the testing directory, the package vendor/specific-package is being fetched from the local source, but the vendor/general-package is fetched from packagist.org.

How can I force vendor/general-package to be fetched locally as well?

Aucun commentaire:

Enregistrer un commentaire