Versioning - ggeorgiev/compil GitHub Wiki
Versioning
Compil provides full backward and forward compatibility. At the same time it doesn't require any extra effort from developers to maintain their interfaces in case they do not need versioning.
Versioning could be added at any stage of the project.
Basics
Numbers
Versioning in compil is integer based. You could use a random integer number as soon as every newer version has bigger number than the previous one. Versions do not need to be consecutive.
It is not recommended, but if there is a need the compil protocols to be versioned after the project they are part from you could just eliminate the delimiter between the different parts. For example: 1.0.1 could be represented as 101. Be careful to allocate enough space for the sections (to add needed number of zeros). If your versioning protocol is more complex use your imagination, please.
Compil definition versioning
With the time the compil language itself will evolve. To eliminate the need of instant migration to the latest protocol of the languages every compil definition need to specify the version it is developed against. This will be used from the compil parser to understand the difference.
compil { version = 1; }