title: YOLO Ver url: https://yolover.org/ hash_url: 959374400b4bb6d58c74116ffd08281b archive_date: 2024-02-09 og_image: https://yolover.org/card.png description: Realistic versioning for modern software. favicon: https://yolover.org/favicon.png language: en_US
Given a version number MAJOR.MINOR.PATCH, increment the:
Additional labels for whatever you feel like are available as extensions to the MAJOR.MINOR.PATCH format. The more the merrier.
For years the software industry has used systems like semver and calver to communicate with users what to expect in an update. The prescriptiveness of semver granting relief to the library user who only has to update from version 1.1.0 to 1.1.1 to make most recent Snyk alert go away. The flexibility of calver allowing the busy application developer to release without fear, not needing to worry about whether a set of changes is significant enough to justify a 2.0.0 release and the awkward conversation with marketing that will ensue.
But behind their promises, these systems are flawed. They do not represent the reality of modern software practice. This document aims to rectify that. It is a call to arms for the software community to embrace how people really version their software: YOLO Ver.
The goals of YOLO Ver are simple: to allow you to justify any version bump you want. You've changed stuff, who knows exactly what, and figuring out whether it's technically a major, minor, or patch change is too much work. All you really want to do is paste "bug fixes and performance improvements" into the patch notes and call it a day. YOLO Ver is here to help.
What follows are example conversations you might have with users that are not familiar with YOLO Ver:
While YOLO Ver does not require any specific versioning scheme, we can recommend some best practices from industry to get you started.
<valid-yolover> ::= <any-char> <valid-yolover> | <any-char> <any-char> ::= <letter> | <digit> | <punctuation> | <symbol> | <whitespace> | <emoji> <letter> ::= "a" | "b" | "c" | ... | "Z" <digit> ::= "0" | "1" | ... | "9" <punctuation> ::= "." | "," | ";" | ":" | "!" | "?" | "-" | "_" | ... <symbol> ::= "@" | "#" | "$" | "%" | "&" | "*" | "(" | ")" | ... <whitespace> ::= " " | "\t" | "\n" | "\r" <emoji> ::= <standard-emojis> | <extended-emojis> <standard-emojis> ::= "๐" | "๐" | ... | <any other standard emoji> <extended-emojis> ::= "๐จโ๐จโ๐งโ๐ฆ" | "๐ณ๏ธโ๐" | ... | <any other extended or combined emoji>
This document is a parody of semver and calver. It is not intended to be taken seriously.