Stable release or living on the edge? Time to choose!

Hello folks!

For a very long time (3 years), Mouf 2 has been in development with no stable release. Most of the developers using Mouf assumed each new version of Mouf was more stable than the previous one (and it was a reasonable assumption).

Therefore, the composer.json file of a typical Mouf project was looking like this:

{ "require" : { "mouf/mouf" : "~2.0" ... }, "minimum-stability" : "dev" ... }

In January, we marked the first stable release of Mouf 2, and now, the development of Mouf 2.1 are starting.

There are a lot of things coming in Mouf 2.1, like a better container interoperability system, improved UI, etc... Since Mouf supports semver, We do not plan to introduce breaking changes (no breaking changes until 3.0).

However, if you keep the minimum-stability flag to "dev", you are going to live "on the edge", with the latest additions to Mouf, but also potentially new bugs. So now would probably be a good time to consider switching to stable releases for your packages. To do this, simply remove the minimum-stability flag.

{ "require" : { "mouf/mouf" : "~2.0" ... } ... }

Sometimes, your code can rely on a great number of other packages, and those packages do not all have a stable release (this is the case for many packages in the Mouf framework). So if removing the minimum-stability flag proves impractical, you can try this instead:

{ "require" : { "mouf/mouf" : "~2.0" ... }, "minimum-stability" : "dev", "prefer-stable" : true ... }

The prefer-stable flag will prefer the most recent stable version in a set of possible dependencies. If there is no stable version, if will go down the stability rules (stable > rc > beta > alpha > dev) until it finds a suitable version.

Finally, if you really want to stay on "dev" versions for all your packages but do not want to move to Mouf 2.1, you can always be more specific on the version number like this:

{ "require" : { "mouf/mouf" : "~2.0.0" ... }, "minimum-stability" : "dev" ... }

As always, do not hesitate to open issues on Github if you are facing problems with this stability flag.