conda / ceps

Conda Enhancement Proposals
Creative Commons Zero v1.0 Universal
19 stars 24 forks source link

CEP request: Document MatchSpec #80

Open chenghlee opened 1 month ago

chenghlee commented 1 month ago

Checklist

What is the idea?

MatchSpec is a fundamental conda construct, used in various places for things like dependency specifications and search (though arguably MatchSpec should not be used for the latter). However, to the best of my knowledge, there is currently no formal specification for MatchSpec beyond "what's in the code" (e.g., comments in conda/models/match_spec.py and tests/models/test_match_spec.py) and random bits of institutional/community knowledge.

We should provide such an official specification so developers and users in the conda ecosystem have a shared understanding of what MatchSpec is, and what it does and does not support.

Why is this needed?

Because "is this a valid MatchSpec?" is (a) an oddly difficult or (b) alarming question to answer; as in, conda install '*=*=*' does not result in an immediate InvalidMatchSpec error.

What should happen?

At least one CEP detailing what we currently support (and maybe don't support) as MatchSpecs. Note that we will probably want to evolve this specification to remove cases like *=*.

Additional Context

No response

jaimergp commented 1 month ago

Fiiine: #82. Just started by copying over the existing docstrings and making it a bit more consistent.