gvanto
gvanto

Reputation: 2074

Composer package not found in any version

I am trying to create a custom vendor package but have not yet put the package on packagist. According to the docs, the package can be loaded from git (vcs) instead of packagist: https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository

The yii2 project (although don't think framework matters) I have created package inside vendor folder:

foundationize/yii2-foundation (folder structure is as above, I have quadruple-checked).

My root public_html/composer.json has following entries:

"minimum-stability": "dev",
    "require": {
        "php": ">=5.4.0",
        "yiisoft/yii2": ">=2.0.5",
        "yiisoft/yii2-swiftmailer": "*",
        "foundationize/yii2-foundation": "dev-master" 
    },

My package composer file, vendor/foundationize/yii2-foundation/composer.json looks like:

{
    "name": "foundationize/yii2-foundation",
    "description": "The Foundation extension for the Yii2 framework",
    "keywords": ["yii2", "foundation"],
    "type": "yii2-extension",
    "license": "BSD-3-Clause",
    "support": {
        "issues": "https://github.com/foundationize/yii2-foundation/issues",
        "wiki": "https://github.com/foundationize/yii2-foundation/wiki",
        "source": "https://github.com/foundationize/yii2-foundation.git"
    },
    "authors": [
        {
            "name": "gvanto",
            "email": "[email protected]",
            "homepage": "http://foundationize.com"
        }
    ],
    "require": {
        "yiisoft/yii2": "*"
    },
    "autoload": {
        "psr-4": {
            "foundationize\\foundation\\": ""
        }
    },
    "repositories": [
        {
            "packagist": false,
            "type": "vcs",
            "url": "https://github.com/foundationize/yii2-foundation.git"           
        }
    ]       
}

When I run composer install (or update), I keep getting error below:

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

Problem 1 - The requested package foundationize/yii2-foundation could not be found in any version, there may be a typo in the package name.

Potential causes:

Read https://getcomposer.org/doc/articles/troubleshooting.md for further common problems.

I have googled it high and low, read the docs can't seem to get it to work (always the same error, which I actually think would be more useful if it said either the package was not found OR the incorrect package version was found).

Upvotes: 1

Views: 14180

Answers (3)

james-geldart
james-geldart

Reputation: 749

Had a similar problem to this and it was because I was running composer in the /web directory in the new Drupal structure. When I ran it in the root all was fine. Annoyingly, you need to run Drush in /web

Upvotes: 1

Uros
Uros

Reputation: 2150

Since Laravel version 5.5 there is a Package Auto-Discovery feature, so there is no need to add service provider. All you need to register package like this:

composer require barryvdh/laravel-debugbar:dev-master

You can find more info in these articles:

https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518 https://divinglaravel.com/laravels-package-auto-discovery

Upvotes: 0

xabbuh
xabbuh

Reputation: 5881

You have to add the repositories entry to your root composer.json file. Otherwise, Composer does not know where to search for your package.

Upvotes: 5

Related Questions