Skip to content

Replace conda-build with rattler-build #47

Open
@vyasr

Description

@vyasr

RAPIDS currently builds conda packages in CI using conda-build. The rattler-build tool is a newer alternative. It is written in Rust, and should be faster than conda-build (I haven't seen any official benchmarks yet, though). It only supports a limited subset of the meta.yaml recipe format, but that subset is designed to still enable all the same features, just with a more limited syntax (see CEPS 13 and 14). conda-build overhead is nontrivial (I've never benchmarked it, but I know it can stretch into multiple minutes beyond the environment solve when doing local CI reproductions), and reducing that would be quite valuable for us in improving our CI turnaround. Moreover, switching to the more restricted syntax described in the above CEPs would be beneficial because it would convert our conda recipes into pure YAML rather than the extended YAML currently used by meta.yaml. That change is important because the YAML extensions currently in our recipe make it impossible to parse or write with standard YAML parsers, which is a big reason why we have struggled to do things like support meta.yaml files in rapids-dependency-file-generator.

We should do a PoC of replacing conda-build with rattler-build in one repo (preferably something reasonably complex like cudf or cugraph) to see what it would take to make this transition, and how much we would benefit.

rattler-build porting progress

Few more:

Follow-up work

I'm going to track a few rattler-build followups here and update as they get resolved:

general

Look into rolling the sccache cache-busting fix for -fdebug-prefix-map into rapids-cmake (xref rapidsai/rapids-cmake#798 (comment))

cudf

rmm

cuvs

  • Relax/extend pin mkl=2023 to mkl>=2023 or similar
  • combine cuvs-bench and cuvs-bench-cpu recipes

kvikio

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions