Skip to content

Consistent artifact naming across wheels and conda packages #270

@gforsyth

Description

@gforsyth

Problem

In the process of rolling out stable ABI changes and the required additional artifact name elements that required, our artifact naming has diverged into two separate tracks and it's confusing. (xref #42 #204)

e.g.

rmm_conda_cpp_cuda13_x86_64
rmm_conda_python_abi3_x86_64_cu13

rmm_wheel_cpp_librmm_cu13_x86_64
rmm_wheel_python_abi3_x86_64_cu13

Proposed fix

I think the atoms of the artifact name are:

  • project name / repo name
  • package type (conda vs pip)
  • language (cpp or python)
  • package name
  • cpython version (cp311 or pure (or noarch?) or abi3, etc)
  • cuda version (Can use one of cu13 or cuda13, need to decide)
  • architecture (amd64 or arm64)
    • to avoid names like x86_64 that have an underscore in them

To start us off, I'll propose the following template:

{repo}_{pkg_type}_{pkg_lang}_{pkg_name}_{cpython_version}_{cuda_version}_{arch}

So for the disparate examples above, they would now render as:

  • rmm_conda_cpp_librmm_pure_cu13_amd64
  • rmm_conda_python_rmm_abi3_cu13_amd64
  • rmm_wheel_cpp_librmm_pure_cu13_amd64
  • rmm_wheel_python_rmm_abi3_cu13_amd64

Implementation

Changing the naming template is a matter of wrangling some bash in rapids-package-name in gha-tools -- one would hope that since both artifact creation and artifact fetching make use of rapids-package-name, that we could roll out the one change and unify things.

But it might also break all of CI, so instead we can add a rapids-artifact-name (we can bikeshed the name later) and test porting all the libraries over to the more consistent artifact naming, then finally drop the 'old' rapids-package-name implementation.

While these changes are underway, we can also update all artifact naming to use rapids-artifact-name and get away from setting name elements via environment variable.

Items to complete before closing this out:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions