skaji/cpm

cpm seems not well honouring impossible versions constraints

Closed this issue · 2 comments

Hello @skaji

First thank you for this gem, it is amazing and I love cpm ❤️

I noticed something that seems strange to me:
cpm-diamond-annotated

C/D/E/F are forming a "diamond" like this:

        C
       /  \
      /    \
     /      \
    D        E
     \      /
  <=1.0   >=2.0
       \  /
        F

I'm a bit confused that cpm downgraded F when the versions constraints are just not possible to satisfy (I would expect a fail).

It's a bit "theoric" use case since constraints like this should have very likely fail at build/test with a real code but my modules are not using any function of F (and without talking about their real existence or the need behind these constraints).

At least it deserves an explanation 😀

PS: FYI, cpanm fails (except if you install D and E separately).

skaji commented

cpm already emits "WARN", so it's easy to change it to "FATAL" if we want.

Unlink other programing language ecosystem,
we don't see many CPAN distributions that have prereqs with upper version limit such as <= 1.0.
Actually I really like it.

So I don't think cpm should take it seriously,
and I don't have any plan to address the issue in the near future.

we don't see many CPAN distributions that have prereqs with upper version limit such as <= 1.0.
Actually I really like it.

Me too! 😃

So I don't think cpm should take it seriously,
and I don't have any plan to address the issue in the near future.

This answer suits me.

As I said, I was a bit confused but mostly looking for feedback about this topic. Therefore I close this issue 👍

Thank you for the quick feedback