Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
2.2 KiB

Yii Versioning
==============
This document summarizes the versioning policy of Yii. Our current versioning strategy can be
described as [ferver](https://github.com/jonathanong/ferver), which we considered is more practical
and reasonable than [Semantic Versioning](http://semver.org/) (See [#7408](https://github.com/yiisoft/yii2/issues/7408) for more references).
Within the core developer team, we have emphasized several times that it is important to keep 2.0.x releases 100% BC-compatible.
But this is an ideal plan. The ferver article has given out a real world example that this is hard to achieve in practice,
regardless you are using semver or not.
In summary, our versioning policy is as follows:
## Patch Releases `2.x.Y`
Patch releases, which should be 100% BC-compatible. Ideally, we hope they contain bug fixes only so that it reduces
the chance of breaking BC. Practically, since 2.0.x is released more frequently, we are also adding minor features
to it so that users can enjoy them earlier.
* Maintained on a branch named `2.x`
* Mainly contain bug fixes and minor feature enhancements
* No major features.
* Must be 100% backward compatible to ensure worry-free upgrade. Only exception is security issues that may require breaking BC.
* Release cycle is around 1 to 2 months.
* No pre-releases (alpha, beta, RC) needed.
* Should be merged back to master branch constantly (at least once every week manually).
## Minor Releases `2.X.0`
BC-breaking releases, which contains major features and changes that may break BC. Upgrading from earlier versions may
not be trivial, but a complete upgrade guide or even script will be available.
* Developed on master branch
* Mainly contain new features and bug fixes
* Contain minor features and bug fixes merged from patch releases
* May contain BC-breaking changes which are recorded in `UPGRADE-2.X.md` file
* Release cycle is around 6 to 8 months
* Require pre-releases: `2.X.0-alpha`, `2.X.0-beta`, `2.X.0-rc`
* Requires major news releases and marketing effort.
## Major Releases `X.0.0`
It's like 2.0 over 1.0. We expect this only happens every 3 to 5 years, depending on external technology advancement
(such as PHP upgraded from 5.0 to 5.4).