From 467c815db6df73f0133e3a66f8119a75a776a8ae Mon Sep 17 00:00:00 2001 From: drizzlezyk Date: Tue, 17 Mar 2026 23:28:04 +0800 Subject: [PATCH] [CI] expand issue labeler rules for feature/model triage (#7356) - Replace minimal label rules with a comprehensive keyword-based issue labeler taxonomy. - Add grouped labels for core features and advanced capabilities to improve issue routing. - Expand model-related matching for LLM, multimodal generation, multimodal understanding, audio, and omni scenarios. - Add/normalize regex patterns for common model families (DeepSeek, Kimi, GLM, Qwen, 310p, etc.) to increase auto-label coverage and consistency. ### What this PR does / why we need it? - Expands `.github/issue-labeler.yml` from a minimal set of rules to a richer keyword-based labeling configuration. - Adds grouped label dimensions for: - Core features (e.g., PD disaggregation, KV cache pool, ACLGraph, async scheduler, CPU binding, quantization) - Advanced features (e.g., long sequence, DPC/PCP, MTP/speculative decode) - Model categories (LLM, multimodal generation, multimodal understanding, audio, omni, etc.) - Specific model families (e.g., DeepSeek, Kimi, GLM, Qwen, 310p) - Improves automatic issue triage accuracy and reduces manual label maintenance effort. - Makes issue categorization more consistent for maintainers and contributors. Why needed: - Existing labeler rules were too limited and could not adequately cover current feature/model issue distribution. - Broader and more structured matching helps faster routing, prioritization, and ownership assignment. Fixes #N/A ### Does this PR introduce _any_ user-facing change? - No runtime/API user-facing changes. - This PR only updates GitHub issue automation rules. ### How was this patch tested? - Performed static validation and review of `.github/issue-labeler.yml` structure and regex entries. - Verified that rule groups and label keys are correctly formatted for GitHub issue labeler consumption. - Confirmed that legacy minimal rules were replaced by expanded taxonomy without syntax-breaking YAML changes. - No unit/e2e tests were added because this is repository automation configuration (GitHub labeling rules) rather than application runtime logic. - vLLM version: v0.17.0 - vLLM main: https://github.com/vllm-project/vllm/commit/4034c3d32e30d01639459edd3ab486f56993876d --------- Signed-off-by: drizzlezyk --- .github/issue-labeler.yml | 84 ++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml index f6b1679d..bbb2e183 100644 --- a/.github/issue-labeler.yml +++ b/.github/issue-labeler.yml @@ -1,12 +1,74 @@ -310p: - - '/(310p)/i' -glm5: - - '/(glm5)/i' -qwen3.5: - - '/(qwen3.5)/i' +core-features: + - '/((pd|(prefill[- ]?decode))\s+disaggregation|kv cache pool|aclgraph|async scheduler|cpu binding|quantization)/i' +pd-disaggregation: + - '/((pd|(prefill[- ]?decode))\s+disaggregation)/i' +kv-cache-pool: + - '/(kv cache pool)/i' +aclgraph: + - '/(aclgraph)/i' +async-scheduler: + - '/(async scheduler)/i' +cpu-binding: + - '/(cpu binding)/i' +quantization: + - '/(quantization)/i' +advanced_features: + - '/(long sequence|dpc|pcp|mtp|speculative decode)/i' +long-seq: + - '/(long sequence|dpc|pcp)/i' +mtp/speculative-decode: + - '/(mtp|speculative decode)/i' +eplb: + - '/(eplb)/i' +llm-model: + - '/(deepseek[- ]*(r1|v3(\.2)?)\S*|(kimi k2|kimik2|kimi-k2)(?!\.5)|glm5|qwen3-(?:235b|480b)\S*|Qwen3-(?:32B|8B|30B)\S*|qwen3 next|glm\s*4\.(?![^v\s]*v)\S*)/i' deepseek: - - '/(deepseek)/i' -kimi k2: - - '/(kimi k2|kimik2)(?!\.5)/i' -kimi k2.5: - - '/(kimi k2.5|kimik2.5)/i' \ No newline at end of file + - '/(deepseek[- ]*(r1|v3(\.2)?)\S*)/i' +kimi-k2: + - '/((kimi k2|kimik2|kimi-k2)(?!\.5))/i' +kimi-k2.5: + - '/((kimi k2\.5|kimik2\.5|kimi-k2\.5))/i' +glm5: + - '/(glm5)/i' +qwen3-moe: + - '/(Qwen3-(?:235B|480B)\S*)/i' +qwen3-dense: + - '/(Qwen3-(?:32B|8B|30B)\S*)/i' +qwen3-next: + - '/(qwen3-next)/i' +glm-4: + - '/(glm\s*4\.(?![^v\s]*v)\S*)/i' +multi-modality-generate: + - '/(seedance\S*|seedream\S*|wan\S*|hunyuan\S*|fLux\S*|kimi k2\.5|kimi-k2\.5|kimik2\.5|minimax\S*|qwen-image\S*)/i' +seedance: + - '/(seedance\S*)/i' +seedream: + - '/(seedream\S*)/i' +wan: + - '/(wan\S*)/i' +hunyuan: + - '/(hunyuan\S*)/i' +fLux: + - '/(fLux\S*)/i' +qwen-image: + - '/(qwen-image\S*)/i' +minimax: + - '/(minimax\S*)/i' +multimodal_understanding: + - '/(glm-?4\.\S*v\b|qwen3\.5\S*|deepseek-ocr\S*)/i' +glm-4v: + - '/(glm-?4\.\S*v\b)/i' +qwen-3.5: + - '/(qwen3\.5\S*)/i' +deepseek-ocr: + - '/(deepseek-ocr\S*)/i' +audio-model: + - '/(qwen3-tts\S*)/i' +omni-model: + - '/(qwen3-Omni\S*)/i' +multimodal-unified-autoregress: + - '/(hunyuan\S*|emu\S*)/i' +paddle: + - '/(paddle\S*)/i' +310p: + - '/(310p\S*)/i'