Software Versioning Explained - Semantic (SemVer), Calendar (CalVer), etc.

preview_player
Показать описание
How do we version software? Should we use build numbers, Semantic Versioning (SemVer), Calendar Versions (CalVer), milestone versioning, or something else? What are the reasons for using each of those and which one should you use?

#versioning #semver #calver #semanticversioning #calendarversioning

▬▬▬▬▬▬ 🚀 Courses, books, and podcasts 🚀 ▬▬▬▬▬▬

▬▬▬▬▬▬ 👋 Contact me 👋 ▬▬▬▬▬▬

▬▬▬▬▬▬ Timecodes ⏱ ▬▬▬▬▬▬
00:00 Intro
00:44 Types of versioning
01:08 Build number versioning
02:55 Calendar versioning (CalVer)
06:11 Semantic versioning (SemVer)
13:01 Milestone versioning
14:24 Random versioning
15:03 Geeky versioning
15:46 Which versioning should you use?
Рекомендации по теме
Комментарии
Автор

Thank you for explaining this. This really helps! Thank you so much!

montereidii
Автор

Brooo thank you for finally driving the point home. Semantic versioning sounds like the way to go. I now feel ready to pass a test on SemVer

jamieslate
Автор

I have to admit: I always thought that the '4.2' in SUSE's initial release was meant to be read '4.2.0', and that it was a reference to something altogether different. Well, you never stop learning, I guess. In my defense, their preferred color scheme has always been green :)

Blkhole
Автор

Thanks for this video. We have very few knowledge bites on Semantic versioning. Glad you contributed in this space. 👍

S
Автор

Thanks, Victor!
I've always used semantic versioning.
Thanks for shedding some light on the other available forms of versioning!

galonge
Автор

Thanks for your video, learned a lot about versioning

sheenalu
Автор

Thanks! After you it looks so obviously )

SuMiSc
Автор

Windows is using semantic versioning, and the number now appended to the name "Windows" is just the major version. You can find the minor version and patch numbers through various ways, such as the dialog box that you get when you click on the "About Windows" menu item in the Help menu of Windows Explorer. Windows version 4 went out as Windows 95, 98, and Me; Windows 5 was marketed as Windows XP; and Windows 6 was sold as Windows Vista. Major version 9 got skipped because Microsoft found that too many programs check which version of Windows they are running on by checking if the major version number starts with the digit 9 to assume that they must therefore be running on Windows 95 or Windows 98, meaning that Windows 9 would essentially be cursed with confusing too many third-party programs into thinking that they are running on a super-old Windows OS, which would cause a lot of problems leading people to complain both about those programs and about Windows somehow being defective because of too many programs breaking when running on it.

nerdvision
Автор

Really clean explanation of versioning strategies, especially semantic versioning and minor release.patch numbers reset. Semantic versioning always made sense to me. It would be good maybe to talk in another video, how to combine versioning and CI/CD process in an automated way, like append build numbers after patch etc. One more topic of versioning is specifically REST API versioning strategies, which are a bit different and probably were out of scope for this vid. Also applying semantic versioning rules, terraform is still not GA although it is widely used everywhere ;p

Peter
Автор

Honestly it's the first time I have heard the term SemVer and CalVer . Thanks a lot for your videos 🙂 .
Video request : How about a video on Podman (Podman vs Docker) .
Thank you

learnwithraghuIT
Автор

Thank you!! So few videos about this topic

RamanTseshau
Автор

I use a combination of semantic and calendar versioning. 1.2.3-20210523.
Each will work for it self, but I like to see braking changes and like to know how old the version is.

chrisre
Автор

Appreciate these videos as a non-dev that likes learning about development. Also wonder what fighting games your using that fighting-stick pair for.

jakeh
Автор

Cal-ver can be used when there are multiple repositories holding SQL scripts that are executed against the same DB schema. If they can be ordered by calendar or timestamp it would have not be necessary to orchestrate which one should be executed when.

borispavlovic
Автор

There are other considerations. Semantic versioning is more important for publicly facing software versus, for instance a micro-service that is deployed to production with high frequency. You also need to consider if the artifact needs to be compatible with package management, such as YUM/DNF. I also don't think including the Git short hash is entirely silly. I have included it in versions for internal micro-services that deploy frequently to end the conversation about, "how do I go back to the deployed service's source code." In practice no one ever really needs to do this but also, in practice, people do all sorts of nasty things in their SCM to support this that are entirely unnecessary if the hash is present in the artifact's version.

GoldenBear
Автор

For semver you could tell about 0.x.y versions meaning.

dzen
Автор

Versioning Schemas:

1 - Build Number Versioning
2 - Commit Hash /Git Short Hash, Git Commit Hash/ Versioning
3 - Calendar /CalVer/ Versioning
4 - Semantic /SemVer/ Versioning
5 - Random /System Native/ Versioning
6 - Milestones /Marketing/ Versioning
7 - Geeky /Silly/ Versioning

eyobbekele
Автор

My question is if its a breaking change and needs to supply a major version. How the code base allowed if the change is breaking change. Breaking changes will not be allowed into the code base right. Otherwise, am I understanding differently..

vanshikavannu
Автор

Thanks, and in GitOps when I deliver few times in a day, what kind of version, should I use?

vietbmi
Автор

Git hash as I have a CI/CD pipeline and I deliver SaaS. If I have to patch something i just branch from that hash, fix, then merge back. Team can always check the git in order to understand the changes. Semver was flawed in my case as the rate of changes coupled with feature toggles made it confusing.

saigajester