News for hackers. Stuff that matters.
Re:Is Semantic Versioning an Anti-Pattern? by paulddraper on Wednesday January 11, 2017 @09:05PM (#13379295)
> Being able to do this is really great: some-library>=1.0.0,<2.0.0

No, no, no, no it isn't great; it's terrible.

It's makes the version used non-deterministic, and that is a recipe for build hell. The whole reason we have lockfiles, shrinkwrap, etc. is because people are specifying version ranges.

Re:Is Semantic Versioning an Anti-Pattern? by AgentME on Wednesday January 11, 2017 @09:16PM (#13379341)
You're still allowed to use lockfiles and shrinkwraps.

Anyone deploying an application to a server or distributing an application to end users should have the dependencies shrinkwrapped and the application tested with them.

Upgrading dependencies to get bug and security fixes in minor and point releases is as easy as deleting the shrinkwrap, installing the dependencies again, and making a new shrinkwrap. Then you put your application through all of its tests with the new dependencies, commit the new shrinkwrap, and then you can release/deploy a new version of the application.

Re:Is Semantic Versioning an Anti-Pattern? by nine_k on Wednesday January 11, 2017 @09:11PM (#13379323)
Do you ever update software on your computer?

You may lock library versions for a build pretty strictly. But the more loose is the coupling, the more elbow room you have in this regard, so you can upgrade your ngnix without breaking your wsgi apps, or your database without breaking anything — when done within a reasonable range of versions.

Re:Is Semantic Versioning an Anti-Pattern? by eeZah7Ux on Thursday January 12, 2017 @06:58AM (#13381569)
> Do you ever update software on your computer?

Let's just say it: a lot of web development is done by producing a blob of code and frameworks of the week, getting paid, and not caring about security and maintainability.

The poor practices and tooling are a consequence of this mindset.

Re:Is Semantic Versioning an Anti-Pattern? by seagreen on Wednesday January 11, 2017 @09:16PM (#13379338)
Executables should pin.

Libraries should depend on ranges (though they can also pin internally for development).

Re:Is Semantic Versioning an Anti-Pattern? by Confusion on Thursday January 12, 2017 @06:21AM (#13381416)
Having a non-deterministic version when you build is terrible. So don't do that. Having deterministic build dependencies is also a goal, but a different goal.

Having a non-deterministic version, so you can easily upgrade all your dependencies and get the latest and greatest compatible version of everything, is great.