Suggestion: switch to SemVer release naming
As per https://github.com/Roave/BackwardCompatibilityCheck/issues/37#issuecomment-392429139 by @alcohol:
Composer does not strictly follow semver formatting. If you look at https://github.com/composer/semver (specifically, the tests) you'll see it is very similar but there are a few deviations for legacy reasons. I think the
vprefix is the only prefix we support. Therelease-prefix is not supported btw, but it is stripped for legacy reasons AFAIK.
We've been using release-X.Y.Z since, well, the very first public release, and continued that into ZF2; Composer added a rule to allow the release- prefix early on, because it was already our practice.
With the 2.5.0 release and breaking into components, we kept the release-X.Y.Z format as we were able to maintain the sha1 compatibility with existing composer.lock files if we did.
At the time, I made the following decision:
- Keep the
release-X.Y.Zfor components already in the ZF tree or derived from existing components (e.g., zend-router, which was derived via a git subtree split operation). - Use
X.Y.Zfor any new components.
As such, we have >50% of our components currently using straight SemVer names, and around 50 or so on the old scheme.
We have a few options:
- Keep things as-is. Tooling then has to adapt to what we do, or declare itself as incompatible with us.
- Start using SemVer for new releases. This is problematic, however, as it's harder to sort by release name, and means we will revisit this over and over again as folks wonder why older tag names have the prefix.
- Convert existing tag names to SemVer tag names; this has the very real possibility of breaking existing installations.
- Duplicate existing
release-tag names with those omitting the prefix. Sorting orders, duplication, etc. I have no idea how this would play with Packagist and Composer.
Duplication of our tags should work quite okay, but I'll make sure that I ask first
Well, we strip release- for legacy reasons (probably because you asked at some point if we can support your tags :P). And that isn't going to go away anytime soon. So basically, all your release-X.Y.Z tags are just considered as X.Y.Z tags. Adding proper Semver tags to those same references would probably result in unpredictable behavior as I am not sure how Composer would/could determine which X.Y.Z has precedence.