Semantic Versioning
From Freephile Wiki
Semantic Versioning is simply the right way to manage software versioning. Dependency managers like Composer work because we can all agree as software producers and consumers that versions matter and compatibility (or compatibility breaking changes) matter.
Don't use the "Death Star" version constraint (since it's not a constraint at all).
Don't use explicit references (specific commit hashes). This particular issue is probably the root of all confusion and disdain for Composer as a dependency manager among MediaWiki developers.