Yii 2 vendor trouble - yii2

\composer.json
{
"name": "yiisoft/yii2-app-basic",
"description": "Yii 2 Basic Project Template",
"keywords": [
"yii2",
"framework",
"basic",
"project template"
],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "minimum-stability",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.5",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"amnah/yii2-user": "^5.0",
"voskobovich/yii2-many-many-behavior": "^3.0",
"2amigos/yii2-date-picker-widget": "~1.0",
"intervention/image": "^2.3",
"codeception/codeception": "*",
"codeception/specify": "*",
"wbraganca/yii2-videojs-widget": "~1.0"
},
"require-dev": {
"yiisoft/yii2-codeception": "^2.0",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"
},
"config": {
"process-timeout": 1800
},
"scripts": {
"post-create-project-cmd": [
"yii\\composer\\Installer::postCreateProject"
]
},
"extra": {
"yii\\composer\\Installer::postCreateProject": {
"setPermission": [
{
"runtime": "0777",
"web/assets": "0777",
"web/uploads": "0777",
"yii": "0755"
}
],
"generateCookieValidationKey": [
"config/web.php"
]
},
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
trouble
> composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- yiisoft/yii2 2.0.7 requires bower-asset/punycode 1.3.* -> no matching package found.
- yiisoft/yii2 2.0.6 requires bower-asset/jquery.inputmask 3.1.* -> no matching package found.
- yiisoft/yii2 2.0.5 requires bower-asset/jquery.inputmask 3.1.* -> no matching package found.
- yiisoft/yii2 dev-master requires bower-asset/punycode 1.3.* -> no matching package found.
- yiisoft/yii2 2.0.x-dev requires bower-asset/punycode 1.3.* -> no matching package found.
- Installation request for yiisoft/yii2 >=2.0.5 -> satisfiable by yiisoft/yii2[2.0.5, 2.0.6, 2.0.7, 2.0.x-dev, dev-master].
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

Note that one of the potential causes listed is that the package is not available in a stable-enough version according to your minimum stability setting. This setting can have one of the following options (in increasing stability order):
dev
alpha
beta
RC
stable
Each package stability is checked against the minimum-stability setting and when its less stable, it will be ignored when updating your project.
Change minimum-stability to stable for instance or poke around with some other options and rerun composer update.
Check composer shema docs for more detailed information.

Related

Unable to install dev-master version of package from Satis repository

I'm developing a couple of composer packages (mainly related to the Yii2 framework) served by private Satis repository. Most of them is at the very beginning of development process, so they should be available as dev-master version due to master branch location within GIT repository.
The problem occurs when I'm trying to install dev-master of any package, i.e. foo/my-package:
./composer.phar require foo/my-package
Problem 1
- The requested package foo/my-package dev-master exists as foo/my-package[dev-master] but these are rejected by your constraint.
so, if dev-master exists, please install this version for me anyway:
./composer.phar require foo/my-package dev-master
[InvalidArgumentException]
Could not find package foo/my-package in a version matching dev-master
Now i'm confused. I've tried to install #dev version of foo/my-package and magically everything works, dev-master (!) version has been installed:
./composer.phar require foo/my-package #dev
Package operations: 6 installs, 0 updates, 0 removals
- Installing yiisoft/yii2-composer (dev-master 0933fd9): Downloading (100%)
- Installing yidas/yii2-bower-asset (2.0.12): Downloading (100%)
- Installing cebe/markdown (1.1.2): Downloading (100%)
- Installing ezyang/htmlpurifier (v4.14.0): Downloading (100%)
- Installing yiisoft/yii2 (2.0.12.2): Downloading (100%)
- Installing foo/my-package (dev-master ce0ac57): Cloning ce0ac5752b from cache
What is the main problem? my-package GIT repository have also feature/#1234 branch. When Satis repository generator is configured to serve all versions of all packages ({"require-all": true}) instead of configuration shown below, using #dev as package version during composer require operation will cause installation of source code from feature/#1234 branch (no matter if it's HEAD points to patch newer or older than masters' branch HEAD). I would like to setup Satis with require-all as true and install packages as dev-master in this case (but dev-feature/#1234 in other project); but first of all I need to understand why it's behave that way.
Composer version 1.10.25 2022-01-21 10:02:15 (it's required to use version prior to v2)
Satis configuration (main.json)
{
"name": "foo/bar",
"description": "foo",
"homepage": "https://foo.bar",
"repositories": [
{
"type": "git",
"url": "ssh://user#domain/path/foo-my-package.git"
},
...
],
"require": {
"foo/my-package": "dev-master",
...
}
"archive": {
"directory": "dist",
"format": "tar",
"checksum": true
}
}
foo/my-package composer file (composer.json)
{
"name": "foo/my-package",
"description": "description",
"type": "yii2-extension",
"license": "proprietary",
"keywords": [
"yii2",
"extension",
],
"minimum-stability": "dev",
"require": {
"php": ">=7.1.0",
"yidas/yii2-bower-asset": "*",
"yiisoft/yii2": "~2.0.12.2"
},
"autoload": {
"psr-4": {
"foo\\mypackage\\": "src"
}
},
"repositories": [
{
"type": "composer",
"url": "https://foo.bar"
}
],
"config": {
"preferred-install": {
"foo/*": "source",
"*": "dist"
}
}
}
Sandbox project configuration where I'm trying to install foo/my-package, in state before installing #dev version of the package (composer.json)
{
"name": "composer/sandbox",
"description": "description",
"keywords": [],
"type": "project",
"license": "proprietary",
"support": {},
"minimum-stability": "dev",
"require": {},
"require-dev": {},
"config": {
"process-timeout": 1800,
"allow-plugins": {
"yiisoft/yii2-composer": true
},
"preferred-install": {
"foo/*": "source",
"*": "dist"
}
},
"repositories": [
{
"type": "composer",
"url": "https://foo.bar"
}
]
}

"UnexpectedValueException" on yii2 composer update

Got "UnexpectedValueException" Your github oauth token for github.com contains invalid characters:"" while composer update on yii2 project.
When i was installing jui datetimepicker via composer, I have asked to give git token to install it. I had generated the token from GitLab and provide the token to terminal.I also change the composer.json file with token. But it gives me an error of "UnexpectedValueException" Your github oauth token for github.com contains invalid characters.
I have tried following solutions :
1) I have deleted my .git folder and tried to update composer still same issue
2) I have deleted the vendor and reinstall the composer not worked.
3) I have deleted the vendor and composer.json and put the previous vendor and composer.json file from my backup. but still get same issue.
4) I have tried to change the token from the following code :
composer config --global github-oauth.github.com <TOKEN>
5) Also put the following code in composer.json :
{
"config": {
"github-oauth": {
"github.com": "<TOKEN>"
}
}
}
Still same issue.
My composer.json file is as follows :
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Application Template",
"keywords": ["yii2", "framework", "advanced", "application template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"claudejanz/yii2-mygii": "dev-master",
"bower-asset/jquery": "#stable",
"bower-asset/jquery.inputmask": "#stable",
"bower-asset/punycode": "#stable",
"bower-asset/bootstrap": "#stable",
"3ch3r46/bootui-datepicker": "1.0.0",
"yiisoft/yii2-jui": "*",
"udokmeci/yii2-phone-validator" : "dev-master"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*"
},
"suggest": {
"codeception/codeception": "Codeception, 2.0.* is currently works well with Yii.",
"codeception/specify": "BDD style code blocks for PHPUnit and Codeception",
"codeception/verify": "BDD Assertions for PHPUnit and Codeception",
"yiisoft/yii2-faker": "Fixtures generator for Yii2 based on Faker lib"
},
"scripts": {
"post-create-project-cmd": [
"yii\\composer\\Installer::setPermission"
]
},
"config": {
"process-timeout": 1800
},
"extra": {
"writable": [
"backend/runtime",
"backend/web/assets",
"frontend/runtime",
"frontend/web/assets"
],
"executable": [
"yii"
],
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
},
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
]
}
Please someone help.
I'm not sure what was the reason why it stopped working for you but as we discussed in comments the solution was to update the entry in auth.json that stores this GitHub token.
For everyone looking for this solution - auth.json is stored in your COMPOSER_HOME path. You can find this path by calling in the console
composer config -g data-dir
For more information about Composer configuration please refer to the Composer documentation at getcomposer.org.

Yii composer dependencies not updating

I'm having a problem trying to update my composer dependencies for my Yii project. I currently have the minimum-stablity set to "stable".
Any suggestions on how to proceed?
If anyone can suggest anything that would be great.
What I have tried
I have removed the vendor directory and reinstalled the dependencies.
I have removed the packages from my composer.json file and attempted
to update.
Problem:
Me-MacBook-Pro:ETS-Yii2 me$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for abhishek/authorize.net-yii2 * -> satisfiable by abhishek/authorize.net-yii2[dev-master].
- Removal request for abhishek/authorize.net-yii2 == 9999999-dev
Problem 2
- yiisoft/yii2-jui 2.0.7 requires bower-asset/jquery-ui ~1.12.1 -> no matching package found.
- yiisoft/yii2-jui 2.0.6 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- yiisoft/yii2-jui 2.0.5 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- yiisoft/yii2-jui 2.0.4 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- yiisoft/yii2-jui 2.0.3 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- yiisoft/yii2-jui 2.0.2 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- yiisoft/yii2-jui 2.0.1 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- yiisoft/yii2-jui 2.0.0 requires bower-asset/jquery-ui 1.11.*#stable -> no matching package found.
- Removal request for yiisoft/yii2-jui == 2.0.0.0-beta
- Installation request for yiisoft/yii2-jui ^2.0 -> satisfiable by yiisoft/yii2-jui[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.0-beta].
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
- It's a private package and you forgot to add a custom repository to find it
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Composer.json file
{
"name": "yiisoft/yii2-app-basic",
"description": "Yii 2 Basic Project Template",
"keywords": ["yii2", "framework", "basic", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.6",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0",
"dmstr/yii2-adminlte-asset": "2.*",
"2amigos/yii2-ckeditor-widget": "^2.0",
"2amigos/yii2-tinymce-widget": "*",
"vova07/yii2-imperavi-widget": "*",
"abhishek/authorize.net-yii2": "*",
"yurkinx/yii2-image": "*",
"kartik-v/yii2-widget-timepicker": "*",
"kartik-v/yii2-widget-datepicker": "#dev",
"mpdf/mpdf": "^6.1",
"yiisoft/yii2-jui": "^2.0",
"fedemotta/yii2-aws-sdk": "*"
},
"require-dev": {
"yiisoft/yii2-debug": "~2.0.0",
"yiisoft/yii2-gii": "~2.0.0",
"yiisoft/yii2-faker": "~2.0.0",
"codeception/base": "^2.2.3",
"codeception/verify": "~0.3.1",
"codeception/specify": "~0.4.3"
},
"config": {
"process-timeout": 1800
},
"scripts": {
"post-create-project-cmd": [
"yii\\composer\\Installer::postCreateProject"
]
},
"extra": {
"yii\\composer\\Installer::postCreateProject": {
"setPermission": [
{
"runtime": "0777",
"web/assets": "0777",
"yii": "0755"
}
],
"generateCookieValidationKey": [
"config/web.php"
]
},
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
try using "config" in place of "extra" like bellow:
"config" : {
"process-timeout" : 1800,
"fxp-asset" : {
"yii\\composer\\Installer::postCreateProject" : {
"setPermission" : [{
"runtime" : "0777",
"web/assets" : "0777",
"yii" : "0755"
}
],
"generateCookieValidationKey" : [
"config/web.php"
]
},
"installer-paths" : {
"npm-asset-library" : "vendor/npm",
"bower-asset-library" : "vendor/bower"
}
}
}
There is two issues here:
For the abhishek/authorize.net-yii2 package there is no stable release. Thus, you need to change the version constraint from * to dev-master.
Your second problem is that yiisoft/yii2-jui requires bower-asset/jquery-ui which is a virtual package. Virtual packages mean that Composer cannot select what package to install, but you as a user must decide which package provides the best implementation for a particular virtual package. I don't know anything about Yii so I cannot help you by making this decision, but you can see all the packages providing an implementation of bower-asset/jquery-ui at https://packagist.org/providers/bower-asset/jquery-ui. When you have solved this, you will see a similar issue with yiisoft/yii2 requiring bower-asset/jquery which also is a virtual package.

Yii2 with composer and fxp/composer-asset-plugin

I'm working on a project using Yii2 PHP framework. Yii2 uses composer with fxp/composer-asset-plugin to handle project dependencies.
The problem is when a new developer comes to the project and runs
git clone <project-repo>
composer install
or another developer wants to install a new extension with composer require <package-name> often (very often) something goes wrong and composer (or maybe asset plugin, I mentioned above) shows another unclear error message (maybe only for me). And the developer spends lots of time to find what that error meant and how to deal with it.
Today I've cloned project on Windows machine, installed the latest composer and asset plugin versions, run composer install and, after about 20 minutes waiting, got this:
On my Linux system same dependencies have been installed without errors.
Question №1
What does this error mean and how can I fix it?
Question №2
Is it so bad idea to add vendor/ directory to version control? (I've read https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md)
Question №3
Maybe I'm doing something wrong or there is a secret, I'm not aware about, that allows to manage dependencies in Yii2 without such huge time loss.
Many thanks.
composer.json:
{
"name": "yiisoft/yii2-app-basic",
"description": "Yii 2 Basic Project Template",
"keywords": ["yii2", "framework", "basic", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"repositories": [
{
"type": "git",
"url": "https://github.com/ZeroVision/swiftmailer.git"
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"giggsey/libphonenumber-for-php": "~7.0",
"yiisoft/yii2": "2.0.7",
"swiftmailer/swiftmailer": "dev-fixStreamBufferTransport",
"yiisoft/yii2-bootstrap": ">=2.0.3",
"yiisoft/yii2-swiftmailer": "*",
"yiisoft/yii2-authclient": "^2.0#dev",
"2amigos/yii2-date-picker-widget": "~1.0",
"kartik-v/yii2-widget-timepicker": "*",
"kartik-v/yii2-widget-rating": "*",
"2amigos/yii2-gallery-widget": "~1.0",
"2amigos/yii2-ckeditor-widget": "~1.0",
"uran1980/yii2-scroll-to-top": "dev-master",
"yii-cms/yii2-robokassa": "^1.1",
"onokumus/metismenu": "v2.4.2",
"rmrevin/yii2-fontawesome": "*",
"dektrium/yii2-user": "*",
"p2made/yii2-sb-admin-theme": "1.1.2",
"p2made/yii2-p2y2-things": "*",
"p2made/yii2-asset-collection": "*",
"demi/image": "~1.0",
"demi/cropper": "~1.0",
"cyneek/yii2-widget-upload-crop": "dev-master",
"Nemmo/yii2-attachments": "*",
"2amigos/yii2-file-input-widget": "*",
"rkit/yii2-ajaxform-plugin": "^0.0.4",
"nsept/yii2-birthday-picker": "*",
"bryglen/yii2-apns-gcm": "1.0.4"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"
},
"config": {
"process-timeout": 1800
},
"scripts": {
"post-create-project-cmd": [
"yii\\composer\\Installer::postCreateProject"
]
},
"extra": {
"yii\\composer\\Installer::postCreateProject": {
"setPermission": [
{
"runtime": "0777",
"web/assets": "0777",
"yii": "0755"
}
],
"generateCookieValidationKey": [
"config/web.php"
]
},
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
Try installing the dev-master of the asset-plugin
composer global require "fxp/composer-asset-plugin:dev-master"
It solved a lot of problems on our end.

yii2 composer update on windows machine with cmd getting error

i having the problem with updating extinctions through composer on local windows 7 machine.
i just want to add
"kartik-v/yii2-widget-datepicker": "#dev"
in composer.json file.
after adding this line of code and giving command to update on cmd as..
composer update
its showing me following error message on cmd line.. please see this one..
i just change code in composer "minimum-stability": "stable",
to `"minimum-stability": "dev",
as i got solution from stackoverflow so i tried but not work for me.
my whole composer code is here..
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": ["yii2", "framework", "advanced", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.6",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*",
"kartik-v/yii2-widget-datepicker": "#dev"
},
"config": {
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
please help... it will be a great appreciation for me.
Thanking you in advanced.
Try this in cmd
php composer.phar update
Run this command
php composer.phar global require "fxp/composer-asset-plugin:1.0.0"
Then run your command
You should run the following command first:
composer global require "fxp/composer-asset-plugin:1.0.0"
Try with this
composer selfupdate
This is correct way to install last version.
composer global require "fxp/composer-asset-plugin:~1.1"