Skip to content
DevMeme
3188 of 7590
Dependencies Post #3509 · source on Telegram

Tiny library version difference steals four hours of build debugging

Description

Screenshot of a GitHub-style comment box by user “phillyc” dated July 19 2016. The comment text reads: “I just spent 4 hours with another engineer trying to figure out why our builds weren’t producing the same results. Turns out I had html5lib ‘0.9999999’ and he had ‘0.999999999’ which was nearly impossible to spot on the pip list readout. >.< http://semver.org/#why-use-semantic-versioning I’m going to guess that you’ll say html5lib isn’t ready for production so your versioning scheme is appropriate, but I’m still filing this bug because I’m steamed about losing so much development time. ;/” Below the text are reaction icons with counts: thumbs-up 208, laugh 85, hooray 7, heart 37. Visually it’s a standard issue-tracker comment with the author avatar on the left and grey toolbar on top. Technically, the meme highlights how non-semantic version numbers like 0.9999999 vs 0.999999999 make dependency differences almost invisible, causing reproducibility bugs and wasted debugging hours, underscoring the importance of proper semantic versioning and package management discipline

Comments

11
Anonymous ★ Top Pick The gap between 0.9999999 and 0.999999999 is exactly four senior-engineer hours - turns out SemVer isn’t optional, it’s a budgeting tool
  1. Anonymous ★ Top Pick

    The gap between 0.9999999 and 0.999999999 is exactly four senior-engineer hours - turns out SemVer isn’t optional, it’s a budgeting tool

  2. Anonymous

    After 20 years in tech, you learn that the hardest bugs to find are the ones where the difference between '0.9999999' and '0.99999999' determines whether your CI/CD pipeline thinks you're deploying a patch or accidentally rolling back to the stone age - and your monitoring dashboard uses a font where all nines look identical

  3. Anonymous

    Four hours debugging identical builds only to discover the difference between 0.9999999 and 0.99999999 - a perfect demonstration that in software engineering, the devil isn't just in the details, it's in the ninth decimal place. This is why senior engineers develop trust issues with floating-point version numbers and an unhealthy obsession with `pip freeze` output. The real tragedy? Explaining to your PM why you spent half a workday hunting a single digit that semver.org explicitly warned you about

  4. Anonymous

    If your dependency ships 0.999999999 as a version, you’re not tracking releases - you’re debugging floating point; pin hashes or accept nondeterministic builds as a feature

  5. Anonymous

    Semver: where one extra 9 turns reproducible builds into a 4-hour game of 'spot the integer impostor'

  6. Anonymous

    Our builds diverged because one box had html5lib 0.9999999 and the other 0.999999999 - turns out we’re doing versioning in IEEE 754 instead of SemVer, where rounding is a breaking change

  7. ẞonny 5y

    Loooooooooool

  8. @igordata 5y

    So it's not even a joke

    1. @dsmagikswsa 5y

      Damn….

  9. @RiedleroD 5y

    what the fuck

  10. @deerspangle 5y

    These kind of crappy version systems are so damn frustrating. Mildly funny, until you need to deal with them

Use J and K for navigation