Si Griffiths
Si Griffiths

Reputation: 333

Zend Framework 2 Stable Versions and Doctrine Dev Versions - Composer Configuration

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!

Upvotes: 2

Views: 2909

Answers (1)

hakre
hakre

Reputation: 198214

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"
    }
}

Upvotes: 4

Related Questions