Announce Semantic Versioning scheme #468

Merged
merged 5 commits into from Dec 21, 2013

Projects

None yet

4 participants

Member
zzak commented Dec 17, 2013

Pending review by @hsbt

@stomar stomar and 1 other commented on an outdated diff Dec 17, 2013
.../_posts/2013-12-17-semantic-versioning-after-2-1-0.md
+In order to provide a more well defined and properly utilized versioning scheme
+for Ruby, we've decided to gradually switch to the following policy.
+
+## Policy Changes
+
+This policy is based off a proposal by ruby-lang.org system administrator
+Hiroshi Shibata ([@hsbt](https://twitter.com/hsbt)).
+
+### Version Schema
+
+* `MAJOR`: increased when incompatible change which can't be released in MINOR
+ * Reserved for special events
+* `MINOR`: increased every christmas, may be API incompatible
+* `TEENY`: security or bug fix which maintains API compatibility
+ * May be increased more than 10 (such as `2.1.11`), and will be released every 2-3 months.
+* `PATCH`: commits since last minor release, will remain at p0
stomar
stomar Dec 17, 2013 Member

"will remain at p0" is not clear to me (but I did not follow any discussions on this).

zzak
zzak Dec 17, 2013 Member

the existing version scheme: {MAJOR}.{MINOR}.{TEENY}-p{PATCH}

we will keep PATCH at 0

stomar
stomar Dec 17, 2013 Member

This seems to contradict https://gist.github.com/sorah/7803201:

"PATCHLEVEL: number of commits since last MINOR release (will be reset at 0 when releasing MINOR)"

zzak
zzak Dec 17, 2013 Member

@stomar It is my mistake, I will fix it and update the meeting log upstream (where these notes came from)

@stomar stomar and 1 other commented on an outdated diff Dec 17, 2013
.../_posts/2013-12-17-semantic-versioning-after-2-1-0.md
+### ABI Compatibility
+
+ABI will comply with the following scheme: `{MAJOR}.{MINOR}.0`
+
+We will give our best effort to keep ABI compatibility within the same `MINOR`
+level releases, so `TINY` will be fixed at 0.
+
+### References
+
+To read up more on this proposal please see the following links:
+
+* [Introducing a semantic versioning scheme and branching policy](http://bugs.ruby-lang.org/issues/8835)
+* [Accepted proposal in English](https://gist.github.com/sorah/7803201)
+* [Accepted proposal in Japanese](https://gist.github.com/hsbt/7719305)
+
+### Thank you!
stomar
stomar Dec 17, 2013 Member

### -> ## (maybe also for the References section?)

@stomar stomar and 1 other commented on an outdated diff Dec 17, 2013
.../_posts/2013-12-17-semantic-versioning-after-2-1-0.md
+### Version Schema
+
+* `MAJOR`: increased when incompatible change which can't be released in MINOR
+ * Reserved for special events
+* `MINOR`: increased every christmas, may be API incompatible
+* `TEENY`: security or bug fix which maintains API compatibility
+ * May be increased more than 10 (such as `2.1.11`), and will be released every 2-3 months.
+* `PATCH`: commits since last minor release, will remain at p0
+
+### Branching Schema
+
+We will maintain the following branches:
+
+* trunk
+* `ruby_{MAJOR}_{MINOR}`
+* `ruby_{MAJOR}_{MINOR}` across `TEENY` releases
stomar
stomar Dec 17, 2013 Member

Also a bit unclear to me: will this be a different kind of branch than the previous line?

zzak
zzak Dec 17, 2013 Member

Oops, we only need line 36, not 35, I will update.

Member
zzak commented Dec 17, 2013

@stomar Thanks for the review! ❤️

stomar commented on 7458de0 Dec 17, 2013

👍

Member
hone commented Dec 19, 2013

Looks good. 👍

Member
zzak commented Dec 19, 2013

@hsbt Are you ok to merge this?

@hsbt hsbt merged commit 6b3a461 into ruby:master Dec 21, 2013

1 check passed

default The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment