Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate Integration test degradation with [email protected] #276

Open
schuylermartin45 opened this issue Dec 18, 2024 · 4 comments · May be fixed by #281
Open

Investigate Integration test degradation with [email protected] #276

schuylermartin45 opened this issue Dec 18, 2024 · 4 comments · May be fixed by #281
Assignees
Labels
enhancement New feature or request source::maintainer

Comments

@schuylermartin45
Copy link
Collaborator

As discovered in PR #274, the latest version of rattler-build degrades our compatibility to the point where we no longer pass some integration tests.

It is good to see that this early alert system is working as intended! So we need to go in and figure out what happened and if we need to make any improvements to maintain our current level of compatibility.

@schuylermartin45
Copy link
Collaborator Author

Well there's your problem:

65 converted recipes no longer pass the dry-run stage.

@schuylermartin45
Copy link
Collaborator Author

I think I've found the culprit: prefix-dev/rattler-build#1271

@schuylermartin45
Copy link
Collaborator Author

schuylermartin45 commented Dec 18, 2024

The conversion script should default to use .* when the version is ambiguous, but it should also provide a warning.

Here's some example rattler-build output to use for inspiration:

Error: 
  × Failed to parse recipe

Error: 
  × Parsing: an unspecified error occurred.
    ╭─[34:7]
 33 │     - jpeg 9e
 34 │     - zlib 1.2.13
    ·       ─────┬─────
    ·            ╰── This match spec is ambiguous. Do you mean `zlib ==1.2.13` or `zlib 1.2.13.*`?
 35 │     # Optional dependencies
    ╰────

@schuylermartin45
Copy link
Collaborator Author

Welp this just got to be a big PITA:

>>> MatchSpec("foo 1.2.3").version.operator_func
<built-in function eq>
>>> MatchSpec("foo <1.2.3").version.operator_func
<built-in function lt>
>>> MatchSpec("foo ==1.2.3").version.operator_func
<built-in function eq>

CRM relies on Conda's MatchSpec to parse dependencies. It seems instead of being null-able, the operator field is mapped to ==

We used MatchSpec specifically so we didn't have to reinvent the wheel and build a version parser. Oh how the turntables...

@schuylermartin45 schuylermartin45 linked a pull request Jan 3, 2025 that will close this issue
@schuylermartin45 schuylermartin45 linked a pull request Jan 3, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request source::maintainer
Projects
Status: In progress
Development

Successfully merging a pull request may close this issue.

1 participant