I use Blender casually since about v2.69, and more actively v2.79 so I can't speak for the past and I think the versioning before v3.0 was largely inconsistent.
However Blender 3.0 switched to Semantic Versioning (source):
+-------MAJOR version when you make incompatible API changes
| +-----MINOR version when you add functionality in a backward compatible manner
| | +---PATCH version when you make backward compatible bug fixes
| | |
| | |
Examples of X=MAJOR version changes:
- 3.0.0 was a belated increment (because the new versioning scheme was just picked), as it reflects the huge changes in 2.80 (interface, switch from Blender Internal Renderer to Eevee), but also the rework of Geometry Nodes from named attributes in 2.92/2.93 to fields, files compressed in 3.0 not opening in previous versions (source), new add-on requirements (source), rewrite of Cycles: removing branched path tracing, cubic and gaussian subsurface scattering, CMJ sampling pattern, NLM denoiser (source), breaking python changes and Bendy Bones causing issues when opened in previous versions of Blender (source)
- 4.0.0 is still developed, but looking at the αlpha version we can predict the mesh data will open only in 3.6 (which can be used to convert it to older versions), more breaking python changes, perhaps disappearance of face maps (replaced by attributes, but in face maps adding a face to one map automatically removed it from other maps), migration from vertex groups to attributes could also come with some backward compatibility problems…
Examples of Y=MINOR version changes:
- 3.5.0 can stop a node from automatically reconnecting links if it's dropped on a link with ⎇ Alt key pressed (ALT is also useful to get the old behavior of swapping links when connecting a link to an already used input), Python BGL module no longer works with Metal (yes I know it's a breaking change), OSL can now be used with OptiX on the GPU, new Flip Quad Tessellation operator (related to my 2nd question on BSE) and many more
- 3.6.0 introduces a "Simulation Zone" and "Index of Nearest" node and subtypes in group inputs in Goemetry Nodes, added 13 nodes to Viewport Compositor, and many more.
Examples of Z=PATCH version changes:
- Blender 3.4.1 bug fixes (e.g. prevent UV Unwrap from packing hidden UV islands, stopping Animation in Some Scenes Immediately Crashes Blender)
- Blender 3.5.1 bug fixes (e.g. Cycles shadow caustics not working with area lights, entering Grease Pencil Vertex Paint mode crashes)
- once per year, a new version (after the X or Y increments) gets LTS (Long Term Support) status. It means this version will be patched (Z increments) even though newer MAJOR/MINOR (X,Y) versions exist (the newest of which also gets patches).
- since it's an opensource project, a version can be accessed as soon as devs start working on it, it's marked as α - alpha version, and is not intended for serious use, because e.g. it may be missing features (e.g. in an attempt to migrate from vertex groups to attributes, devs may delete vertex groups first, and you may download that revision before they reintroduce old features with attributes)
- Once a revision is complete, it is temporarily marked as β - beta, as the bugs are much more likely to appear in freshly coded features…
- There are also experimental forks, which seems self-descriptive, various things are tried there, and eventually this code may be moved to the main branch.