The versioning system we use for this project is heavily based on the Semantic Versioning system, with a few changes.
The most major of these changes would be that the way we handle the MAJOR, MINOR, PATCH versioning system. In our system, MAJOR is when a version has a lot of breaking API changes, MINOR is when a version has breaking API changes in general, and PATCH is for backwards compatible additions or bug fixes.