composer require branch are rejected by your constraint - composer-php

symfony 4.1
composer.json
"minimum-stability": "dev",
removing "minimum-stability": "dev", don`t have sitation.
"Mea/TemplateEditorBundle": "dev-v4#dev",
The requested package mea/templateeditorbundle v4#dev as dev-master exists as Mea/TemplateEditorBundle[dev-master, 3.0, v2.8, dev-2#dev, dev-v3#dev, dev-v4#dev] but these are rejected by your constraint.
"Mea/TemplateEditorBundle": "v4#dev as dev-master",
The requested package mea/templateeditorbundle v4#dev as dev-master exists as Mea/TemplateEditorBundle[dev-master, 3.0, v2.8, dev-2#dev, dev-v3#dev, dev-v4#dev] but these are rejected by your constraint.

Related

Why pulling package from packagist is failing?

I have forked a repository to make some changes in it. Here is my repo
https://github.com/vinsaj9/scrypt
and it has tags too. It is linked with packagist
https://packagist.org/packages/vinsaj9/scrypt
Now, I am getting following error
"The requested package vinsaj9/scrypt could not be found in any
version, there may be a typo in the package name"
when I am trying to pull it through this composer setting
{
"name": "test/test",
"description": "test",
"type": "project",
"version": "0.0.1",
"license": "OSL-3.0",
"require": {
"vinsaj9/scrypt": "*"
},
"minimum-stability": "dev",
"prefer-stable": true
}
As Hakre mentioned in his comment to my question. After uploading package to https://packagist.org/ you need to wait for some hours. In my case it was not updated even after 4 hours and reason could be that I was keep making changes in the repo, creating new releases and tags in the process of debugging my problem.

Installing Omnipay/payu with laravel 5.1

I am developing a website using Laravel 5.1 and i need to have a shopping cart set up, i am trying to install Omnipay for this, i have selected three gateways i will be using: Paypal, Stripe and PayU.
My require under composer.json looks like this:
"require": {
...
"ignited/laravel-omnipay": "2.*",
"omnipay/paypal": "*",
"omnipay/stripe": "*",
"omnipay/payu": "*"
},
And i am getting error on the payu part alone, this is the error:
The requested package omnipay/payu * is satisfiable by omnipay/payu[dev-master, 2.0.x-dev] but these conflict with your requirements or minimum-stability.
I read on another post that specifying "prefer-stable": true, and "minimum-stability": "dev" into the config part of the composer.json would fix the issue but its not working for me, any tips?
Solved it by adding "prefer-stable": true, "minimum-stability": "dev" under the config part of the composer.json, NOT inside it, as i stated in the post.
Like so:
...
"config": {
"preferred-install": "dist"
},
"prefer-stable": true,
"minimum-stability": "dev"
...

Composer only finds latest version (tag) of Gitlab hosted package

I have created a package with some annotated tags for versioning (1.0.0, 1.0.1, 1.1.0 and 2.0.0). This package lives on own hosting (so not via Packagist)
When trying to require the package, composer only finds the 2.0.0 version and fails on any other version requirement.
Composer.php file of project using package
{
"name": "projectname",
"description": "Description.",
"keywords": ["keys"],
"license": "Licence",
"type": "project",
"require": {
...
"space/package-name": "~1.0" // Also tried 1.0.0, 1.0.*, ~1.0#dev - only 2.0.0 works
}
"repositories": [
...
{
"type": "git",
"url": "git#gitlab.com:space/package-name.git" // Make sure package is found on specific hosting
}
],
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
}
On running composer show "space/package-name" I get versions: * 2.0.0. So upon update, composer produces the following error:
The requested package space/package-name ~1.0 exists as name/package-
name[2.0.0, dev-master] but these are rejected by your constraint.
It looks like composer is no able to find any other version than the latest, any way of fixing this?
Things already checked:
The package does not contain a version in the composer.json (that might conflict with the git tag)
Used tags are annotated tags and are pushed to the repo.
Updates:
Might be a Gitlab - Composer issue, see this comment.
Gitlab doesn't always provide tag info when Composer tries to read the repo.
Solution: also add version info in composer.json:
{
"name": "package/name",
"version": "1.0.0",
...
}
This will be readable by composer. Careful: Git tags must match versioning info in composer.json! (might cause errors otherwise)

packagist / composer - Assign a version number

I have people using my pacakgist library.
I want to make sure that their composer.json version requirement stated as "dev-master" will not get updated when they run composer update... as I have changed the underlying architecture of the package.
How do I assign a new versioning to my new update? so that they have to explicitly say I want v1.01
I currently have the composer.json as:
{
"name": ...,
"type": "library",
"description": ...,
"keywords": ...
"homepage": ...,
"license": "MIT",
"authors": [
...
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"classmap": ["Models/"]
}
}
The composer documentation recommends specifying the version using a VCS tag. With git this looks like
git tag -a 1.0.0 -m 'Your tag message'
This will tag the HEAD of your current branch with the version 1.0.0. Then do
git push --tags
Once your package gets crawled again, the version should be available on packagist.

Composer not using vcs version pointing to forked repo

I have seen this same error in other questions, but solutions offered are not fixing the issue for me.
I created a fork (and PR to master, the only branch) of this repo:
https://github.com/ipalaus/geonames/blob/master/composer.json
my fork is here:
https://github.com/jrmadsen67/geonames/blob/master/composer.json
(the change is to update the Laravel version dependencies)
In my projects, I am using:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/jrmadsen67/geonames"
}
],
"minimum-stability": "dev",
"require": {
"laravel/framework": "4.2.*",
"ipalaus/geonames": "0.2.*"
},
However, I still get the "Your requirements could not be resolved..."
"ipalaus/geonames v0.2.0 requires illuminate/database 4.1.* ->"
You can see it is looking for 4.1 laravel components, not 4.2 as my fork is telling it.
If there is other info you require, please let me know.
TIA!
What I suggest is from your current master branch checkout to a new branch. Normally bug-fix etc are assumed to be on different branch. As dev-master contains the bug fix checkout to different branch from master .
git checkout -b new-branch
git push origin new-branch
In composer.json
"repositories": [
{
"type": "vcs",
"url": "https://github.com/jrmadsen67/geonames"
}
],
"minimum-stability": "dev",
"require": {
"laravel/framework": "4.2.*",
"ipalaus/geonames": "dev-new-branch"
},
Hope that help!

Resources