a thoughtful web.
Good ideas and conversation. No ads, no tracking.   Login or Take a Tour!
comment by akkartik
akkartik  ·  2355 days ago  ·  link  ·    ·  parent  ·  post: The Cargo Cult of Versioning

Sorry, yes you're absolutely right and I'm being unclear. I'm a reasonable programmer but not a good writer.

When I say "rename" I don't mean going from "Snow Leopard" to "El Capitan". That's stupid, yes. (And it's also marketing, which I know even less about. So I have no comment on what an improvement would be.) My proposal is going from "Rails-4" to "Rails-5". Which would have the same benefits as 10.11 and 10.12.

The comments I've gotten so far are making clear that I failed to set the stage for this post. The scenario I'm concerned about (as are the links I refer to) is this: you have an app you built, and it relies on some versions of other libraries. You'd like to periodically pick up bugfixes and security fixes for those libraries without it turning into a bottomless time-sink (because your libraries failed to adequately distinguish between compatible and incompatible changes). How do we do that? (It's not just about tool design, it's about eco-system design.)





kleinbl00  ·  2355 days ago  ·  link  ·  

Rails-4 to Rails-5 kicks the crap out of Snow Leopard to El Capitan. So the full name would be Ruby Rails-5?

I understand the problem you're grappling with now. Beyond my expertise: If you're compatible with Rails-4, for example, and Rails has been upgraded to Rails-5, is there any way to know whether or not you have an incompatibility issue without diving into the changelog anyway? I can see a few different ways that becomes a bottomless time-sink no matter how clean your versioning nomenclature is.

akkartik  ·  2354 days ago  ·  link  ·  

The convention programmers have long followed is now enshrined as something called Semantic Versioning (which comes with its own version, lol). Basically if a library makes an incompatible change it's supposed to increment the major version. So going from Rails 4.x to Rails 5.0 is a sign that you can't upgrade. Which is great in theory, except that the tools we programmers use to manage versions don't understand SemVer and just pick the latest version by default. Which causes programmers to explicitly ask for the version they want to avoid moving to the next. And all the 'pinning' in turn causes libraries to be less than disciplined about incrementing the major version number when they break something. So it's all a mess.

Devac  ·  2355 days ago  ·  link  ·  
This comment has been deleted.