Skip to content

Fix Python packaging edge cases #17159

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 25, 2025
Merged

Conversation

tiran
Copy link
Contributor

@tiran tiran commented Apr 25, 2025

Address some edge cases with packaging of Python subpackages in vLLM. The vllm/benchmark and vllm/vllm_flash_attn directories were missing __init__.py files. A subdirectory without an __init__.py is considered a namespace package. Because vLLM's pyproject.toml file excludes namespace packages, setuptools' package finder excludes the subpackages vllm.benchmark and vllm.vllm_flash_attn from wheel distributions.

vLLM's wheels still shipped both subpackages, because vLLM also uses setuptools-scm. The build dependency hooks into setuptools and modifies its package finder. The override only works if-and-only-if a source checkout has a .git VCS directory.

This change turns vllm.benchmark and vllm.vllm_flash_attn into regular importable packages and removes namespaces = false from setuptools' package finder configuration. It also changes the finder excludes into finder includes for vllm*, which matches vllm root package and all vllm subpackages.

FIX #15812

Address some edge cases with packaging of Python subpackages in vLLM.
The `vllm/benchmark` and `vllm/vllm_flash_attn` directories were missing
`__init__.py` files. A subdirectory without an `__init__.py` is
considered a namespace package. Because vLLM's `pyproject.toml` file
excludes namespace packages, setuptools' package finder excludes the
subpackages `vllm.benchmark` and `vllm.vllm_flash_attn` from wheel
distributions.

vLLM's wheels still shipped both subpackages, because vLLM also uses
`setuptools-scm`. The build dependency hooks into setuptools and
modifies its package finder. The override only works if-and-only-if a
source checkout has a `.git` VCS directory.

This change turns `vllm.benchmark` and `vllm.vllm_flash_attn` into
regular importable packages and removes `namespaces = false` from
setuptools' package finder configuration. It also changes the finder
excludes into finder includes for `vllm*`, which matches `vllm` root
package and all `vllm` subpackages.

Closes: vllm-project#15812
Signed-off-by: Christian Heimes <[email protected]>
Copy link

👋 Hi! Thank you for contributing to the vLLM project.

💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels.

Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run fastcheck CI which starts running only a small and essential subset of CI tests to quickly catch errors. You can run other CI tests on top of those by going to your fastcheck build on Buildkite UI (linked in the PR checks section) and unblock them. If you do not have permission to unblock, ping simon-mo or khluu to add you in our Buildkite org.

Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging.

To run CI, PR reviewers can either: Add ready label to the PR or enable auto-merge.

🚀

@mgoin mgoin added the ready ONLY add when PR is ready to merge/full CI is needed label Apr 25, 2025
@DarkLight1337 DarkLight1337 merged commit 65e262b into vllm-project:main Apr 25, 2025
62 checks passed
@tiran tiran deleted the package-find branch April 26, 2025 05:13
aarnphm added a commit to aarnphm/vllm that referenced this pull request Apr 26, 2025
jikunshang pushed a commit to jikunshang/vllm that referenced this pull request Apr 29, 2025
lk-chen pushed a commit to lk-chen/vllm that referenced this pull request Apr 29, 2025
adobrzyn pushed a commit to HabanaAI/vllm-fork that referenced this pull request Apr 30, 2025
Signed-off-by: Christian Heimes <[email protected]>
Signed-off-by: Agata Dobrzyniewicz <[email protected]>
RichardoMrMu pushed a commit to RichardoMrMu/vllm that referenced this pull request May 12, 2025
Signed-off-by: Christian Heimes <[email protected]>
Signed-off-by: Mu Huai <[email protected]>
zzzyq pushed a commit to zzzyq/vllm that referenced this pull request May 24, 2025
Signed-off-by: Christian Heimes <[email protected]>
Signed-off-by: Yuqi Zhang <[email protected]>
minpeter pushed a commit to minpeter/vllm that referenced this pull request Jun 24, 2025
Signed-off-by: Christian Heimes <[email protected]>
Signed-off-by: minpeter <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready ONLY add when PR is ready to merge/full CI is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: run on cpu: ModuleNotFoundError: No module named 'vllm.benchmarks'
3 participants