-
A cry for standardized versioning in Ruby (pretty please?)
24 May 2010Yesterday Rails 2.3.6 was released, today 2.3.7 was released. This morning the team I am on attempted to update our Rails 2.3.5 apps (we have several) to 2.3.7. It’s been several hours and we’re still not updated yet.
When I see a version update of 2.3.5 to 2.3.6 as a developer I should be able to assume that the update is fairly marginal. In fact, in almost every case it should be a drop-in replacement. Historically hasn’t been the case with Rails.
From a versioning point of view the significance in changes between 2.3.5 -> 2.3.6 and 2.3.6 -> 2.3.7 should be roughly equal. But as you can see here and here this is not the case. However, what I do know is that 2.3.5 was released on Nov 30, 2009. 2.3.6 was released on May 23, 2010. 2.3.7 was released on May 24, 2010. Perhaps time is the best metric? In that case would it make sense to adopt something similar to the Ubuntu versioning scheme? (Year.Month.Day.patch)
Rails aside, poor version management is systemic in the Ruby community. Despite pushing for code perfection in every other sense the Ruby community as a whole has entirely ignored proper versioning. If we are to be taken seriously by the development community at large our versioned releases must have meaning behind them.
Semantic Versioning seems to be the most logical approach to me. It would be nice to see a community movement towards this, or some versioning standard. Rails 3.0 would be a great starting point to push for a versioning standard in the Ruby community.