otr_logo_grey OntarioTechRacing.github.io

Versioning Conventions


Table of Contents

1 About Versioning

Versioning in software development is the practice of assigning unique version numbers to distinct states of computer software, providing a clear historical record of code changes and development progress. It is essential for tracking modifications, facilitating collaboration among multiple developers, and ensuring that users can access stable and well-documented software releases.


2 Version Nomenclature


3 Semantic Versioning MAJOR.MINOR.PATCH

All versioning follows the Semantic Versioning 2.0.0 (SemVer) standard.

3.1 Major Tag

3.2 Minor Tag

3.3 Patch Tag

3.4 Prerelease Tags (-alpha, -beta, etc)

Prerelease denotes general scope validation projects.

For example, suppose you are constructing a reflow oven for the team. To test the feasibility of creating a professional-level, DIY reflow oven, you try to replicate one from an open-source project as a point of reference and feasibility assessment. The open-source project might utilize deprecated parts and premade PID controllers that require improvements. This endeavor is considered a prerelease, specifically a feasibility testing prerelease project. By completing this project you can further confirm, deny or adjust the actual project scope.