Contributing#
Building and testing#
It’s recommended to set up a local development environment to build and test before you submit a PR.
Setup development environment#
Theoretically, the vllm-ascend build is only supported on Linux because
vllm-ascend
dependency torch_npu
only supports Linux.
But you can still set up dev env on Linux/Windows/macOS for linting and basic test as following commands:
Run lint locally#
# Choose a base dir (~/vllm-project/) and set up venv
cd ~/vllm-project/
python3 -m venv .venv
source ./.venv/bin/activate
# Clone vllm-ascend and install
git clone https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend
# Install lint requirement and enable pre-commit hook
pip install -r requirements-lint.txt
# Run lint (You need install pre-commits deps via proxy network at first time)
bash format.sh
Run CI locally#
After complete “Run lint” setup, you can run CI locally:
cd ~/vllm-project/
# Run CI need vLLM installed
git clone --branch v0.9.0 https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements/build.txt
VLLM_TARGET_DEVICE="empty" pip install .
cd ..
# Install requirements
cd vllm-ascend
# For Linux:
pip install -r requirements-dev.txt
# For non Linux:
cat requirements-dev.txt | grep -Ev '^#|^--|^$|^-r' | while read PACKAGE; do pip install "$PACKAGE"; done
cat requirements.txt | grep -Ev '^#|^--|^$|^-r' | while read PACKAGE; do pip install "$PACKAGE"; done
# Run ci:
bash format.sh ci
Submit the commit#
# Commit changed files using `-s`
git commit -sm "your commit info"
🎉 Congratulations! You have completed the development environment setup.
Test locally#
You can refer to Testing doc to help you setup testing environment and running tests locally.
DCO and Signed-off-by#
When contributing changes to this project, you must agree to the DCO. Commits must include a Signed-off-by:
header which certifies agreement with the terms of the DCO.
Using -s
with git commit
will automatically add this header.
PR Title and Classification#
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:
[Attention]
for new features or optimization in attention.[Communicator]
for new features or optimization in communicators.[ModelRunner]
for new features or optimization in model runner.[Platform]
for new features or optimization in platform.[Worker]
for new features or optimization in worker.[Core]
for new features or optimization in the core vllm-ascend logic (such as platform, attention, communicators, model runner)[Kernel]
changes affecting compute kernels and ops.[Bugfix]
for bug fixes.[Doc]
for documentation fixes and improvements.[Test]
for tests (such as unit tests).[CI]
for build or continuous integration improvements.[Misc]
for PRs that do not fit the above categories. Please use this sparingly.
Note
If the PR spans more than one category, please include all relevant prefixes.
Others#
You may find more information about contributing to vLLM Ascend backend plugin on docs.vllm.ai. If you find any problem when contributing, you can feel free to submit a PR to improve the doc to help other developers.
Index