Browse Source

Links

master
David Larlet 9 months ago
parent
commit
9d814263be
Signed by: David Larlet <david@larlet.fr> GPG Key ID: 3E2953A359E7E7BD

+ 357
- 0
cache/2024/959374400b4bb6d58c74116ffd08281b/index.html View File

<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="en">
<!-- Has to be within the first 1024 bytes, hence before the `title` element
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>YOLO Ver (archive) — David Larlet</title>
<meta name="description" content="Publication mise en cache pour en conserver une trace.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f7f7f7">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
<!-- Is that even respected? Retrospectively? What a shAItshow…
https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
<meta name="robots" content="noai, noimageai">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://yolover.org/">

<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">


<article>
<header>
<h1>YOLO Ver</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="https://yolover.org/" title="Lien vers le contenu original">Source originale</a>
<br>
Mis en cache le 2024-02-09
</p>
</nav>
<hr>
<h2>Summary</h2>

<p>
Given a version number MAJOR.MINOR.PATCH, increment the:

</p>
<ol>
<li>
<strong>Major</strong> version whenever you feel like it.
</li>
<li>
<strong>Minor</strong> version whenever you feel like it.
</li>
<li>
<strong>Patch</strong> version whenever you feel like it.
</li>
</ol>

<p>
Additional labels for whatever you feel like are available as extensions to
the MAJOR.MINOR.PATCH format. The more the merrier.
</p>

<h2>Introduction</h2>

<p> For years the software industry has used systems like
<a href="https://semver.org"><strong>semver</strong></a> and <a href="https://calver.org"><strong>calver</strong></a> to communicate with users
what to expect in an update. The prescriptiveness of <strong>semver</strong>
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
<strong>calver</strong> 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.
</p>

<p>
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:
<strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</p>

<h2>Goals</h2>

<p>
The goals of <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> 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. <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> is here to help.
</p>

<p>
What follows are example conversations you might have with users that
are not familiar with <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>:
</p>

<h3>Example 1</h3>

<ul>
<li>
<strong>User</strong>: The most recent patch-level release of your
software broke our service in production. You shouldn't have done that.
You should instead consider <strong>semver</strong> so your users know
what to expect.
</li>
<li>
<strong>You</strong>: lol, we use <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</li>
</ul>

<h3>Example 2</h3>

<ul>
<li>
<strong>User</strong>: The most recent major-level release of your
software was a huge disappointment. Almost nothing changed. Why
would you bump the major version for no reason?
</li>
<li>
<strong>You</strong>: lol, we use <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</li>
</ul>

<h3>Example 3</h3>

<ul>
<li>
<strong>User</strong>: I can't figure out what the version number of your
software means. Can you explain all of the parts? e.g. "Version
121.0.6167.139 (Official Build) (arm64)"
</li>
<li>
<strong>You</strong>: lol, we use <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</li>
</ul>

<h2>Specification</h2>

<ol>
<li>

</li>
</ol>

<h2>Recommendations</h2>

<p>
While <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> does not require any specific versioning scheme, we can
recommend some best practices from industry to get you started.
</p>

<ol>
<li>
Never, <strong>ever</strong>, release a version 1.0.0. This ensures
compatibility with <strong>semver</strong>.
</li>
<li>
Ensure that some artefact if your build process makes it in to your
version. This could be a build number, a git hash, or a timestamp. This
introduces visual noise and makes it more difficult to know what's
changed.
</li>
<li>
If you have a direct competitor, ensure that your version numbers are
higher than theirs. This will make you look more successful.
</li>
<li>
Consider releasing a breaking change without modifying the version number
at all. This will keep your users on their toes.
</li>
<li>
Every once in a while, skip a number. People love mystery.
</li>
<li>
If your software depends on other software, consider not specifying a
version of those dependencies. This ensures all of your users get a unique
experience.
</li>
</ol>

<h2>Backus-Naur Form Grammar for valid <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> versions</h2>

<pre>
&amp;ltvalid-yolover&amp;gt ::= &amp;ltany-char&amp;gt &amp;ltvalid-yolover&amp;gt | &amp;ltany-char&amp;gt
&lt;any-char&gt; ::= &lt;letter&gt; | &lt;digit&gt; | &lt;punctuation&gt; | &lt;symbol&gt; | &lt;whitespace&gt; |
&lt;emoji&gt;
&lt;letter&gt; ::= "a" | "b" | "c" | ... | "Z"
&lt;digit&gt; ::= "0" | "1" | ... | "9"
&lt;punctuation&gt; ::= "." | "," | ";" | ":" | "!" | "?" | "-" | "_" | ...
&lt;symbol&gt; ::= "@" | "#" | "$" | "%" | "&amp;" | "*" | "(" | ")" | ...
&lt;whitespace&gt; ::= " " | "\t" | "\n" | "\r"
&lt;emoji&gt; ::= &lt;standard-emojis&gt; | &lt;extended-emojis&gt;
&lt;standard-emojis&gt; ::= "😀" | "😂" | ... | &lt;any other standard emoji&gt;
&lt;extended-emojis&gt; ::= "👨‍👨‍👧‍👦" | "🏳️‍🌈" | ... | &lt;any other extended or combined emoji&gt;
</pre>

<h2>License</h2>

<p>
<a href="http://www.wtfpl.net/">WTFPL</a>
</p>

<h2>Attribution</h2>

<p>
This document is a parody of <a href="https://semver.org/">semver</a> and
<a href="https://calver.org/">calver</a>. It is not intended to be taken
seriously.
</p>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
</svg> Suivre</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
</svg> Pro</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
</svg> Email</a> •
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
</svg> Légal</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend><svg class="icon icon-brightness-contrast">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
</svg> Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 189
- 0
cache/2024/959374400b4bb6d58c74116ffd08281b/index.md View File

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

<h2>Summary</h2>

<p>
Given a version number MAJOR.MINOR.PATCH, increment the:

</p><ol>
<li>
<strong>Major</strong> version whenever you feel like it.
</li>
<li>
<strong>Minor</strong> version whenever you feel like it.
</li>
<li>
<strong>Patch</strong> version whenever you feel like it.
</li>
</ol>

<p>
Additional labels for whatever you feel like are available as extensions to
the MAJOR.MINOR.PATCH format. The more the merrier.
</p>

<h2>Introduction</h2>

<p> For years the software industry has used systems like
<a href="https://semver.org"><strong>semver</strong></a> and <a href="https://calver.org"><strong>calver</strong></a> to communicate with users
what to expect in an update. The prescriptiveness of <strong>semver</strong>
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
<strong>calver</strong> 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.
</p>

<p>
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:
<strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</p>

<h2>Goals</h2>

<p>
The goals of <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> 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. <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> is here to help.
</p>

<p>
What follows are example conversations you might have with users that
are not familiar with <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>:
</p>

<h3>Example 1</h3>

<ul>
<li>
<strong>User</strong>: The most recent patch-level release of your
software broke our service in production. You shouldn't have done that.
You should instead consider <strong>semver</strong> so your users know
what to expect.
</li>
<li>
<strong>You</strong>: lol, we use <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</li>
</ul>

<h3>Example 2</h3>

<ul>
<li>
<strong>User</strong>: The most recent major-level release of your
software was a huge disappointment. Almost nothing changed. Why
would you bump the major version for no reason?
</li>
<li>
<strong>You</strong>: lol, we use <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</li>
</ul>

<h3>Example 3</h3>

<ul>
<li>
<strong>User</strong>: I can't figure out what the version number of your
software means. Can you explain all of the parts? e.g. "Version
121.0.6167.139 (Official Build) (arm64)"
</li>
<li>
<strong>You</strong>: lol, we use <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong>.
</li>
</ul>

<h2>Specification</h2>

<ol>
<li>

</li>
</ol>

<h2>Recommendations</h2>

<p>
While <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> does not require any specific versioning scheme, we can
recommend some best practices from industry to get you started.
</p>

<ol>
<li>
Never, <strong>ever</strong>, release a version 1.0.0. This ensures
compatibility with <strong>semver</strong>.
</li>
<li>
Ensure that some artefact if your build process makes it in to your
version. This could be a build number, a git hash, or a timestamp. This
introduces visual noise and makes it more difficult to know what's
changed.
</li>
<li>
If you have a direct competitor, ensure that your version numbers are
higher than theirs. This will make you look more successful.
</li>
<li>
Consider releasing a breaking change without modifying the version number
at all. This will keep your users on their toes.
</li>
<li>
Every once in a while, skip a number. People love mystery.
</li>
<li>
If your software depends on other software, consider not specifying a
version of those dependencies. This ensures all of your users get a unique
experience.
</li>
</ol>

<h2>Backus-Naur Form Grammar for valid <strong><span class="y">Y</span><span class="o">O</span><span class="l">L</span><span class="o2">O</span>
Ver</strong> versions</h2>

<pre>
&amp;ltvalid-yolover&amp;gt ::= &amp;ltany-char&amp;gt &amp;ltvalid-yolover&amp;gt | &amp;ltany-char&amp;gt
&lt;any-char&gt; ::= &lt;letter&gt; | &lt;digit&gt; | &lt;punctuation&gt; | &lt;symbol&gt; | &lt;whitespace&gt; |
&lt;emoji&gt;
&lt;letter&gt; ::= "a" | "b" | "c" | ... | "Z"
&lt;digit&gt; ::= "0" | "1" | ... | "9"
&lt;punctuation&gt; ::= "." | "," | ";" | ":" | "!" | "?" | "-" | "_" | ...
&lt;symbol&gt; ::= "@" | "#" | "$" | "%" | "&amp;" | "*" | "(" | ")" | ...
&lt;whitespace&gt; ::= " " | "\t" | "\n" | "\r"
&lt;emoji&gt; ::= &lt;standard-emojis&gt; | &lt;extended-emojis&gt;
&lt;standard-emojis&gt; ::= "😀" | "😂" | ... | &lt;any other standard emoji&gt;
&lt;extended-emojis&gt; ::= "👨‍👨‍👧‍👦" | "🏳️‍🌈" | ... | &lt;any other extended or combined emoji&gt;
</pre>

<h2>License</h2>

<p>
<a href="http://www.wtfpl.net/">WTFPL</a>
</p>

<h2>Attribution</h2>

<p>
This document is a parody of <a href="https://semver.org/">semver</a> and
<a href="https://calver.org/">calver</a>. It is not intended to be taken
seriously.
</p>

+ 2
- 0
cache/2024/index.html View File

<li><a href="/david/cache/2024/fd6eda56671045e0c1e2d215e07f1a6f/" title="Accès à l’article dans le cache local : EffVer: Version your code by the effort required to upgrade">EffVer: Version your code by the effort required to upgrade</a> (<a href="https://jacobtomlinson.dev/effver/" title="Accès à l’article original distant : EffVer: Version your code by the effort required to upgrade">original</a>)</li> <li><a href="/david/cache/2024/fd6eda56671045e0c1e2d215e07f1a6f/" title="Accès à l’article dans le cache local : EffVer: Version your code by the effort required to upgrade">EffVer: Version your code by the effort required to upgrade</a> (<a href="https://jacobtomlinson.dev/effver/" title="Accès à l’article original distant : EffVer: Version your code by the effort required to upgrade">original</a>)</li>
<li><a href="/david/cache/2024/959374400b4bb6d58c74116ffd08281b/" title="Accès à l’article dans le cache local : YOLO Ver">YOLO Ver</a> (<a href="https://yolover.org/" title="Accès à l’article original distant : YOLO Ver">original</a>)</li>
<li><a href="/david/cache/2024/bf61b62532f71e39e7b92c76dc36bb0f/" title="Accès à l’article dans le cache local : Popover API (Explainer)">Popover API (Explainer)</a> (<a href="https://open-ui.org/components/popover.research.explainer/" title="Accès à l’article original distant : Popover API (Explainer)">original</a>)</li> <li><a href="/david/cache/2024/bf61b62532f71e39e7b92c76dc36bb0f/" title="Accès à l’article dans le cache local : Popover API (Explainer)">Popover API (Explainer)</a> (<a href="https://open-ui.org/components/popover.research.explainer/" title="Accès à l’article original distant : Popover API (Explainer)">original</a>)</li>
<li><a href="/david/cache/2024/d236f33cf82727313d17cb23bf36a395/" title="Accès à l’article dans le cache local : Reconsider your partnership with Brave">Reconsider your partnership with Brave</a> (<a href="https://kagifeedback.org/d/2808-reconsider-your-partnership-with-brave/6" title="Accès à l’article original distant : Reconsider your partnership with Brave">original</a>)</li> <li><a href="/david/cache/2024/d236f33cf82727313d17cb23bf36a395/" title="Accès à l’article dans le cache local : Reconsider your partnership with Brave">Reconsider your partnership with Brave</a> (<a href="https://kagifeedback.org/d/2808-reconsider-your-partnership-with-brave/6" title="Accès à l’article original distant : Reconsider your partnership with Brave">original</a>)</li>

Loading…
Cancel
Save