rattler icon indicating copy to clipboard operation
rattler copied to clipboard

PEP-440 compliant Version Spec flagged as "regular expression"

Open pbauwens opened this issue 11 months ago • 1 comments

Hi,

Our teams regularly use a wildcard to refer to a compatible range of versions (e.g. pip=24.2.* but also pyspark=3.4.*+aws). This works just fine with both conda and mamba, and their respective build tooling condabuild and boa. Rattler however does not allow this, flagging the dependency specs as "regular expressions" based on the presence of either a star (i.e. our case) or a dollar sign.

For the first case, one might argue that because the '.*' is implicitly applied, having no wildcard at the end resolves just the same. True, but on the other hand PEP-440 clearly states the usage of the wildcard does have its merrits.

For the second case, pyspark=3.4+aws does not resolve the same as pyspark=3.4.*+aws. For one reason or the other the first one resolves to 3.4.0+aws while the one with the wildcard correctly resolves to the latest patch version, e.g. 3.4.3+aws.

So I am wondering if this has been done by design and using a wildcard is not be allowed? Or was it just the intention to exclude regular expressions and are wildcards unintentionally blocked by the same logic.

Thanks

pbauwens avatar Dec 19 '24 12:12 pbauwens

I think you struck an interesting edge case. I think it makes sense to support this!

baszalmstra avatar Dec 19 '24 13:12 baszalmstra