{"id":13565111,"url":"https://github.com/dominictarr/sentimental-versioning","last_synced_at":"2025-12-30T01:10:31.606Z","repository":{"id":19562130,"uuid":"22811136","full_name":"dominictarr/sentimental-versioning","owner":"dominictarr","description":"version numbers with meaning","archived":false,"fork":false,"pushed_at":"2017-06-22T06:43:06.000Z","size":124,"stargazers_count":75,"open_issues_count":6,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-17T17:47:06.642Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"sentimentalversioning.org","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dominictarr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-10T14:51:43.000Z","updated_at":"2024-10-14T10:58:44.000Z","dependencies_parsed_at":"2022-08-21T09:41:05.836Z","dependency_job_id":null,"html_url":"https://github.com/dominictarr/sentimental-versioning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominictarr%2Fsentimental-versioning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominictarr%2Fsentimental-versioning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominictarr%2Fsentimental-versioning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominictarr%2Fsentimental-versioning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dominictarr","download_url":"https://codeload.github.com/dominictarr/sentimental-versioning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234296391,"owners_count":18809988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:40.959Z","updated_at":"2025-09-26T07:31:36.081Z","avatar_url":"https://github.com/dominictarr.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"# Sentimental Versioning\n\n## Version One dot Okay.\n\n### by Dominic Tarr\n\nSome version number systems aspire to merely label changes\nin an interface, but there is much in the human experience\nthat lies outside of this. Sometimes a version is just a number,\nbut sometimes what we really want is  a _poem_.\n\nSemver has a spec, but Sentimental Versioning has not a spec,\nbut a guide; just some whimsical suggestions.\nIf you use sentimental versioning you *should not* copy another\nsentimental versioning system. You *should* do something creative and original.\nYou *may* explain the system you create, if the beauty is enhanced by understanding it.\nYou _may_ just improvise new numbers from your mood\non that day. The only important thing, is that the version\nnumber *must* be meaningful to you, the author.\n\nInterpreting the previous paragraph according to the specific meanings\ndefined in [RFC2119](http://www.faqs.org/rfcs/rfc2119.html)\n for _“should”_, _“should not”_, _“may”_, and _“must”_ is entirely _optional_.\n\n# Inspiration\n\nFollowing are some projects that use sentimental versioning.\nDraw inspiration from the way their version numbers\nexpress intangible aspects of the project, and are a work of art on their own.\n\n## Node.js\n### by Ryan Dahl\n\nnode.js is like a rebellious teenager. It skips class\nand plays in a punk rock band - yet still gets straight A’s.\nIts versioning system expresses its dual nature\nbeautifully. Version numbers alternate between even and odd,\nand between stable and unstable. In unstable versions\nnode makes its own rules and sticks it to the man. In stable\nversions node wears a long sleeve shirt over its tattoos\nand works at fortune 500 companies (fighting the system from\nthe inside?). Some critics say that node is part of the\nestablishment now, citing that it’s been a very long time\nsince its last album was released, version `0.12` having\nbeen in the works for over a year. While this accusation\nmay carry some weight, you cannot put a time frame on\ncreativity, and you must admit that node’s use of sentimental\nversioning is a beautiful expression of its own internal conflicts.\n\n## Backbone\n### by Jeremy Ashkenas\n\nJeremy calls his versioning system\n[romantic](https://github.com/jashkenas/backbone/issues/2888#issuecomment-29076249)\n(which is _very sentimental_ of him)\nIt looks like semver (`major.minor.patch`), but with\na personal meaning. For him, a patch is a change you\nprobably won’t notice, and a minor change is when you\nchange it a little bit. A major change is when you make\na major release (notice the circular definition!).\nA major change can be anything or nothing. He says\nevery change _should_ be backwards compatible. But what\ndoes “backwards compatible” mean to Jeremy? That is\nup to you to decide. Jeremy’s use of sentimental versioning\nexpresses how backbone is his masterpiece, and he, its master.\n\n## TeX and Metafont\n### by Donald Knuth\n\nIn his seminal text layout system, TeX, and his equally\nbrilliant typeface design system, METAFONT, Donald uses\na versioning number system that asymptotically approaches\nperfection. The version numbers of TeX approach π \n(the current version is `3.14159265`) and the version numbers of\nMETAFONT approach `e`. It has been prophesied that the\nlast change not be made until after the day Donald ascends\nto heaven on a shining cloud. At that point, Donald will\nmake one last ssh connection down from heaven to his server at\nStanford University and set the version number unto π \n_exactly_. At that point all remaining bugs will be declared\nfeatures, and the output from TeX will remain the same\nfor all eternity.\n\n# Realization\n\nWhat ever happens, not everyone will understand your intentions,\npossibly your genius will not be recognized within your lifetime.\nBut we did not choose the life of the artist for fame and certainly\nnot for fortune - But rather, a dedication to aesthetic beauty and\nself expression.\n\nIn this spirit, go forth, and create _beautiful versions!_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdominictarr%2Fsentimental-versioning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdominictarr%2Fsentimental-versioning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdominictarr%2Fsentimental-versioning/lists"}