This commit is contained in:
Miloslav Ciz 2025-03-01 01:35:35 +01:00
parent d89468d6da
commit 521e728375
39 changed files with 2037 additions and 1973 deletions

View file

@ -1,11 +1,13 @@
# Version Numbering
Version numbering is a [system](system.md) of assigning [numbers](number.md) (or even general text [strings](string.md)) to different versions of computer programs or similar projects. The basic purpose of this is to distinguish different versions from each other while also knowing which one is newer (more "[up to date](update_culture.md)"), however version identifiers often go further and provide more [information](information.md) such as the exact release date, whether the version is [stable](stability.md) or testing, with which other versions it is [compatible](compatibility.md) and so on.
Version numbering is a [system](system.md) of assigning [numbers](number.md) (or even general text [strings](string.md)) to different versions of computer programs or similar [projects](project.md). The basic purpose of this is to distinguish different versions from each other while also knowing which one is newer (more "[up to date](update_culture.md)"), however version identifiers often go further and provide more [information](information.md) such as the exact release date, whether the version is [stable](stability.md) or testing, with which other versions it is [compatible](compatibility.md) and so on.
TODO
## Traditional Version Numbering
Possibly the most widely used system is that which marks versions as *major.minor*, where *major* is a number specifying very BIG changes, and *minor* is a number marking smaller ones. It's not uncommon to see three numbers: *major.minor.patch*, where *patch* signifies yet smaller changes such as hotfixes of bugs. The versions *0.x* usually stand for unfinished, alpha/beta releases, whereas *1.0* signifies the first "completed" release that has met all the initial goals. *2.0* may stand for a complete reimplementation etc.
TODO
## LRS Version Numbering Systems
@ -14,7 +16,7 @@ Here are some possible version numbering systems usable by [LRS](lrs.md).
### Source Hash As Version
We can make the version number be automatically derived, for example using the [hash](hash.md) or [checksum](checksum.md) of the source code, or maybe even better use the Unix timestamp of latest commit (that will allow to determine which version is newer), or something along these lines.
As lazy fucks we can make the version number be automatically derived, for example using the [hash](hash.md) or [checksum](checksum.md) of the source code, or maybe even better use the Unix timestamp of latest commit (that will allow to determine which version is newer), or something along these lines.
Here is a small **example** in C. The source code may look like this: