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:
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.
Proposed fix
I think the atoms of the artifact name are:
cp311orpure(ornoarch?) orabi3, etc)cu13orcuda13, need to decide)amd64orarm64)x86_64that have an underscore in themTo 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_amd64rmm_conda_python_rmm_abi3_cu13_amd64rmm_wheel_cpp_librmm_pure_cu13_amd64rmm_wheel_python_rmm_abi3_cu13_amd64Implementation
Changing the naming template is a matter of wrangling some bash in
rapids-package-nameingha-tools-- one would hope that since both artifact creation and artifact fetching make use ofrapids-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-nameimplementation.While these changes are underway, we can also update all artifact naming to use
rapids-artifact-nameand get away from setting name elements via environment variable.Items to complete before closing this out:
rapids-artifact-nametool as described above (feat: addrapids-artifact-namegha-tools#253shared-workflowsso all artifact names can be set from within the ci caller scripts (feat: add override env-var for setting custom artifact name shared-workflows#528)shared-workflowspost-build-cpp-check to allow for passing in package name for explicit call torapids-artifact-name(fix: addpackage_nameinput to cpp-post-build-check shared-workflows#529)rapids-artifact-namefor all rapids artifact naming (pushes and pulls)rapids-artifact-namefor consistent artifact naming rmm#2370rapids-artifact-namefor consistent artifact naming cudf#22327rapids-artifact-namefor consistent artifact naming kvikio#968rapids-artifact-namefor consistent artifact naming raft#3043rapids-artifact-namefor consistent artifact naming cuvs#2136rapids-artifact-namefor consistent artifact naming cuml#8174rapids-artifact-namefor consistent artifact naming cucim#1091rapids-get-pr-artifactas needed so artifacts can be pulledshared-workflowsto expect new artifact naming convention