From: samuel@...
Date: 2019-02-07T10:51:42+00:00
Subject: [ruby-core:91469] [Ruby trunk Feature#15456] Adopt some kind of consistent versioning mechanism

Issue #15456 has been updated by ioquatix (Samuel Williams).


@eregon If users are on 1.9.3, and the gem 1.0.5 supported it, and 1.1.0 didn't, I think you can argue that (a) it violates semantic versioning because a minor version bump broke the build but you could also argue that (b) it's compatible with semantic versioning because the ruby dependency is an internal detail to the gem (at least from it's own POV).

That being said, users who say `gem 'concurrent-ruby', '~> 1.0'` should correctly receive the latest compatible gem which suits their Ruby version, and that seems fine to me. The fact it's not being selected correctly might be a bug as @MSP-Greg seems to be pointing out?

Looking at the bigger picture, I see that there are two cases, highlighted by the linked issue: pain for old users, or pain for up to date users. Honestly, I don't care so much about users of old releases. I do believe it should keep working, but I'm more concerned with breaking users who are using the latest stable release. `��\_(���)_/��`

----------------------------------------
Feature #15456: Adopt some kind of consistent versioning mechanism
https://bugs.ruby-lang.org/issues/15456#change-76730

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
After the discussion https://github.com/ruby/bigdecimal/issues/114 I feel like we would benefit from some consistent versioning mechanism across all of Ruby.

So far, I feel the majority of Ruby uses some form of semantic versioning.

For the sanity of all Ruby users, I think it would be a good policy to adopt this across core Ruby and standard gems.

There are some previous discussions around this:

- https://bugs.ruby-lang.org/issues/9215
- https://bugs.ruby-lang.org/projects/ruby/wiki/GeneralMaintenancePolicy
- https://bugs.ruby-lang.org/issues/8835

So, the questions are as follows:

- Can we adopt Semantic Versioning (or as much of it as possible) across Ruby?
- Would such a change help users of Ruby?
- Is there existing documentation about how version number works?
- How does it deviate from Semantic Versioning?
- Is this deviation important and worth the additional complexity for our users?

As an aside:

- How do other implementations advertise compatibility with Ruby?
- JRuby and RBX have totally different version numbers that are difficult to understand w.r.t. compatibility with mainline CRuby.

My main concern is how difficult this is for everyone to keep track of and also the implied assumptions (e.g. breaking change if and only if major versions bump). If different parts of Ruby use different versioning scheme, it is hard for our users to define dependencies which don't cause broken software.




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>