{"id":396,"date":"2014-07-24T08:02:13","date_gmt":"2014-07-24T06:02:13","guid":{"rendered":"https:\/\/devpath.pro\/?p=396"},"modified":"2014-07-24T08:02:13","modified_gmt":"2014-07-24T06:02:13","slug":"versioning-numbers-make-them-meaningful","status":"publish","type":"post","link":"https:\/\/fabiocicerchia.it\/programming\/versioning-numbers-make-them-meaningful","title":{"rendered":"Versioning Numbers, make them meaningful"},"content":{"rendered":"\n
The version number itself, and more generally the way you manage it, is most of the time\u00a0underestimated<\/em>\u00a0because it’s considered something\u00a0trivial<\/em>. I can think only of two major way to assign a version number:<\/p>\n\n\n\n Obviously there are several ways of customising those to your own needs, and you can find everywhere different, non-standard, version numbers every day being used.<\/p>\n\n\n\n But, personally, I prefer the following structure and I’d recommend it to everyone:<\/p>\n\n\n\n The rules are quite straight-forward:<\/p>\n\n\n\n Usually, I never bother to use I also found out that there is even a\u00a0manifesto<\/a><\/strong>\u00a0for the versioning scheme I’m using and promoting.<\/p>\n\n\n\n However, this is not preventing you anyhow to assign to your release a codename.<\/p>\n\n\n\n This could be a solution to avoid problems when\u00a0deciding which version to use<\/em>, recognising at first glance if the release is\u00a0stable<\/strong>\u00a0or not, and especially be aware whether it’s\u00a0backwards-compatible<\/strong>. The version number itself, and more generally the way you manage it, is most of the time\u00a0underestimated\u00a0because it’s considered something\u00a0trivial.It is used to give a chronological order to the software releases and it conveys the useful information about the\u00a0state\u00a0and the\u00a0impact\u00a0of the release. I can think only of two major way to assign a version number: […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[37],"tags":[77,78,79,80],"aioseo_notices":[],"author_meta":{"display_name":"fabio","author_link":"https:\/\/fabiocicerchia.it\/author\/fabio"},"featured_img":null,"coauthors":[],"tax_additional":{"categories":{"linked":["Programming<\/a>"],"unlinked":["Programming<\/span>"]},"tags":{"linked":["semantic<\/a>","semver<\/a>","software<\/a>","versioning<\/a>"],"unlinked":["semantic<\/span>","semver<\/span>","software<\/span>","versioning<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 10 years ago","modified":"Updated 10 years ago"},"absolute_dates":{"created":"Posted on July 24, 2014","modified":"Updated on July 24, 2014"},"absolute_dates_time":{"created":"Posted on July 24, 2014 8:02 am","modified":"Updated on July 24, 2014 8:02 am"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/posts\/396"}],"collection":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/comments?post=396"}],"version-history":[{"count":0,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/posts\/396\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/media?parent=396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/categories?post=396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/tags?post=396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
It is used to give a chronological order to the software releases and it conveys the useful information about the\u00a0state<\/strong>\u00a0and the\u00a0impact<\/strong>\u00a0of the release.<\/p>\n\n\n\n\n
MAJOR.MINOR.PATCH[-STABILITY]<\/code><\/li>\n
YEAR.MONTH.DAY<\/code>\u00a0^1<\/li>\n<\/ul>\n\n\n\n
MAJOR.MINOR.PATCH[-STABILITY]<\/code><\/p>\n\n\n\n
\n
MAJOR<\/code>\u00a0when releasing something that is NOT backward compatible<\/li>\n
MINOR<\/code>\u00a0when releasing something that is backward compatible<\/li>\n
PATCH<\/code> when releasing a bug fix (obvs backwards compatible)<\/li>\n
\n
alpha<\/code><\/li>\n
beta<\/code><\/li>\n
dev<\/code><\/li>\n
rc<\/code><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n\n\n\n
alpha<\/code>\u00a0and\u00a0
beta<\/code>because they are so unstable and so frequently updated that it’s not worth the time to create a tag and release it, I’d rather release a\u00a0
dev<\/code>\u00a0one.<\/p>\n\n\n\n
Still,\u00a0do not ever trust blindly an external dependency<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"