Skip to content

fix(packaging): move rllm git dependency to tool.uv.sources#77

Merged
luyuzhe111 merged 1 commit into
mainfrom
fix/pypi-direct-refs
Jul 1, 2026
Merged

fix(packaging): move rllm git dependency to tool.uv.sources#77
luyuzhe111 merged 1 commit into
mainfrom
fix/pypi-direct-refs

Conversation

@luyuzhe111

Copy link
Copy Markdown
Contributor

Problem

The v0.1.3 PyPI publish workflow failed at the uv publish step:

400 Bad Request: Can't have direct dependency:
rllm @ git+https://github.com/rllm-org/rllm.git ; extra == "rllm"

PyPI rejects direct-reference (git URL) dependencies in uploaded packages. Two extras carried git URLs:

  • [rllm]rllm @ git+... (rllm is not published to PyPI)
  • [verl]rllm-model-gateway @ git+...#subdirectory=... (this package is on PyPI)

allow-direct-references = true only lets hatchling build the wheel locally; it has no effect on PyPI's upload validation.

Fix

  • Declare the rllm git source in [tool.uv.sources] instead of inline in the [rllm] extra. The published wheel metadata becomes a plain Requires-Dist: rllm; extra == 'rllm', while uv pip install -e ".[rllm]" still resolves rllm from GitHub for source installs.
  • Switch the verl extra's rllm-model-gateway pin from the git+subdirectory URL to the PyPI spec >=0.1.0 (already used by the slime extra).

Verification

Built the wheel locally and inspected METADATA — no git+ / direct-reference Requires-Dist lines remain:

Requires-Dist: rllm; extra == 'rllm'
Requires-Dist: rllm-model-gateway>=0.1.0; extra == 'verl'

Notes

  • uv.lock is intentionally not regenerated here — main's lock is already stale and uv lock pulls in a large unrelated dependency cascade; that belongs in a separate PR.
  • After merge, the existing v0.1.3 release/tag (pointing at the pre-fix commit) must be deleted and recreated against main so a fresh, clean artifact is built and published.

PyPI rejects direct-reference (git URL) dependencies in uploaded
packages, which caused the v0.1.3 publish workflow to fail with a 400:
"Can't have direct dependency: rllm @ git+...".

Declare the rllm git source in [tool.uv.sources] instead of inline in
the [rllm] extra, and switch the verl extra's rllm-model-gateway pin
from a git+subdirectory URL to the PyPI spec (>=0.1.0). The published
wheel metadata is now free of git URLs while 'uv pip install -e .[rllm]'
still resolves rllm from GitHub for source installs.
@luyuzhe111 luyuzhe111 requested a review from lyzustc June 29, 2026 23:27
Comment thread pyproject.toml
"flash-attn==2.8.3",
"qwen-vl-utils",
"rllm-model-gateway @ git+https://github.com/rllm-org/rllm.git#subdirectory=rllm-model-gateway",
"rllm-model-gateway>=0.1.0",

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.

It is a long time ago since we release the latest pypi rllm-model-gateway https://pypi.org/project/rllm-model-gateway/. I think we can make a new pypi release after merging rllm-org/rllm#715 so the latest rllm-model-gateway could be installed.

@luyuzhe111 luyuzhe111 merged commit a86d31e into main Jul 1, 2026
5 checks passed
@luyuzhe111 luyuzhe111 deleted the fix/pypi-direct-refs branch July 1, 2026 04:52
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