Power Platform solutions are version numbered using the format:
<Major>.<Minor>.<Build>.<Revision>
For example, when a solution is created in a development environment, it will initially have the version 1.0.0.0.
Revision Number
The first time the solution is exported, the Revision is incremented so the solution version becomes 1.0.0.1. Once the solution export has completed and the solution is downloaded. Refresh the page and the new version 1.0.0.1 will be displayed.
When the exported solution is imported into another environment the version in the new environment is also 1.0.0.1. The solution version in the new environment is always the same version as the export.
Changing the Default Solution Version on Export
Although the default solution version on export for the above example is 1.0.0.1, any of the Major, Minor, Build or Revision numbers can be manually changed during export.
Build Number
Patches allow targeted fixes to be applied without altering the main solution or requiring a full redeployment.
If I subsequently create a patch (Clone a patch) for the above solution, the Build number is incremented so the version of the patch becomes 1.0.1.1.
When the patch is subsequently exported the Revision is again incremented so the version becomes 1.0.1.2.
Patches stack incrementally and so a second patch would raise the solution version to 1.0.2.2
Manually Changing the Solution Version when Cloning a Patch
Although the default solution version for the second patch is 1.0.2.2, when cloning a patch, I can manually change the Build or Revision numbers, but not the Major or Minor numbers.
Minor Number
The ‘Clone to solution’ feature is used to roll-up patches into a minor build. When I ‘Clone to solution’, the Minor number is incremented and the Build and Revision numbering is reset, so the solution version now becomes 1.1.0.0.
When I subsequently export the solution, the Revision increments and the solution version becomes 1.1.0.1.
Manually Changing the Solution Version when Cloning a Solution
Although the default solution version on export is 1.1.0.1, when cloning a solution, I can change the Major or Minor numbers, but not the Build or Revision numbers.
Major Number
The Major build version is never automatically incremented. It only changes when manually amended. This can be done either when a solution is cloned or exported.
Manual Versioning
Often solutions are never patched and only exported. If this is the case and the version is never manually amended, then only the Revision number increments. For example, a solution that has been exported 15 times and has never been patched, has the version 1.0.0.15. Revision numbers are incremented every time an export is taken irrespective of whether the export is managed or unmanaged.
It is good practice to manually increment the Major or Minor number when significant new functionality is released. In the above case, the next time I export a major release, I would manually change the version to 2.0.0.1. The versioning of a solution can only be manually changed either during export or when a patch or solution is cloned.
Sometimes I see examples of the release date or other information being manually incorporated into the solution version, but for several reasons I am not a fan of this approach. Let me know if you disagree or have another appraoch to solution versioning