NVIDIA / NVIDIA/cuda-python

Create conda packages from sdist rather than git archives

Open
#2,715 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

triage
Dominant language
Cython
Stars
3.4k
Forks
329
Avg merge
1d 23h
Merged PRs (30d)
116

Description

As cuda-python is a metapackage that combines multiple packages in a monorepo, it is fundamentally incompatible with releasing from a git archive, which may have only one version. Ideally, it would have access to all three versions (cuda-bindings, cuda-core and cuda-pathfinder) and be able to set up its dependencies automatically.

It should be possible to do this from an sdist (where we can inject whatever metadata we want based on tags at sdist-build-time). It is not possible from a git archive, where there is no way to inject metadata beyond what git allows into the tarball.

We should investigate where it is possible to stop supporting git archive. This is currently used for our conda package workflow, but that could probably be modified to expect an sdist instead.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the conda package workflow and the code or configuration that creates or consumes git archives and sdists. Check how version metadata for cuda-bindings, cuda-core, and cuda-pathfinder is produced and how dependencies are assembled. Done means the supported source format and required workflow changes are established, with the conda path validated from an sdist.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.