[#56982] [ruby-trunk - Bug #8854][Open] Update URL for bug reports — "stomar (Marcus Stollsteimer)" <redmine@...>
7 messages
2013/09/03
[#57038] [ruby-trunk - Feature #3620] Add Queue, SIzedQueue and ConditionVariable implementations in C in addition to ruby ones — "Glass_saga (Masaki Matsushita)" <glass.saga@...>
4 messages
2013/09/05
[#57040] Re: [ruby-trunk - Feature #3620] Add Queue, SIzedQueue and ConditionVariable implementations in C in addition to ruby ones
— SASADA Koichi <ko1@...>
2013/09/05
(2013/09/05 20:52), Glass_saga (Masaki Matsushita) wrote:
[#57058] [ruby-trunk - Bug #8875][Open] Select is not usable with SSLSocket — "headius (Charles Nutter)" <headius@...>
11 messages
2013/09/07
[#57092] [ruby-trunk - Bug #8883][Open] Rational canonicalization unexpectedly converts to Fixnum — "melquiades (Paul Cantrell)" <cantrell@...>
16 messages
2013/09/09
[#57111] [ruby-trunk - Feature #8887][Open] min(n), max(n), min_by(n), max_by(n) — "akr (Akira Tanaka)" <akr@...>
13 messages
2013/09/10
[#57117] [ruby-trunk - Feature #8890][Open] [PATCH] Eliminate less-than-zero checks for unsigned variables — "tonyo (Anton Ovchinnikov)" <revolver112@...>
5 messages
2013/09/10
[#57134] [CommonRuby - Feature #8896][Open] #tap with missing block — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>
5 messages
2013/09/11
[#57138] [ruby-trunk - Feature #8897][Open] client side TCP fast open — "Glass_saga (Masaki Matsushita)" <glass.saga@...>
5 messages
2013/09/11
[#57195] [ruby-trunk - Feature #8897][Assigned] client side TCP fast open
— "Glass_saga (Masaki Matsushita)" <glass.saga@...>
2013/09/14
[#57186] [ruby-trunk - Feature #8909][Open] Expand "f" frozen suffix to literal arrays and hashes — "headius (Charles Nutter)" <headius@...>
37 messages
2013/09/14
[#57224] [ruby-trunk - Feature #8909] Expand "f" frozen suffix to literal arrays and hashes
— "headius (Charles Nutter)" <headius@...>
2013/09/15
[#57262] [ruby-trunk - Feature #8921][Open] Allow select, reject, etc to accept a regex — "kyledecot (Kyle Decot)" <kyle.decot@...>
13 messages
2013/09/18
[#57264] [ruby-trunk - Feature #8921] Allow select, reject, etc to accept a regex
— "kyledecot (Kyle Decot)" <kyle.decot@...>
2013/09/18
[#57265] Re: [ruby-trunk - Feature #8921] Allow select, reject, etc to accept a regex
— Fuad Saud <fuadksd@...>
2013/09/18
Shouldn't select/reject use threequals?
[#57292] [ruby-trunk - Feature #8931][Open] Update URL in REPORTBUG_MSG — "zzak (Zachary Scott)" <e@...>
4 messages
2013/09/20
[#57315] [ruby-trunk - Feature #8938][Open] it keyword — "Sing9898 (Sing Lou)" <3b06e8d4@...>
5 messages
2013/09/23
[#57367] [ruby-trunk - Feature #8951][Open] Please add a hash-to-hash alternative of the map method to Hash — "behrangsa (Behrang Saeedzadeh)" <behrangsa@...>
8 messages
2013/09/25
[#57385] [ruby-trunk - Bug #8953][Open] `str =~ /pattern/` does not call =~ method if (1) str is a String, (2) /pattern/ is a Regexp literal — "gfx (Goro Fuji)" <gfuji@...>
12 messages
2013/09/26
[#57394] [ruby-trunk - Bug #8955][Open] LocalJumpError - no block given (yield) after implementation of class hierarchy method cache invalidation — "mfla (Morten Fla)" <mmflaa@...>
4 messages
2013/09/26
[#57462] [ruby-trunk - misc #8962][Open] [DOC] add step to enable Generational GC merits in README.EXT* — "tad (Tadashi Saito)" <redmine@...>
6 messages
2013/09/28
[ruby-core:56968] [ruby-trunk - misc #8835] Introducing a semantic versioning scheme and branching policy
From:
"naruse (Yui NARUSE)" <naruse@...>
Date:
2013-09-02 16:24:51 UTC
List:
ruby-core #56968
Issue #8835 has been updated by naruse (Yui NARUSE).
ABI 互換性をどう考え、どう守り、どう示すのかは Ruby 1.9.1 以降幾度となく議論されていた懸案で、
その中で共有されてきたいくつかの前提が、本提案では無視されているように思います。
具体的には、
* 我々はABI後方互換性を保っている気でいる(が、しばしば壊れてしまうことがある) → 事前の人力のアノテーションでは回避出来ないと言うこと
* 脆弱性が発見されたら生きている全てのブランチでリリースが必要
* メンテナンスコストは生きているブランチ数に応じて増える
* 2年程度は使い続けられるブランチが欲しい
* 1.9.1-1.9.3 ではABI互換性は保たれたという公式見解 (なぜなら最近まで互換性破壊を指摘する人がいなかったから)
* 2.0.0 では 1.9.x からの ABI 互換性を破壊したという見解
あたりですか。
過去の議論は例えば以下のスレッドがあります。
* [ruby-core:19113]
* [ruby-dev:43152]
* [ruby-dev:36655]
* [ruby-dev:36889]
* [ruby-dev:44604]
で、提案は現状をまとめ、あるべき姿を動機と共に示し、差分を提案すべき所、
現状の認識がちょっと違う気がするし、あるべき姿はあるけれど動機が抜けているのでなんかわかりづらいです。
そもそも、このスレって「互換性を守ろう」って話と「互換性を壊そう」って話が混ざってますよね。
開発者会議で akr さんが「shim がやりたいんだよね?」と指摘してらっしゃいましたが、
その辺は互換性を守る話ときちんと分離してください。
kosaki さんの Microsoft のプロダクトライフサイクルっぽい提案はー、どうなんでしょうね。
ツールは別に基準となる patch level を与えればいいだけの話で、
もっぱらマーケティング的な観点で考えるべきもののように感じます。
P.S.
英語のチケットに日本語がぶら下がっていると英語しか読めない人から見て感じが悪いので、
そうしたいときには別に日本語のチケットを作ってそこからぶら下げるようにして下さい。
----------------------------------------
misc #8835: Introducing a semantic versioning scheme and branching policy
https://bugs.ruby-lang.org/issues/8835#change-41543
Author: knu (Akinori MUSHA)
Status: Open
Priority: Normal
Assignee: knu (Akinori MUSHA)
Category: misc
Target version: current: 2.1.0
=begin
[This is a presentation for [[ruby:DevelopersMeeting20130831Japan]].]
Ruby's versioning scheme is currently not well defined or well
utilized.
First, RUBY_API_VERSION was introduced in 1.9.1, but has not been
properly maintained since then. There must have been at least a few
ABI incompatible changes (although we tried hard to keep source level
compatibility) and many API additions between 1.9.1 and 1.9.3, but
RUBY_API_VERSION was never bumped.
Secondly, it looks like TEENY version is fixed to zero in the 2.x
series without being used effectively. We often find overlooked
incompatibility or feature bugs after an official release x.y.0, and
would like to fix them in a backward compatible way. I'd suggest we
accept such a situation will happen, and bump TEENY when such a fix
that affects forward compatibility is made. We have up to nine times
of chance for fixing such a situation, and shouldn't be too worried
about running out of digits.
So, here I propose introducing a new versioning scheme as follows,
much with Semantic Versioning (http://semver.org/) in mind:
(1) From 2.1.0 and on, RUBY_API_VERSION shall match RUBY_VERSION.
Giving them different numbers has been a source of confusion, and
introducing this scheme is a way to provide RUBY_VERSION with how to
read API compatibility from the numbers.
(2) MINOR version is incremented when an incompatible API change is
made.
In practice, it is incremented before a change to break
compatibility is actually made. It is when a relatively significant
amount of change is going to be made, which would break
compatibility, or hurts stability for a certain period of time.
Before making such a change, a new stable branch
ruby_{MAJOR}_{MINOR} is cut off from trunk, and MINOR version is
bumped on trunk. MAJOR version may be incremented instead,
resetting MINOR to zero.
On the ruby_{MAJOR}_{MINOR} branch, when the time comes for
prereleasing {MAJOR}.{MINOR}.0, a new branch
ruby_{MAJOR}_{MINOR}_0 is cut off from the ruby_{MAJOR}_{MINOR}
branch.
(3) TEENY version is incremented when functionality is added in a
backward-compatible manner.
It happens on ruby_{MAJOR}_{MINOR} branches, where a new branch
ruby_{MAJOR}_{MINOR}_{TEENY} is cut off when it is released,
resetting PATCHLEVEL to zero.
(4) PATCHLEVEL is initialized to zero on each
ruby_{MAJOR}_{MINOR}_{TEENY} branch where TEENY > 0 on creation,
and incremented every time a change is made on the branch.
On a ruby_{MAJOR}_{MINOR}_0 branch, PATCHLEVEL is kept at -1
during the prerelease period. It is set to zero when
{MAJOR}.{MINOR}.0 is officially released.
On other branches, it is fixed to -1.
Note that MINOR and TEENY need not be bumped every time an applicable
change is made, but once before a new official release is rolled out
from the branch.
With this scheme introduced, version specific library subdirectory
names only need to have {MAJOR}.{MINOR} in it, and user can safely
upgrade ruby to a new teeny version without having to rebuild and
reinstall already installed libraries.
[Figure: Branch Tree]
--o-----------------------o----------(trunk)
\ \
o--o--o--o--(ruby_2_1) o--o--...--(ruby_2_2)
\ \ \ \
\ \ \ o--[v2_2_0_0]--...--(ruby_2_2_0)
\ \ \
\ \ o--[v2_1_2_0]--[v2_1_2_ppp]--...--(ruby_2_1_2)
\ \
\ o--[v2_1_1_0]--[v2_1_1_ppp]--...--(ruby_2_1_1)
\
o--[v2_1_0_0]--[v2_1_0_ppp]--...--(ruby_2_1_0)
=end
--
http://bugs.ruby-lang.org/