Skip to content

feat: pass run dependencies and run exports#4373

Merged
ruben-arts merged 5 commits intoprefix-dev:mainfrom
baszalmstra:feat/pass_run_dependencies
Aug 18, 2025
Merged

feat: pass run dependencies and run exports#4373
ruben-arts merged 5 commits intoprefix-dev:mainfrom
baszalmstra:feat/pass_run_dependencies

Conversation

@baszalmstra
Copy link
Copy Markdown
Contributor

This PR modifies the build protocol to pass information about:

  • The finalized run dependencies.
  • The finalized run exports.
  • The finalized/specs for the build/host environment.

This is needed in the backends to correctly fill in the index.json inside the constructed package.

This PR should not break any existing CIs. Backends should just silently ignore these fields if they receive it. Another PR in the backends is required to make sure that these fields are picked up properly.

#[serde(rename_all = "camelCase")]
pub struct CondaBuildV1Dependency {
#[serde_as(as = "DisplayFromStr")]
pub spec: MatchSpec,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I opted to return MatchSpec here instead of something that could also be a source record because that is what is eventually stored in the index.json file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense!

Copy link
Copy Markdown
Contributor

@ruben-arts ruben-arts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tested:

  • [x]: run dependencies
  • [x]: weak exports
  • [x]: run constraints
  • [x]: with and without matchspecs

Can't break it!

@ruben-arts ruben-arts merged commit cd6c1da into prefix-dev:main Aug 18, 2025
37 of 38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants