Skip to content

Commit d84e085

Browse files
authored
Merge branch 'main' into issue-1693-filter-span
2 parents e364bc6 + 376c74b commit d84e085

129 files changed

Lines changed: 2273 additions & 606 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.

.github/ISSUE_TEMPLATE/new-release.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ This document defines the process for releasing llm-d-router.
7070
A release branch should already exist. In this case, check out the existing branch:
7171
7272
```shell
73-
git checkout release-${BRANCH_VERSION} ${REMOTE}/release-${BRANCH_VERSION}
73+
git fetch ${REMOTE}
74+
git reset --hard ${REMOTE}/release-${BRANCH_VERSION}
7475
```
7576
7677
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}`.

.github/workflows/ci-dev.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ permissions:
1414

1515
jobs:
1616
set-params:
17+
if: github.event.repository.fork != true
1718
runs-on: ubuntu-latest
1819
outputs:
1920
epp_name: ${{ steps.version.outputs.epp_name }}
@@ -33,6 +34,7 @@ jobs:
3334
echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
3435
3536
build-and-push:
37+
if: github.event.repository.fork != true
3638
needs: set-params
3739
uses: ./.github/workflows/ci-build-images.yaml
3840
with:

.github/workflows/ci-lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
echo "build=$HOME/.cache/llm-d-gobuildcache" >> "$GITHUB_OUTPUT"
7979
8080
- name: Cache Go modules and build cache
81-
uses: actions/cache@v5
81+
uses: actions/cache@v6
8282
with:
8383
path: |
8484
${{ steps.go-cache.outputs.mod }}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
echo "build=$HOME/.cache/llm-d-gobuildcache" >> "$GITHUB_OUTPUT"
8181
8282
- name: Cache Go modules and build cache
83-
uses: actions/cache@v5
83+
uses: actions/cache@v6
8484
with:
8585
path: |
8686
${{ steps.go-cache.outputs.mod }}
@@ -93,7 +93,7 @@ jobs:
9393
# components as new and exits 0.
9494
- name: Restore main branch coverage baseline
9595
if: github.event_name == 'pull_request'
96-
uses: actions/cache/restore@v5
96+
uses: actions/cache/restore@v6
9797
with:
9898
path: coverage/baseline
9999
key: coverage-main
@@ -179,7 +179,7 @@ jobs:
179179
180180
- name: Save coverage baseline (main branch only)
181181
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
182-
uses: actions/cache/save@v5
182+
uses: actions/cache/save@v6
183183
with:
184184
path: coverage/baseline
185185
key: coverage-main

.github/workflows/ci-release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373

7474
- name: Build Artifacts
7575
run: |
76-
make artifacts
76+
make artifacts BUNDLE_VERSION=${{ needs.set-params.outputs.tag }}
7777
7878
- name: Upload Release Assets
7979
env:

.github/workflows/md-link-check.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,30 @@ concurrency:
1818
cancel-in-progress: true
1919

2020
jobs:
21+
22+
check-for-markdown-files:
23+
runs-on: ubuntu-latest
24+
outputs:
25+
src: ${{ steps.filter.outputs.src }}
26+
steps:
27+
- name: Checkout source
28+
uses: actions/checkout@v7
29+
- uses: dorny/paths-filter@v4
30+
id: filter
31+
with:
32+
filters: |
33+
src:
34+
- '**/*.md'
35+
2136
lychee:
2237
name: Check Markdown Links
38+
needs: check-for-markdown-files
2339
# pull_request_target fires even when GITHUB_TOKEN creates the PR (e.g. the
2440
# release-notes bot). pull_request does not. We register pull_request_target
2541
# so bot-created PRs get a "skipped" conclusion that satisfies branch
2642
# protection, but we skip all real work: pull_request already covers human
2743
# PRs, and running twice would cause the concurrency group to cancel one run.
28-
if: github.event_name != 'pull_request_target'
44+
if: github.event_name != 'pull_request_target' && ${{ needs.check-changes.outputs.src == 'true' }}
2945
runs-on: ubuntu-latest
3046

3147
steps:

.github/workflows/release-notes-assemble.yaml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77

88
jobs:
99
assemble:
10+
# RC tags are pre-release; only assemble notes for final releases.
11+
if: ${{ !contains(github.ref_name, '-rc') }}
1012
runs-on: ubuntu-latest
1113
permissions:
1214
contents: read
@@ -45,6 +47,9 @@ jobs:
4547
run: |
4648
set -euo pipefail
4749
50+
# ── Phase 1: read fragments from the tagged commit ──────────
51+
# The checkout step landed us on the tagged commit so that
52+
# fragments merged into main *after* the tag are excluded.
4853
shopt -s nullglob
4954
fragments=( release-notes.d/unreleased/*.md )
5055
if [[ ${#fragments[@]} -eq 0 ]]; then
@@ -54,15 +59,9 @@ jobs:
5459
5560
tmp=$(mktemp)
5661
for f in "${fragments[@]}"; do
57-
# Extract frontmatter values: strip "key: " prefix, take first match.
58-
# Plain field-split breaks on URLs because they contain colons.
5962
pr=$(sed -n 's/^pr: *//p' "$f" | head -1)
6063
url=$(sed -n 's/^url: *//p' "$f" | head -1)
6164
date=$(sed -n 's/^date: *//p' "$f" | head -1)
62-
# Print everything after the second `---` line verbatim — once
63-
# we're past the closing frontmatter marker, a body line that
64-
# happens to be `---` (Markdown horizontal rule) must be kept,
65-
# not counted as a third delimiter.
6665
note=$(awk 'p {print; next} /^---$/ {if (++c == 2) p = 1}' "$f" | sed '/^[[:space:]]*$/d' | tr '\n' ' ' | sed 's/[[:space:]]*$//')
6766
if [[ -z "$pr" || -z "$url" || -z "$date" || -z "$note" ]]; then
6867
echo "Malformed fragment: $f" >&2
@@ -81,17 +80,30 @@ jobs:
8180
done < "$tmp"
8281
printf '\n' >> "$new_section"
8382
83+
# ── Phase 2: branch from main so the PR contains only
84+
# release-notes changes, not unrelated diffs between
85+
# the tagged commit and main HEAD ─────────────────────
86+
git fetch origin main
87+
BRANCH="release-notes/assemble-${TAG}"
88+
git config user.name "${APP_SLUG}[bot]"
89+
git config user.email "${APP_USER_ID}+${APP_SLUG}[bot]@users.noreply.github.com"
90+
git checkout -b "$BRANCH" origin/main
91+
92+
# ── Phase 3: apply release-notes changes on top of main ─
8493
touch RELEASE-NOTES.md
8594
cat "$new_section" RELEASE-NOTES.md > RELEASE-NOTES.md.new
8695
mv RELEASE-NOTES.md.new RELEASE-NOTES.md
96+
git add RELEASE-NOTES.md
8797
88-
git rm -- release-notes.d/unreleased/*.md
98+
# Remove only the fragments captured from the tagged commit,
99+
# not the current main glob which may include post-tag fragments.
100+
# The -f guard skips fragments already absent from main.
101+
for f in "${fragments[@]}"; do
102+
if [[ -f "$f" ]]; then
103+
git rm -- "$f"
104+
fi
105+
done
89106
90-
BRANCH="release-notes/assemble-${TAG}"
91-
git config user.name "${APP_SLUG}[bot]"
92-
git config user.email "${APP_USER_ID}+${APP_SLUG}[bot]@users.noreply.github.com"
93-
git checkout -b "$BRANCH"
94-
git add RELEASE-NOTES.md
95107
git commit -s -m "docs: assemble release notes for ${TAG}"
96108
# Force-push so a re-run (re-tag, manual workflow re-run) overwrites
97109
# the prior branch rather than failing non-fast-forward.

.lychee.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# Ignore transient failures on gnu.org (it sometimes refuses connections)
22
exclude = [
33
"^https://www.gnu.org/software/make/?$",
4-
"^https://www.envoyproxy.io/"
4+
"^https://www.envoyproxy.io/",
5+
"^https://gateway-api-inference-extension.sigs.k8s.io/guides/serving-multiple-inference-pools-latest/",
6+
"^https://github.com/kubernetes-sigs/gateway-api-inference-extension/blob/main/site-src/guides/metrics-and-observability.md"
57
]
68

79
# Per-request timeout in seconds. Sized for slow upstream docs sites

AGENTS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ llm-d Router. Go service that routes inference requests to model-serving pods vi
3030
- The PR addresses that issue and nothing else: no renames, reformatting, refactors, new abstractions, or pattern changes beyond what the issue requires.
3131
- Unrelated improvements belong in their own issue and PR, not folded into this PR. If you spot dead code or unrelated bugs in passing, mention them; don't fix them.
3232
- Self-check on the way out: if the change grew larger than expected or the fix feels hacky, rewrite the clean version before opening the PR.
33+
- Verify the code passs `make presubmit` locally before submitting a PR.
34+
- Always use the project's `.github/PULL_REQUEST_TEMPLATE.md`.
35+
- Document user (not developer) facing changes in the ```release-note``` block. The `release-notes.d/unreleased/*`
36+
file is automatically generated from the block's content - do not create the file directly.
37+
- If you include a test plan section, mark passing tests with [x] so it is clear which ran and passed.
38+
List only new tests - indicate functionality verified, not the test names.
3339

3440
## Code style
3541

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,11 @@ helm-push-standalone: ## Package and push the llm-d-router-standalone Helm chart
362362

363363
##@ Release
364364

365+
BUNDLE_VERSION ?= main-dev
366+
export BUNDLE_VERSION
367+
365368
.PHONY: artifacts
366-
artifacts: yq check-kustomize ## Generate release artifacts (CRD manifests)
369+
artifacts: generate yq check-kustomize ## Generate release artifacts (CRD manifests).
367370
if [ -d artifacts ]; then rm -rf artifacts; fi
368371
mkdir -p artifacts
369372
kubectl kustomize config/crd > artifacts/manifests_all.yaml

0 commit comments

Comments
 (0)