Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "semver"
-- So you like npm? Upgrade to version 5 to use its sweet features!
OK. Let's run `npm install npm@5`. Erm, my npm is now a broken mess, not finding `semver`.
-- Well, since you like npm you also will like yarn! It's just facebook's npm. So run `npm install yarn -g`
Yeah, but I wanted `npm@5` not `yarn`.
-- Then just run `yarn global add npm@5`. You then have npm@5.
And yes, that works.5
I was working with a stable installation of an elaborated platform. Some plugins were installed. After upgrading the installation by 2 patch level the customer registration was not working anymore.
In these two patch level a method in an interface got an additional optional parameter which had a major impact on the behaviour the implemented method. A plugin decorated the implementation without knowing about the new parameter. Therefore when calling the method the decorating class did not pass the new parameter in to the decorated implementation and the fallback value was given instead.
The caller expected the method to do something and did not branch into an alternative way but the default value disables the expected behaviour. Eventually nothing happened.
Breaking changes in patch levels woop di fucking do.2
Are Apple engineers incompetent or just jerks? How a patch update breaks so many things that I'm forced to update xcode and then xcode forces me to update the whole fucking system!?
Perhaps they just don't care about semver and break thinks whenever they feel like it..8
Here comes my rant about versioning.
Why don't you use semver? Or something that makes fucking sense?
I've been banging my head against this lib that was required, wondering why the thing was crashing everywhere, for hours. Then I had to dig through its code, for a while too.
And then I finally discover that, from 1.3.9 to 1.4.0, half of the API changed and was backwards incompatible. Yay. Also, one would think that's a thing worth of mention in the docs, but why bother right?
Fuck MS, why couldn't you update the NuGet API URL when NuGet updated? The warning on nuget.org states,
"This package will only be available to download with SemVer 2.0.0 compatible NuGet clients, such as Visual Studio 2017 (version 15.3) and above or NuGet client 4.3.0 and above"
It says nothing about using the V3 endpoint, so if you''re like me and updated NuGet to 4.5 and still got nothing but
"NU1101: Unable to find package Foo.Bar. No packages exist with this id in source(s): https://www.nuget.org/api/v2/"
...then you'll be very confused until it strikes you that there might be a new API version. Even if MS doesn't want to deprecate the V2 API just yet, it would be awfully nice to just state on the frickin' site that not only do you need NuGet >= 4.3.x, but also the correct feed URL.
$_DEITY knows how many dev-hours have been lost to this shit.
When the library you're using doesn't follow semver and introduces breaking changes with a path version... (I'm looking at you, ParseServer!)1