CodeSleeve / asset-pipeline

This Laravel 4 package provides a very simple and easy to use asset pipeline. It was heavily inspired by the Rails asset pipeline. We make use of the wonderful Assetic package to help with pre-compliation!
http://www.codesleeve.com
MIT License
489 stars 53 forks source link

Composer depencies problem #103

Closed xavierhb closed 10 years ago

xavierhb commented 10 years ago

Hello,

I use asset-pipeline in several projects, but today when trying to add to a new project composer says this:

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

  Problem 1
    - Installation request for codesleeve/asset-pipeline dev-master -> satisfiable by codesleeve/asset-pipeline[dev-master].
    - codesleeve/asset-pipeline dev-master requires nitra/php-min dev-master -> no matching package found.

Composer log says it can't find nitra/php-min package, but it does exists. Any ideas why is this happening? I am using Laravel 4.1.*.

kdocki commented 10 years ago

@xavierhb no idea... is it still happenning?

xavierhb commented 10 years ago

Yep, it is still happening:

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

  Problem 1
    - Installation request for codesleeve/asset-pipeline dev-master -> satisfiable by codesleeve/asset-pipeline[dev-master].
    - codesleeve/asset-pipeline dev-master requires nitra/php-min dev-master -> no matching package found.

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://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Rootzek commented 10 years ago

I had the same problem today, turns out the new version 1.5 depends on "codesleeve/guard-live-reload": "v0.1" which requires php 5.3.9 while codesleeve asset pipeline requires only php 5.3.0. Since we only have php 5.3.3 on our servers i had to fallback to version 1.4 of the asset pipeline.

kdocki commented 10 years ago

@Rootzek @xavierhb ah, thanks for pointing that out. I will remove that dependency for guard-live-reload as it isn't being used at the moment and is undocumented/unstable.

kdocki commented 10 years ago

Okay this has been fixed in dev-master. Please re-open if it is still an issue but I took out the guard-live-reload dep

mackenza commented 10 years ago

this is still happening. On Packagist, the dependency is listed as:

nitra/php-min

but I notice on GitHub, the actual repo is:

nitra/PhpMin

could this be the issue?

xavierhb commented 10 years ago

@kdocki as @m0j0r1s1ng said the issue is still not fixed, same return form composer I posted before.

Please check nitra/php-min as is the package that is not being found.

kdocki commented 10 years ago

@xavierhb @m0j0r1s1ng I am not able to reproduce this issue. What environments are you guys using? Let's try to identify similarities between you guy's setup and see if we can reproduce the issue.

mackenza commented 10 years ago

I think my problem is my composer.json has:

Minimum-stability: "stable"

I can't test right now but if I change that to something lower, I think the php-min package will load.

The composer.json is mostly intact from the composer create-app command from laravel/laravel, btw so this is likely why a couple of us have seen it while perhaps people with a more customized cooser.json are not.

mackenza commented 10 years ago

https://igor.io/2013/02/07/composer-stability-flags.html

I found this very good write-up on exactly what the issue is. The only part I am not sure of is which composer.json needs to be change... my Laravel app one or yours from CodeSleeve / asset-pipeline. I believe it's yours:

"nitra/php-min": "dev-master",

change to:

"nitra/php-min": "@dev",

I am pretty new to Composer, so I don't know if this actually addresses the issue, but it seems right.

GrahamCampbell commented 10 years ago

Or maybe to "nitra/php-min": "*".

mackenza commented 10 years ago

so I can confirm that changing to:

"minimum-stability": "dev"

works fine. I am not on a production server so I guess it doesn't really matter about stability of the packages. Maybe this is how Composer is supposed to work. This is the first package I have installed with this issue, though, but according to the link I posted, it's pretty common. I think the fact that Laravel/laravel comes packaged with a composer.json with stable as minimum-stability, others will likely run into this.

sterex commented 10 years ago

I had the same issue.

I solved it by installing "nitra/php-min" first and then asset-pipeline.

xavierhb commented 10 years ago

Thank you @sterex, as you mentioned changing composer.json to

---
"nitra/php-min": "@dev",
"codesleeve/asset-pipeline": "dev-master",
---

works!

hixus commented 10 years ago

Thanks @sterex and @xavierhb this fixed the issue. @kdocki I have Laravel 4.1, just updated composer, osx, php 5.5.

kdocki commented 10 years ago

@xavierhb @Rootzek @m0j0r1s1ng @GrahamCampbell @sterex Okay I changed the compser.json to be "@dev" instead... if this fixes it... I tried to use a tag for php-min but looks like the tags aren't up to date. If anyone has any suggestions for different out of the box minifiers I'd like to know as well. I might try this one out later... https://github.com/matthiasmullie/minify

evantishuk commented 10 years ago

I had same issue when updating recently (PHP 5.5.7, Ubuntu 12.04 LTS, Laravel 4.0). The process I used to overcome it was:

After that I was able to remove "nitra/php-min": "@dev", from composer.json.

Hope that helps someone.

mackenza commented 10 years ago

note that if you put:

 "minimum-stability": "dev"

in your composer.json, you don't have to make any other changes
sterex commented 10 years ago

@m0j0r1s1ng Not a good practice to make minimum-stability as 'dev' unless it is the development machine. Or else, next time you run composer update, all packages will be updated to the 'dev' branch instead of the 'stable' branch. You better know what you are doing.

pabl-o-ce commented 10 years ago

"require": { "laravel/framework": "4.1.*", "codesleeve/asset-pipeline": "dev-master" }, cmd c:\project-name>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

I dont know what is going on? help!

GiamPy5 commented 10 years ago

I have the same issue of pablocarreraest, I can't install it.

pabl-o-ce commented 10 years ago

@GiampaoloFalqui just edit php.ini and uncomment this line:

extension=php_fileinfo.dll

Remember to restart Apache for new php.ini to take effect. if any have the same problem there is the answer :)

GiamPy5 commented 10 years ago

It worked, thank you!

rreynier commented 10 years ago

@pablocarreraest, restarting php should not be required. You just have to make sure you have the correct php.ini configured. For example, if you use wamp, there is a php.ini file in the apache folder (\wamp\bin\apache\Apache2.4.4\bin\php.ini) and there is another php.ini file in the php folder (\wamp\bin\php\php5.4.16\php.ini). When I run php command from the command line it will utilize the php.ini file from the php folder. When php is run through Apache on the other hand, it uses the php.ini file from the Apache folder. Tthis is under default wamp configuration.