crystal-lang / shards

Dependency manager for the Crystal language
Other
763 stars 100 forks source link

Add support for != operator in Crystal version #519

Closed syeopite closed 3 years ago

syeopite commented 3 years ago

Sometimes upstream Crystal bugs can introduce backward incompatible changes. IE crystal-lang/crystal#10972. It may be useful to have support for a != operator to negate specific versions of crystal.

beta-ziliani commented 3 years ago

@syeopite I think it would make sense to consider "!= 1.0" as "1.0 and any of its patches". WDYT? I didn't see this case tested, that's why I ask.

syeopite commented 3 years ago

That seems a bit counterintuitive to me. I'd personally expect a != to work exactly like == but opposite, so having it negate patches as well is rather confusing. A separate !~ operator to handle that behavior might be better in this case.

Also, I originally proposed this due to the upstream bug introduced in crystal-lang/crystal#10583, which was fixed in Crystal version 1.1.1. So changing the behavior of != to also negate patches would be counterproductive to that to that.