Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why are there 4 numbers in the versioning scheme? #9133

Closed
comminutus opened this issue Jan 23, 2024 · 5 comments
Closed

Why are there 4 numbers in the versioning scheme? #9133

comminutus opened this issue Jan 23, 2024 · 5 comments

Comments

@comminutus
Copy link

It seems the first number is always 0, which suggests that Monero is in some kind of pre-release state. I doubt this is the case. Shouldn't the leading 0 be dropped? If not, does that mean the second and third numbers are minor and patch numbers, and the fourth a build number?

Perhaps the idea was to follow some kind of similarity with the Bitcoin version history? 🤔

@Swapnilchavan13
Copy link

Monero's versioning system follows the format MAJOR.MINOR.PATCH, with a leading zero in the major version. The leading zero doesn't imply a pre-release state but is a part of Monero's versioning convention. It is not directly influenced by Bitcoin's versioning scheme. To understand the current versioning details, it's best to check the official Monero documentation or the project's GitHub repository. Versioning conventions may evolve over time in software projects.

@comminutus
Copy link
Author

Monero's versioning system follows the format MAJOR.MINOR.PATCH, with a leading zero in the major version. The leading zero doesn't imply a pre-release state but is a part of Monero's versioning convention.

This is evident, the question is why is there a leading "0?"

To understand the current versioning details, it's best to check the official Monero documentation or the project's GitHub repository. Versioning conventions may evolve over time in software projects.

I did this, hence the reason for the post here. This looks like a ChatGPT response?

@comminutus
Copy link
Author

Forgive me if I thought @Swapnilchavan13's response was a generated answer, it seemed like it since the very reason I posted the question was because this information can't be found in the documentation nor the source, otherwise someone would've linked to it by now.

@Fjodor42 I think you're projecting my "tone" and making a lot of assumptions. I'm not trying to be hostile. I'm genuinely just curious why there are 4 numbers which make up the version, which are not compatible with SemVer. Because SemVer is fairly standard these days, most understand an X.Y.Z versioning format to mean major, minor, and release. Usually, a versioning scheme with 4 numbers adds a "build" component to the set.

Presumably, each component of the version has a meaning, I'm simply after the meaning of each component. What is the meaning of each component in the Monero versioning scheme? If the first component (the "0") is arbitrary, why is it so?

@iamamyth
Copy link

@comminutus
Copy link
Author

@iamamyth that is helpful; I didn't see that (I wasn't looking in the meta repo) - thanks!

Based on that discussion, it seems like the leading 0 in the versioning was to convey the idea that major changes still may come. While this is understandable, it looks as if the idea was conflated with the ideas of SemVer, making the 2nd component major, 3rd minor, and 4th revision. This defeats the purpose of the "major" version number change, since major versions typically indicate incompatibility between versions and drastic changes.

Nonetheless, I'll close this because the topic linked by @iamamyth is probably a more relevant place to continue the discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants