They are trying to steal your libraries to use in their own code
December 19, 2017 8:53 AM   Subscribe

 
Then there's html5lib for Python, which had gotten up to version 0.999999999 before finally rounding up.
posted by jedicus at 8:58 AM on December 19, 2017 [3 favorites]


On quick glance I really can not tell if this is a joke or not. Software version theory (SVT) is a black art, certainly no matter how well thought out the original scheme it will devolve into something like Drone Versioning so, moot point taken.
posted by sammyo at 8:59 AM on December 19, 2017 [2 favorites]


On quick glance I really can not tell if this is a joke or not

it was trying to be
posted by thelonius at 9:05 AM on December 19, 2017 [3 favorites]


This is funny, and clearly (hopefully?) a joke... but as a sysadmin, I shudder at the idea of anyone trying to make software harder to maintain. It’s broken enough already!
posted by fencerjimmy at 9:06 AM on December 19, 2017 [1 favorite]


"Any joke about version numbering, no matter how absurd, reflects a versioning practice in the real world."
— Ada Lovelace
posted by OverlappingElvis at 9:07 AM on December 19, 2017 [26 favorites]


I'm pretty sure that whoever wrote this has a YouTube channel where they rant about not being able to find objective review scores for movies and video games.
posted by tobascodagama at 9:19 AM on December 19, 2017


html5lib is worse than that. Here's the recent sequence of version numbers, in order: 0.90, 0.95, 1.0b1, 1.0b2, 1.0b3, 0.99, 0.999, 0.9999/1.0b5, 0.99999/1.0b6, 0.99999/1.0b7, 0.9999999/1.0b8, 0.99999999/1.0b9, 0.999999999/1.0b10, 1.0, 1.0.1

TeX also does something silly with numbering itself by sequentially more precise versions of pi.

(For anyone actually wondering how version numbers should work, Semantic Versioning is the usual answer. It works well but of course has problems and is what Drone Versioning is mocking.)
posted by Nelson at 9:20 AM on December 19, 2017 [9 favorites]


Version 1
Version 2
Version 2 Championship Edition
Version 2 Turbo
Super Version 2
Super Version 2 Turbo
posted by Faint of Butt at 9:44 AM on December 19, 2017 [29 favorites]


See also Sentimental Versioning for a previous iteration of this joke:
Some version number systems aspire to merely label changes in an interface, but there is much in the human experience that lies outside of this. Sometimes a version is just a number, but sometimes what we really want is a poem.
posted by migurski at 9:46 AM on December 19, 2017 [1 favorite]


Metafilter: On quick glance I really can not tell if this is a joke or not.
posted by Naberius at 9:47 AM on December 19, 2017 [12 favorites]


Thanks for the link, Nelson. It is less "zomg random lol" with some context.
posted by inconstant at 9:50 AM on December 19, 2017


In the design world I'm part of, common practice is for the most up-to-date version to be named [gizmo]-final. Subsequent versions are then final-final.
posted by Mei's lost sandal at 9:56 AM on December 19, 2017 [7 favorites]


MAJOR.MOOD.ISSUES.SOCIAL.DICTIONARY.UNIXTIME.SEVEN

How the hell did he get my Gmail password?

I recently had to name a spreadsheet "Hopefully Final Corrected List 2017.xlsx" to distinguish it from all the other "List" files that were floating around.
posted by Rock Steady at 10:01 AM on December 19, 2017


I also enjoyed TenVer.

Plus the whole thing reminded me of the Audio Editor Naming Conventions.
posted by fings at 10:02 AM on December 19, 2017 [2 favorites]


Larger, more conventional corporations will simply issue each build its own UUID so as to maximize support contract revenue.
posted by infinitewindow at 10:06 AM on December 19, 2017 [2 favorites]


MetaFilter: I don't know what we're YELLING ABOUT.
posted by Mr. Bad Example at 10:06 AM on December 19, 2017 [1 favorite]


Also, legit LOLs from this:

Doesn't this discourage rapid development and fast iteration?
You're damn right. Go forth and turn pip into a wasteland.

You can leave npm out of this, it is already a wasteland.
posted by Mr. Bad Example at 10:08 AM on December 19, 2017 [3 favorites]


Version 1
Version 2
Version 2 Championship Edition


The Software and the Version
2 Software 2 Version
The Software and the Version: Tokyo Drift
Software & Version
Software Five
Software & Version 6
Version 7
The Fate of the Version
posted by Strange Interlude at 10:26 AM on December 19, 2017 [12 favorites]


Version 2: the Versioning
Version 3: This Time It's Personal
posted by Mr. Bad Example at 10:29 AM on December 19, 2017


version-2-electric-boogaloo-alpha-7
posted by idiopath at 10:32 AM on December 19, 2017 [2 favorites]


Can we agree to auto-append “the kraken” immediately after all things with “release” in the name?
posted by Annika Cicada at 10:57 AM on December 19, 2017 [12 favorites]


This fooled me for a minute into thinking MAJOR.UNIXTIME could be arguably ok. I'm pretty sure it isn't, but now I'm confused.

TenVer is basically what we're doing right now on a project I'm on, so I'm glad to have a spec showing we're simply joining in with Microsoft and Apple.
posted by Nonsteroidal Anti-Inflammatory Drug at 11:12 AM on December 19, 2017


Thanks for this. My team has been working on breaking our brains against a framework upgrade all week. I just posted the link to our Slack channel with the note, “seems like something we should look into implementing.”
posted by daisyk at 12:15 PM on December 19, 2017


Oh goodness, I am currently specifically working on Warehouse, the new version of PyPI (the repository of Python packages that pip fetches from) so I'm noting to myself that on April Fool's Day I might file an issue about us supporting a new versioning scheme.....
posted by brainwane at 12:20 PM on December 19, 2017 [3 favorites]


Beats your less technologically aware windows users who will use versioning like:
Document
New Document
New Document V2
New Document V3
New document V3 edited
New Document Final
New Document Final V2
New Document Final V2 print version
New Document Final V2 print version final
New Document Final Print updated
These are all iterative versions of the same document. The proposed versioning system at least includes a sortable time stamp.

Your more advanced user will prepend special characters so that different documents will sort "correctly":
### Document name
# Document name
@ Document Name
___ AAA Document name
__ Document name
_ AAA Document name

And will of course combine with versioning as previously noted.
posted by Mitheral at 12:32 PM on December 19, 2017 [2 favorites]


Well, if it's Windows... just sort the file list by last-modified, right? :P
posted by inconstant at 12:54 PM on December 19, 2017 [1 favorite]


Oh wow; I have been looking for years for a sequel article to Kibo's HappyWeb '99, and this may be it.
posted by ErisLordFreedom at 12:57 PM on December 19, 2017 [2 favorites]


I remember the good old days before marketing got their dirty little paws on a nomeclature they didn't understand.

MAJOR.MINOR.BUGFIX.

Fix a bug? Increment the BUGFIX.
Add a feature? Increment the MINOR.
Rewrite the product? Increment the MAJOR.

Someone explained to the marketdroids that a MAJOR change is as much a caveat as it is a selling point, and then the world went to hell.
posted by ocschwar at 2:13 PM on December 19, 2017 [3 favorites]


Oh oh! You know why there's no Windows 9, why Microsoft skipped from Windows 8 to Windows 10? Because of all the code that did this:
if (version.StartsWith("Windows 9")) {
    /* do some Windows 95 / 98 stuff */
}
It might not actually be true but it's a good story.
posted by Nelson at 2:32 PM on December 19, 2017 [5 favorites]


the nixpkgs approach of hashing everything (including the hashes of its dependencies in what gets hashed) seems like the only actual solution. unfortunately squeezing existing software/build systems into this framework requires some kluges. the nix developers are good at doing this but it’s not perfect.

also the government requires all kinds of audits apparently when you increment the major version, i’ve heard this is why Java 8 is actually java 1.8, for example.
posted by vogon_poet at 2:51 PM on December 19, 2017


i’ve heard this is why Java 8 is actually java 1.8, for example

I wouldn't be surprised if java 1.0 code compiles and runs with the latest 1.9 compiler, they are sticklers about preserving API compatibility. The 1.9 vm can definitely run 1.5 bytecode (and probably older though I haven't had reason to try).

Keep in mind here that generics still don't exist directly in the class bytecode because that would force a backward incompatible bytecode change and they've had those since the '90s.
posted by idiopath at 2:57 PM on December 19, 2017 [2 favorites]


Reminds me of the hubbub when Minecraft went from Version 1.9 to Version 1.10 and everyone freaked out because it turns out version numbering isn't like decimals.
posted by Mr.Encyclopedia at 4:18 PM on December 19, 2017 [1 favorite]


Man, its like a double-whammy of unfunny. Not only does it do the "lets snark on this other thing by rewriting it in a funny way" thing incredibly poorly, but it uses the monkey cheese random method of nerd humor that has never been funny in the first place.

My hot take on software versioning? Pick a scheme and be consistent about it in a way your users can understand. Provide proper changelogs. Don't overload your version number with cute or unnecessary information (api compatibility levels, build numbers, funnay joeks etc) because nobody cares.
posted by Soi-hah at 5:25 PM on December 19, 2017 [2 favorites]


Version Number == GIT SHAsum. Problem solved.

e.g. Version d6cd1e2bd19e03a81132a23b2025920577f84e37
posted by mikelieman at 5:37 PM on December 19, 2017 [2 favorites]


Version Number == GIT SHAsum

For what it's worth this is what I recommend for issue tracking, with tags in your version control to manage feature-level stuff
posted by OverlappingElvis at 5:48 PM on December 19, 2017


I QA a number crunching pipeline for a living. All the data coursing in get metatagged with the git SHA sum of the code that created them.

I warned my boss that if I ever have to USE those SHA sums for forensic purposes, I will spend a morning on his dime rereading a lot of Git documentation.
posted by ocschwar at 7:06 PM on December 19, 2017 [1 favorite]


SHA hashes are a lot of things, but human-friendly is not one of them. Sequential is another thing they are not, which is important for things like, you know, package managers.
posted by tobascodagama at 8:05 PM on December 19, 2017 [1 favorite]


Yes, SHAs should be restricted to build versioning for sure
posted by OverlappingElvis at 9:48 PM on December 19, 2017 [1 favorite]


Anyone not using yyyymmddtt will be killed with fire. All I care about is the linear nature of time.
posted by Mogur at 2:35 AM on December 20, 2017 [2 favorites]


SHA with git is very easy to use. Tell git to check out that SHA and boom, that's the state of the repo as of that commit.

The problem with just using time stamps is parallel development (eg. feature branches or python 2 and python 3) - same project, but only using time stamps loses a lot of relevant info.
posted by idiopath at 5:04 AM on December 20, 2017 [1 favorite]


if the "hashes instead of version numbers" thing seems like a good idea you owe it to yourself to take a look at Nix which is really neat and basically builds an entire coherent system around this approach. And it's actually good enough to be worth using even with some inevitable warts.
posted by vogon_poet at 5:56 PM on December 22, 2017 [1 favorite]


« Older An Unfortunate Typo   |   Villages, Hubs and Naturally Occurring Retirement... Newer »


This thread has been archived and is closed to new comments