composer / semver

Semantic versioning utilities with the addition of version constraints parsing and checking.
MIT License
3.14k stars 76 forks source link

[Documentation] It's not clear that this package does not follow the semver.org specification #160

Open anomiex opened 2 months ago

anomiex commented 2 months ago

I'm not asking you to reverse the decision in #15 not to follow the actual semantic versioning specification. I'm asking you to please make it clear in the package description and documentation that this package implements a version_compare()-compatible versioning system rather than following semver.org's rules.

For example,

// This outputs "true". Per semver.org, these are not equal.
var_dump( \Composer\Semver\Comparator::equalTo( "1.2.3-alpha", "1.2.3-a" ) );

// This outputs "true". Per semver.org, prerelease string "c" > "a".
var_dump( \Composer\Semver\Comparator::lessThan( "1.2.3-c", "1.2.3-a" ) );

// This outputs "true". Per semver.org, 1.2.3-prerelease is less than 1.2.3, not greater than.
// (version_compare considers "p" as meaning "patchlevel", along the lines of what might otherwise be "1.2.3.1").
var_dump( \Composer\Semver\Comparator::greaterThan( "1.2.3-prelease", "1.2.3" ) );

Again, I'm not asking you to change any of those results. But please make it clear in the documentation that if someone is looking for a package to follow semver.org rather than version_compare(), they should keep looking.

I suggest the following changes:

(I'm not going to suggest renaming the package, namespaces, or classes. That would break too much stuff to be worth me advocating for.)

Thanks!

Seldaek commented 2 months ago

Yeah, we do follow the key parts of the semver spec, but cannot reasonably follow these minor details due to language support. So I disagree we should drop semver entirely because for most intents and purposes, this is quite semver compatible. But I agree that a warning in the readme at least is in order :)

Seldaek commented 2 months ago

And btw if you do want to send a PR for that, it'll for sure help resolve it sooner.