Skip to content

Commit 85de649

Browse files
committed
Merge upstream/main into fix/1472-token-producer-backend-selector
Co-authored-by: CodeFree <codefree@chinatelcom.cn> Signed-off-by: zhouyou9505 <zhouyou9505@gmail.com>
2 parents cfa3f2f + f61ab91 commit 85de649

357 files changed

Lines changed: 18449 additions & 3404 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 79 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
name: New Release
33
about: Propose a new release
4-
title: Release v0.x.0
5-
labels: ''
4+
title: Release vX.Y.Z
5+
labels: kind/release
66
assignees: ''
77

88
---
@@ -21,19 +21,30 @@ This document defines the process for releasing llm-d-router.
2121

2222
1. Permissions to push to the llm-d-router repository.
2323

24-
1. Set the required environment variables based on the expected release number:
24+
1. Membership in the `@llm-d/router-release-managers` team. Tag protection on
25+
`refs/tags/v*` restricts who can push release tags, which is what triggers
26+
the release build.
2527

26-
```shell
27-
export MAJOR=0
28-
export MINOR=1
29-
export PATCH=0
30-
export REMOTE=origin
31-
```
28+
1. Choose whether you are releasing a release candidate or an official release, and set the environment variables accordingly:
29+
30+
- For a **Release Candidate** (e.g. `v0.9.0-rc.1`):
31+
```shell
32+
export VERSION=v0.9.0-rc.1
33+
export BRANCH_VERSION=0.9
34+
export REMOTE=origin
35+
```
36+
37+
- For an **Official Release** (e.g. `v0.9.0`):
38+
```shell
39+
export VERSION=v0.9.0
40+
export BRANCH_VERSION=0.9
41+
export REMOTE=origin
42+
```
3243

33-
1. If creating a release candidate, set the release candidate number.
44+
1. (Optional) If the latency predictor release version does **not** align with the router version, also set the expected tag (refer to the [latency predictor releases] to find the latest valid release tag):
3445

3546
```shell
36-
export RC=1
47+
export LATENCY_PREDICTOR_TAG=v0.8.0-rc.1
3748
```
3849
1. If needed, clone the llm-d-router [repo].
3950

@@ -45,89 +56,110 @@ This document defines the process for releasing llm-d-router.
4556

4657
### Create or Checkout branch
4758

48-
1. If you already have the repo cloned, ensure its up-to-date and your local branch is clean.
59+
1. If you already have the repo cloned, ensure it's up-to-date and your local branch is clean.
4960
5061
1. Release Branch Handling:
5162
- For a Release Candidate:
52-
Create a new release branch from the `main` branch. The branch should be named `release-${MAJOR}.${MINOR}`, for example, `release-0.1`:
63+
Create a new release branch from the `main` branch. The branch should be named `release-${BRANCH_VERSION}`, for example, `release-0.9`:
5364
5465
```shell
55-
git checkout -b release-${MAJOR}.${MINOR}
66+
git checkout -b release-${BRANCH_VERSION}
5667
```
5768
5869
- For a Major, Minor or Patch Release:
5970
A release branch should already exist. In this case, check out the existing branch:
6071
6172
```shell
62-
git checkout -b release-${MAJOR}.${MINOR} ${REMOTE}/release-${MAJOR}.${MINOR}
73+
git checkout release-${BRANCH_VERSION} ${REMOTE}/release-${BRANCH_VERSION}
6374
```
6475
65-
1. Push your release branch to the llm-d-router remote.
66-
67-
```shell
68-
git push ${REMOTE} release-${MAJOR}.${MINOR}
69-
```
70-
71-
### Tag commit and trigger image build
72-
73-
1. Tag the head of your release branch with the sem-ver release version.
74-
75-
For a release candidate:
76+
1. By default, `LATENCY_PREDICTOR_TAG` in the `Makefile` resolves from the router release tag (via `BUILD_REF`). If the latency predictor tag does **not** align with the router version, update the default value of `LATENCY_PREDICTOR_TAG` in the `Makefile` to match your exported `${LATENCY_PREDICTOR_TAG}`.
77+
Commit the change (if modified):
7678
7779
```shell
78-
git tag -s -a v${MAJOR}.${MINOR}.${PATCH}-rc.${RC} -m 'llm-d-router v${MAJOR}.${MINOR}.${PATCH}-rc.${RC} Release Candidate'
80+
# Update LATENCY_PREDICTOR_TAG ?= vX.Y.Z in Makefile
81+
git commit -a -s -m "release: set LATENCY_PREDICTOR_TAG to ${LATENCY_PREDICTOR_TAG}"
7982
```
8083
81-
For a major, minor or patch release:
84+
1. Push your release branch to the llm-d-router remote.
8285
8386
```shell
84-
git tag -s -a v${MAJOR}.${MINOR}.${PATCH} -m 'llm-d-router v${MAJOR}.${MINOR}.${PATCH} Release'
87+
git push ${REMOTE} release-${BRANCH_VERSION}
8588
```
8689
87-
1. Push the tag to the llm-d-router repo.
90+
### Tag commit and trigger image build
8891
89-
For a release candidate:
92+
1. Tag the head of your release branch with the version:
9093
91-
```shell
92-
git push ${REMOTE} v${MAJOR}.${MINOR}.${PATCH}-rc.${RC}
93-
```
94+
```shell
95+
git tag -s -a ${VERSION} -m "llm-d-router ${VERSION} Release"
96+
```
9497
95-
For a major, minor or patch release:
98+
1. Push the tag to the llm-d-router repo:
9699
97-
```shell
98-
git push ${REMOTE} v${MAJOR}.${MINOR}.${PATCH}
99-
```
100+
```shell
101+
git push ${REMOTE} ${VERSION}
102+
```
100103
101-
1. Pushing the tag triggers CI action to build and publish the [EPP image] and [sidecar image] to the [ghcr registry].
102-
1. Test the steps in the tagged quickstart guide after the PR merges. TODO add e2e tests! <!-- link to an e2e tests once we have such one -->
104+
1. Pushing the tag triggers CI action to build and publish the EPP image (`ghcr.io/llm-d/llm-d-router-endpoint-picker`) and sidecar image (`ghcr.io/llm-d/llm-d-router-disagg-sidecar`) to the [ghcr registry].
105+
1. Verify the [CI release workflow] completed successfully before proceeding.
106+
1. Test the steps in the tagged quickstart guide after the PR merges.
103107
104108
### Create the release!
105109
106110
1. Create a [new release]:
107111
1. Choose the tag that you created for the release.
108-
1. Use the tag as the release title, i.e. `v0.1.0` refer to previous release for the content of the release body.
109-
1. Click "Generate release notes" and preview the release body.
110-
1. Go to Gateway Inference Extension latest release and make sure to include the highlights in llm-d-router as well.
112+
1. Use the tag as the release title, e.g. `v0.1.0`.
113+
1. Click "Generate release notes" to auto-populate the list of PRs and contributors.
114+
1. Summarize the release notes using an LLM of your choice (e.g., Gemini, Copilot, ChatGPT). Provide the newly compiled release notes block from `RELEASE-NOTES.md` (or the unreleased fragments in `release-notes.d/unreleased/`) with the following prompt:
115+
116+
```text
117+
Please summarize these release notes into three clear sections:
118+
1. Highlights (key features, performance wins, bug fixes)
119+
2. Upgrade Steps & Deprecations (configuration changes, deprecated flags/metrics)
120+
3. Known Issues (if any, otherwise omit)
121+
```
122+
123+
Review the generated content, edit it if necessary to ensure accuracy, and then copy and prepend this summary at the very top of the release description box on GitHub.
111124
1. If this is a release candidate, select the "This is a pre-release" checkbox.
112125
1. If you find any bugs in this process, create an [issue].
113126
114127
## Announce the Release
115128
116129
Use the following steps to announce the release.
117130
118-
1. Send an announcement email to `llm-d-contributors@googlegroups.com` with the subject:
131+
1. Generate the announcement email content by running the following block in your terminal (make sure `${VERSION}` is set in your current shell):
119132
120133
```shell
121-
[ANNOUNCE] llm-d-router v${MAJOR}.${MINOR}.${PATCH} is released
134+
cat <<EOF
135+
Subject: [ANNOUNCE] llm-d-router ${VERSION} is released
136+
137+
Hi all,
138+
139+
We are pleased to announce the release of llm-d-router ${VERSION}!
140+
141+
### Container Images
142+
* Endpoint Picker: ghcr.io/llm-d/llm-d-router-endpoint-picker:${VERSION}
143+
* Disaggregated Sidecar: ghcr.io/llm-d/llm-d-router-disagg-sidecar:${VERSION}
144+
145+
### Helm Charts (OCI)
146+
* Standalone Chart: oci://ghcr.io/llm-d/charts/llm-d-router-standalone (version ${VERSION})
147+
* Gateway Chart: oci://ghcr.io/llm-d/charts/llm-d-router-gateway (version ${VERSION})
148+
149+
### Release Notes
150+
For more details, please see the GitHub release notes: https://github.com/llm-d/llm-d-router/releases/tag/${VERSION}
151+
EOF
122152
```
123153
154+
1. Copy the generated subject and body, and send an email to `llm-d-contributors@googlegroups.com`.
155+
124156
1. Add a link to the final release in this issue.
125157
126158
1. Close this issue.
127159
128160
[repo]: https://github.com/llm-d/llm-d-router
129161
[ghcr registry]: https://github.com/orgs/llm-d/packages?repo_name=llm-d-router
130-
[EPP image]: https://github.com/llm-d/llm-d-router/pkgs/container/llm-d-router-endpoint-picker
131-
[sidecar image]: https://github.com/llm-d/llm-d-router/pkgs/container/llm-d-router-disagg-sidecar
132162
[new release]: https://github.com/llm-d/llm-d-router/releases/new
133163
[issue]: https://github.com/llm-d/llm-d-router/issues/new/choose
164+
[CI release workflow]: https://github.com/llm-d/llm-d-router/actions/workflows/ci-release.yaml
165+
[latency predictor releases]: https://github.com/orgs/llm-d/packages?repo_name=llm-d-latency-predictor

.github/actions/docker-build-and-push/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ runs:
5757
tags: |
5858
${{ inputs.registry }}/${{ inputs.image-name }}:${{ inputs.tag }}
5959
${{ inputs.push == 'true' && inputs.prerelease != 'true' && format('{0}/{1}:latest', inputs.registry, inputs.image-name) || '' }}
60+
${{ inputs.commit-sha != '' && format('{0}/{1}:{2}', inputs.registry, inputs.image-name, inputs.commit-sha) || '' }}
6061
build-args: |
6162
LDFLAGS=-s -w
6263
COMMIT_SHA=${{ inputs.commit-sha || 'unknown' }}

.github/workflows/auto-assign.yaml

Lines changed: 0 additions & 84 deletions
This file was deleted.

.github/workflows/ci-pr-checks.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ jobs:
222222
archive: llm-d-router-endpoint-picker
223223
- name: simulator
224224
source: pull
225-
image: ghcr.io/llm-d/llm-d-inference-sim:v0.9.0
225+
image: ghcr.io/llm-d/llm-d-inference-sim:v0.9.2
226226
archive: llm-d-inference-sim
227227
name: e2e-image-common (${{ matrix.image.name }})
228228
steps:
@@ -450,4 +450,4 @@ jobs:
450450
E2E_LABEL_FILTER: ${{ matrix.suite.label-filter }}
451451
LOAD_VLLM_RENDER_IMAGE: ${{ matrix.suite.needs-renderer }}
452452
PULL_VLLM_RENDER_IMAGE: "false"
453-
run: make test-e2e-scheduler-run
453+
run: make test-e2e-router-run

.github/workflows/pr-hold-gate.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Fails a required check while a hold label is present, so /hold (label `hold`)
2+
# and the release-branch auto-hold (label `do-not-merge/hold`) block
3+
# GitHub-native auto-merge. Re-runs on label changes.
4+
5+
name: Hold gate
6+
7+
on:
8+
pull_request:
9+
types: [opened, reopened, synchronize, labeled, unlabeled]
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
hold:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Block merge while held
19+
if: contains(github.event.pull_request.labels.*.name, 'hold') || contains(github.event.pull_request.labels.*.name, 'do-not-merge/hold')
20+
run: |
21+
echo "::error::A hold label is present (hold or do-not-merge/hold). Remove it (/hold cancel) to allow merge."
22+
exit 1

.github/workflows/prow-github.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
permissions:
1010
# Allow labeling issues
1111
issues: write
12-
# Allow adding a review to a pull request
12+
# Allow assigning, labeling, and updating pull requests
1313
pull-requests: write
1414

1515
jobs:
@@ -21,13 +21,11 @@ jobs:
2121
github-token: "${{ secrets.GITHUB_TOKEN }}"
2222
prow-commands: "/assign
2323
/unassign
24-
/approve
2524
/retitle
2625
/area
2726
/kind
2827
/priority
2928
/remove
30-
/lgtm
3129
/close
3230
/reopen
3331
/lock

.github/workflows/prow-pr-automerge.yml

Lines changed: 0 additions & 22 deletions
This file was deleted.

.github/workflows/prow-pr-remove-lgtm.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)