semver4j icon indicating copy to clipboard operation
semver4j copied to clipboard

NPM satisfies issue with optional version

Open andrewvsk opened this issue 5 years ago • 3 comments

What I am doing wrong?

new Semver("2", SemverType.NPM).isGreaterThanOrEqualTo("2.x"); // true

new Semver("2", SemverType.NPM).isGreaterThanOrEqualTo("2"); // true
new Semver("2", SemverType.NPM).isGreaterThanOrEqualTo("2.0"); // true
new Semver("2", SemverType.NPM).isGreaterThanOrEqualTo("2.0.0"); // false ?

new Semver("2", SemverType.NPM).isGreaterThanOrEqualTo("2.0.0"); // false ?
new Semver("2.0", SemverType.NPM).isGreaterThanOrEqualTo("2.0.0"); // false ?
new Semver("2.0.0", SemverType.NPM).isGreaterThanOrEqualTo("2.0.0"); // true

new Semver("2", SemverType.NPM).satisfies(">=2.0.0"); // false ?
new Semver("2.0", SemverType.NPM).satisfies(">=2.0.0"); // false ?
new Semver("2.0", SemverType.NPM).satisfies("2.0.x"); // false ?
new Semver("2.0.0", SemverType.NPM).satisfies("2.0.x"); // true !

new Semver("2", SemverType.NPM).satisfies(">=2.0"); // true
new Semver("2.0", SemverType.NPM).satisfies(">=2.0"); // true
new Semver("2.0.0", SemverType.NPM).satisfies(">=2.0"); // true

new Semver("2", SemverType.NPM).satisfies(">=2"); // true
new Semver("2.0", SemverType.NPM).satisfies(">=2"); // true
new Semver("2.0.0", SemverType.NPM).satisfies(">=2"); // true

new Semver("2", SemverType.NPM).satisfies("~2"); // false ?
new Semver("2.0", SemverType.NPM).satisfies("~2"); // false ?
new Semver("2.0.0", SemverType.NPM).satisfies("~2"); // true !

andrewvsk avatar Sep 17 '20 11:09 andrewvsk

I am also surprised that:

new Semver("5.1.2", SemverType.NPM).satisfies("<5.2"); // false ?

@vdurmont Could you clarify if it is expected or if it is a bug?

I am not sure that "<5.2" is a valid npm requirement but in that case, (Requirement/buildNPM "<5.2") should throw an exception.

viebel avatar Oct 05 '20 15:10 viebel

Have similiar issue:

new Semver("3.0.0-beta.1", SemverType.NPM).satisfies("<3");  //false ?

PhantomYdn avatar Dec 08 '20 23:12 PhantomYdn

@andrewvsk if you are still interesting, I've made copy of this lib and fix bug reported by you. Look for version 2.0.1

piotrooo avatar Jul 22 '22 22:07 piotrooo