xp-framework / rfc

One of the major deficiencies in the development of many projects is that there is no roadmap or strategy available other than in the developers' heads. The XP team publishes its decisions by documenting change requests in form of RFCs.
2 stars 1 forks source link

THIS! IS! VERSIOOOOON! #300

Closed thekid closed 8 years ago

thekid commented 9 years ago

Scope of Change

This RFC suggests to change the XP Framework to follow the 11 principles of http://semver.org/

Rationale

Have an intuitive and reliable way to communicate: Put this in your composer.json and you'll be fine.

Functionality

In the XP 6 series, we still remove deprecated stuff in minor releases such as 6.4.0 and thus violate the law that incompatible changes must always increase the major version number. In contrast, for the XP 7 series the release policies will be changed to follow the aforementioned principles.

Summary

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

    Initial development

Not related to the framework which is already at 7.0.0 then: The major version zero (0.y.z) is for initial development. Anything may change at any time. Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.

Composer

In the future, we can simply tell people to use:

"require" : {
  "xp-framework/core" : "^7.0.0"
}

This expands to "any version greater than or equal to 7.0.0, but lower than 8.0.0". The great thing with the ^ operator is that if you depend on a certain fix which was say release in 7.2.1, then you'd simply use "^7.2.1" (and would still get anything < 8.0.0, not like ~, which would just give you 7.2.X).

Currently we should advise people to use "~6.X.0" since we do have BC breaks in those minor versions, see above.

Places

n/a

Speed impact

n/a

Dependencies

The version number 7, which we want to align with PHP7.

Related documents

XP 7: See RFC #298

thekid commented 9 years ago

/cc @johannes85 @kiesel