What rules are there? How do you version software releases correctly? Semantic Versoning is the answer!
You’re producing software and you should know how to version their releases correctly. We have fixed rules for this. These are valid for all software producers.
Unfortunately, there are many unprofessional developers in the crypto industry. We have already noticed this. I noticed this again when I wanted to display the version number of the last wallet release in the project details.
There seems to be a very large knowledge gap in this area, therefore the article about it.
Semver.org explains exactly what Semantic Versioning is and how it is used. There is no better way to write it down. Every hobby programmer should understand this.
This you have to know
A Patch release is used to signify that the code changes in this revision has not added any new features and is backward compatible with the previous version. It is most typically used to signify a bug fix. The most important thing to know is that the code has not changed the way it is used. Using the lodash example above.
A Minor release is used to signify that functionality has been added, but the code is otherwise backward compatible. An example, a new function is added or a new optional parameter is added to an existing function. The most important thing to remember is that this added functionality is optional and by upgrading to this version should not require code changes on the part of the user.
When you make changes and the code is no longer backward compatible, then you have made “breaking” changes. This requires a major revision increase. This can mean a feature was removed or functionality has changed that requires the user to make changes to the code to accept the update.
The first part really doesn’t look that difficult, the second part is even easier: How do I create a release on Github correct?
The code is written and can be compiled. What do I do first? Correct, I assign a day with the version number. Since you usually compile with Gitian anyway it is a mandatory requirement to use Semantic Versioning. But of course even if I don’t compile with Gitian.
I have my builds available and just have to create a new release in github and upload my packages to the release. This is really easy and for those who don’t know how to do it, Github has written down how to do it.
Why do so many projects not manage to do it right?
I don’t know and I can’t explain it to myself. It’s the lack of knowledge… What else could it be?
We get the version number automatically from the Github API at Stake and Nodes. I really wonder how some projects manage to produce such crazy version numbers.
In conclusion: Dear hobby developer, please read the instructions and make it better next time.