2
votes

I try to get a stable version of the newly released Zend Framework 2 (2.0.2) which will track stable versions via composer.

Example here would be when 2.0.3 is released then composer update would auto update.

The issue is I am attempting to use the DoctrineModule from modules.zendframework.com and this requires the minimum-stability setting to be set to 'dev'. When I do this the Zend Framework version then changes to 2.0.3dev which is not what I want.

Do any of you fellows know a way to have dev and stable mixed up together in the same composer configuration?

What I would like to happen is that zendframework/zendframework tracks only the stable branch and composer update returns the latest stable (in this case 2.0.2) rather than a dev version.

Here is my composer.json:


    {
      "minimum-stability":"dev",
      "name": "zendframework/skeleton-application",
      "description": "Skeleton Application for ZF2",
      "license": "BSD-3-Clause",
      "keywords": [
      "framework",
      "zf2"
      ],
      "homepage": "http://framework.zend.com/",
      "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*",
        "doctrine/doctrine-module": "dev-master",  
        "doctrine/doctrine-orm-module": "dev-master",
      }
    }

Working composer.json using @hakre solution

Because Doctrine pulls in other dependancies via composer the minimum-stability has to be set to 'dev'. Setting the zendframework require to @stable resolves the issue with development versions being download.


      "minimum-stability":"dev",
      "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*@stable",
        "doctrine/doctrine-module": "dev-master",  
        "doctrine/doctrine-orm-module": "dev-master"
       }

Many thanks for answering!

1
Dear Sir, into which concrete problem do you run actually? It's not clear from your question, I'd say you could be a little bit more straight forward.hakre
Using minimum-stability changes the expected version of zend framework 2 from 2.0.2 to 2.0.3dev which is not a stable version. What I want to do is get the latest stable version of ZF2 when doing composer update.Si Griffiths
"minimum-stability":"dev" - well I'd say you should use stable here instead of dev. At least for ZF2.hakre
Any ideas on how I do that? I went through the docs and this is marked as a root level option so can only be set once in the configuration. I tried using require-dev for the doctrine bits but that resulted in doctrine not being downloaded as all...Si Griffiths
Good hint, I alreay suspected something like that. It might be useful to suggest stability inheritance for required packages as a feature request to have this more straight forward and to not trick other packages into dev that you prefer stable.hakre

1 Answers

4
votes

Referring to the manual (from minimum-stability):

All versions of each package are checked for stability, and those that are less stable than the minimum-stability setting will be ignored when resolving your project dependencies. Specific changes to the stability requirements of a given package can be done in require or require-dev (see package links).

Would lead me to say, that if you set the default via minimum-stability to stable and then for the concrete package for which you need it, tag them as beta or dev:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}