From e4580ef25bad62f480fb80675d69652bdaf4a032 Mon Sep 17 00:00:00 2001 From: Andy Anderson Date: Thu, 5 Mar 2026 16:19:56 -0500 Subject: [PATCH 01/12] Initial commit --- .gitattributes | 2 + .github/CODEOWNERS | 5 + .github/ISSUE_TEMPLATE/bug_report.yml | 72 +++++++ .github/ISSUE_TEMPLATE/config.yml | 8 + .github/ISSUE_TEMPLATE/feature_request.yml | 65 ++++++ .github/PULL_REQUEST_TEMPLATE.md | 26 +++ .../actions/docker-build-and-push/action.yml | 54 +++++ .github/actions/trivy-scan/action.yml | 26 +++ .github/dependabot.yml | 71 ++++++ .github/workflows/ci-pr-checks.yaml | 117 ++++++++++ .github/workflows/ci-release.yaml | 53 +++++ .github/workflows/ci-signed-commits.yaml | 9 + .github/workflows/copilot-setup-steps.yml | 20 ++ .github/workflows/link-checker.md | 131 +++++++++++ .github/workflows/non-main-gatekeeper.yml | 8 + .github/workflows/prow-github.yml | 12 ++ .github/workflows/prow-pr-automerge.yml | 8 + .github/workflows/prow-pr-remove-lgtm.yml | 6 + .github/workflows/stale.yaml | 11 + .github/workflows/typo-checker.md | 142 ++++++++++++ .github/workflows/unstale.yaml | 12 ++ .github/workflows/upstream-monitor.md | 138 ++++++++++++ .gitignore | 35 +++ .golangci.yml | 122 +++++++++++ .hadolint.yaml | 24 +++ .pre-commit-config.yaml | 60 ++++++ .prowlabels.yaml | 11 + .yamllint.yml | 8 + CODE_OF_CONDUCT.md | 34 +++ CONTRIBUTING.md | 99 +++++++++ Dockerfile | 25 +++ LICENSE | 201 +++++++++++++++++ Makefile | 107 +++++++++ OWNERS | 8 + PR_SIGNOFF.md | 203 ++++++++++++++++++ README.md | 77 +++++++ SECURITY.md | 39 ++++ _typos.toml | 14 ++ cmd/main.go | 21 ++ deploy/.gitkeep | 1 + docs/upstream-versions.md | 12 ++ go.mod | 3 + hooks/pre-commit | 10 + internal/.gitkeep | 1 + pyproject.toml | 34 +++ 45 files changed, 2145 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/actions/docker-build-and-push/action.yml create mode 100644 .github/actions/trivy-scan/action.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci-pr-checks.yaml create mode 100644 .github/workflows/ci-release.yaml create mode 100644 .github/workflows/ci-signed-commits.yaml create mode 100644 .github/workflows/copilot-setup-steps.yml create mode 100644 .github/workflows/link-checker.md create mode 100644 .github/workflows/non-main-gatekeeper.yml create mode 100644 .github/workflows/prow-github.yml create mode 100644 .github/workflows/prow-pr-automerge.yml create mode 100644 .github/workflows/prow-pr-remove-lgtm.yml create mode 100644 .github/workflows/stale.yaml create mode 100644 .github/workflows/typo-checker.md create mode 100644 .github/workflows/unstale.yaml create mode 100644 .github/workflows/upstream-monitor.md create mode 100644 .gitignore create mode 100644 .golangci.yml create mode 100644 .hadolint.yaml create mode 100644 .pre-commit-config.yaml create mode 100644 .prowlabels.yaml create mode 100644 .yamllint.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 OWNERS create mode 100644 PR_SIGNOFF.md create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 _typos.toml create mode 100644 cmd/main.go create mode 100644 deploy/.gitkeep create mode 100644 docs/upstream-versions.md create mode 100644 go.mod create mode 100755 hooks/pre-commit create mode 100644 internal/.gitkeep create mode 100644 pyproject.toml diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e025bf3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +.github/workflows/*.lock.yml linguist-generated=true merge=ours +.github/workflows/*.campaign.g.md linguist-generated=true merge=ours diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..9363b1b --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,5 @@ +# TODO: Replace with your team's GitHub usernames or team names +# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + +# Default owners for everything in the repo +# * @llm-d/your-team diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..971e0e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,72 @@ +name: Bug Report +description: File a bug report. +title: "[Bug]: " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + - type: input + id: contact + attributes: + label: Contact Details + description: How can we get in touch with you if we need more info? + placeholder: ex. email@example.com + validations: + required: false + + - type: textarea + id: what-happened + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: Describe the bug and expected behavior + validations: + required: true + + - type: input + id: version + attributes: + label: Version + description: What version are you running? (e.g., v0.1.0, commit SHA, or "main") + placeholder: v0.1.0 + validations: + required: true + + - type: textarea + id: reproduce + attributes: + label: Steps to Reproduce + description: How can we reproduce this issue? + placeholder: | + 1. Deploy with config... + 2. Send request to... + 3. Observe error... + validations: + required: true + + - type: textarea + id: environment + attributes: + label: Environment + description: | + Please provide relevant environment details. + placeholder: | + - Kubernetes version: + - Cloud provider: + - GPU type: + - OS: + render: markdown + validations: + required: false + + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be automatically formatted into code. + render: shell + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..da03f04 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Questions & Discussion + url: https://github.com/llm-d/llm-d/discussions + about: Ask questions and discuss ideas in the llm-d community + - name: Slack + url: https://cloud-native.slack.com/archives/llm-d + about: Chat with the community on Slack diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..4e1302d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,65 @@ +name: Feature Request +description: Suggest a new feature or improvement. +title: "[Feature]: " +labels: ["enhancement", "triage"] +body: + - type: markdown + attributes: + value: | + ## Feature Request + + Thank you for suggesting an improvement! Please fill in the details below. + + Before opening a new feature request, please check + [existing issues](https://github.com/llm-d/{{PROJECT_NAME}}/issues) + to see if a similar request already exists. + + - type: textarea + id: problem + attributes: + label: Problem Statement + description: | + What problem does this feature solve? Describe the use case or pain point. + placeholder: "I'm always frustrated when..." + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: | + Describe the solution you'd like. Be as specific as possible about + expected behavior and user experience. + placeholder: "Ideally, it would..." + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Describe any alternative solutions or workarounds you've considered. + validations: + required: false + + - type: dropdown + id: contribution + attributes: + label: Willingness to Contribute + description: Would you be willing to help implement this feature? + options: + - "Yes, I can submit a PR" + - "Yes, with guidance" + - "No, but I can help test" + - "No" + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context, screenshots, links, or references. + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..42516cf --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,26 @@ +## What does this PR do? + + + +## Why is this change needed? + + + +## How was this tested? + + +- [ ] Unit tests added/updated +- [ ] Integration/e2e tests added/updated +- [ ] Manual testing performed + +## Checklist + +- [ ] Commits are signed off (`git commit -s`) per [DCO](PR_SIGNOFF.md) +- [ ] Code follows project [contributing guidelines](CONTRIBUTING.md) +- [ ] Tests pass locally (`make test`) +- [ ] Linters pass (`make lint`) +- [ ] Documentation updated (if applicable) + +## Related Issues + + diff --git a/.github/actions/docker-build-and-push/action.yml b/.github/actions/docker-build-and-push/action.yml new file mode 100644 index 0000000..d2d083a --- /dev/null +++ b/.github/actions/docker-build-and-push/action.yml @@ -0,0 +1,54 @@ +name: Docker Build and Push +description: Build and push multi-arch container image to ghcr.io + +inputs: + image-name: + required: true + description: Image name (e.g., my-project) + tag: + required: true + description: Image tag (e.g., v0.1.0) + github-token: + required: true + description: GitHub token for ghcr.io login + registry: + required: false + description: Container registry + default: ghcr.io/llm-d + platforms: + required: false + description: Target platforms + default: linux/amd64,linux/arm64 + prerelease: + required: false + description: If true, skip tagging as 'latest' + default: "false" + +runs: + using: "composite" + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + run: echo "${{ inputs.github-token }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin + shell: bash + + - name: Build and push image + run: | + if [[ "${{ inputs.prerelease }}" == "true" ]]; then + LATEST_TAG="" + else + LATEST_TAG="-t ${{ inputs.registry }}/${{ inputs.image-name }}:latest" + fi + docker buildx build \ + --platform ${{ inputs.platforms }} \ + --push \ + --annotation "index:org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}" \ + --annotation "index:org.opencontainers.image.licenses=Apache-2.0" \ + -t ${{ inputs.registry }}/${{ inputs.image-name }}:${{ inputs.tag }} \ + ${LATEST_TAG} . + shell: bash diff --git a/.github/actions/trivy-scan/action.yml b/.github/actions/trivy-scan/action.yml new file mode 100644 index 0000000..c493717 --- /dev/null +++ b/.github/actions/trivy-scan/action.yml @@ -0,0 +1,26 @@ +name: Trivy Security Scan +description: Scan container image for HIGH and CRITICAL vulnerabilities + +inputs: + image: + required: true + description: Container image to scan (e.g., ghcr.io/llm-d/my-project:v0.1.0) + severity: + required: false + description: Severity levels to report + default: HIGH,CRITICAL + exit-code: + required: false + description: Exit code when vulnerabilities are found (0 = warn only, 1 = fail) + default: "0" + +runs: + using: "composite" + steps: + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ inputs.image }} + format: table + severity: ${{ inputs.severity }} + exit-code: ${{ inputs.exit-code }} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..257fdd5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,71 @@ +# Canonical Dependabot configuration for llm-d repos +# Copy this file to .github/dependabot.yml in your repo +# +# Covers: Go modules, GitHub Actions, Docker base images +# Remove sections that don't apply to your repo + +version: 2 +updates: + + # Go module updates + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "weekly" + open-pull-requests-limit: 10 + commit-message: + prefix: "deps(go)" + labels: + - "dependencies" + - "release-note-none" + ignore: + # Ignore major and minor updates to Go toolchain + - dependency-name: "go" + update-types: ["version-update:semver-major", "version-update:semver-minor"] + # Ignore major and minor version updates to k8s packages + - dependency-name: "k8s.io/*" + update-types: ["version-update:semver-major", "version-update:semver-minor"] + - dependency-name: "sigs.k8s.io/*" + update-types: ["version-update:semver-major", "version-update:semver-minor"] + # Ignore major updates for all packages + - dependency-name: "*" + update-types: ["version-update:semver-major"] + groups: + kubernetes: + patterns: + - "k8s.io/*" + - "sigs.k8s.io/*" + go-dependencies: + patterns: + - "*" + + # GitHub Actions dependencies + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + labels: + - "dependencies" + - "release-note-none" + commit-message: + prefix: "deps(actions)" + + # Docker base image updates + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + labels: + - "dependencies" + commit-message: + prefix: "deps(docker)" + + # Python dependencies (uncomment if repo uses pip/requirements.txt) + # - package-ecosystem: "pip" + # directory: "/" + # schedule: + # interval: "weekly" + # labels: + # - "dependencies" + # commit-message: + # prefix: "deps(pip)" diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml new file mode 100644 index 0000000..8f2102e --- /dev/null +++ b/.github/workflows/ci-pr-checks.yaml @@ -0,0 +1,117 @@ +name: CI - PR Checks + +on: + pull_request: + branches: + - main + +jobs: + # Detect if PR contains code changes (skip expensive checks for docs-only PRs) + check-code-changes: + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + has_code_changes: ${{ steps.filter.outputs.code }} + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Check for code changes + uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + code: + - '!docs/**' + - '!**/*.md' + - '!LICENSE' + - '!OWNERS' + + # Go: lint, build, and test + lint-and-test: + runs-on: ubuntu-latest + needs: check-code-changes + if: needs.check-code-changes.outputs.has_code_changes == 'true' + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Extract Go version from go.mod + run: sed -En 's/^go (.*)$/GO_VERSION=\1/p' go.mod >> $GITHUB_ENV + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "${{ env.GO_VERSION }}" + cache-dependency-path: ./go.sum + + - name: Download dependencies + run: go mod download + + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v8 + with: + version: v2.8.0 + args: "" + + - name: Build + run: make build + + - name: Test + run: make test + + # Python: lint (only if Python files exist) + python-lint: + runs-on: ubuntu-latest + needs: check-code-changes + if: needs.check-code-changes.outputs.has_code_changes == 'true' + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Check for Python files + id: check-python + run: | + if find . -name "*.py" -not -path "./.git/*" | head -1 | grep -q .; then + echo "has_python=true" >> "$GITHUB_OUTPUT" + else + echo "has_python=false" >> "$GITHUB_OUTPUT" + fi + + - name: Set up Python + if: steps.check-python.outputs.has_python == 'true' + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install ruff + if: steps.check-python.outputs.has_python == 'true' + run: pip install ruff + + - name: Run ruff check + if: steps.check-python.outputs.has_python == 'true' + run: ruff check . + + - name: Run ruff format check + if: steps.check-python.outputs.has_python == 'true' + run: ruff format --check . + + # Container: build (no push) to validate Dockerfile + container-build: + runs-on: ubuntu-latest + needs: check-code-changes + if: needs.check-code-changes.outputs.has_code_changes == 'true' + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build container (no push) + run: | + docker buildx build \ + --platform linux/amd64 \ + --tag test-build:pr-${{ github.event.pull_request.number }} \ + . diff --git a/.github/workflows/ci-release.yaml b/.github/workflows/ci-release.yaml new file mode 100644 index 0000000..02502ef --- /dev/null +++ b/.github/workflows/ci-release.yaml @@ -0,0 +1,53 @@ +name: CI - Release + +on: + push: + tags: + - 'v*' + release: + types: [published] + +permissions: + contents: read + packages: write + +jobs: + docker-build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Set project name from repository + id: meta + run: | + repo="${GITHUB_REPOSITORY##*/}" + echo "project_name=$repo" >> "$GITHUB_OUTPUT" + + - name: Determine tag + id: tag + run: | + if [[ "${GITHUB_EVENT_NAME}" == "release" ]]; then + echo "tag=${GITHUB_REF##refs/tags/}" >> "$GITHUB_OUTPUT" + echo "prerelease=${{ github.event.release.prerelease }}" >> "$GITHUB_OUTPUT" + elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then + echo "tag=${GITHUB_REF##refs/tags/}" >> "$GITHUB_OUTPUT" + echo "prerelease=false" >> "$GITHUB_OUTPUT" + else + echo "tag=latest" >> "$GITHUB_OUTPUT" + echo "prerelease=false" >> "$GITHUB_OUTPUT" + fi + shell: bash + + - name: Build and push + uses: ./.github/actions/docker-build-and-push + with: + image-name: ${{ steps.meta.outputs.project_name }} + tag: ${{ steps.tag.outputs.tag }} + github-token: ${{ secrets.GITHUB_TOKEN }} + prerelease: ${{ steps.tag.outputs.prerelease }} + + - name: Trivy security scan + uses: ./.github/actions/trivy-scan + with: + image: ghcr.io/llm-d/${{ steps.meta.outputs.project_name }}:${{ steps.tag.outputs.tag }} diff --git a/.github/workflows/ci-signed-commits.yaml b/.github/workflows/ci-signed-commits.yaml new file mode 100644 index 0000000..2b374bf --- /dev/null +++ b/.github/workflows/ci-signed-commits.yaml @@ -0,0 +1,9 @@ +name: Check Signed Commits +on: pull_request_target + +jobs: + signed-commits: + uses: llm-d/llm-d-infra/.github/workflows/reusable-signed-commits.yml@main + permissions: + contents: read + pull-requests: write diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 0000000..230707a --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,20 @@ +name: "Copilot Setup Steps" + +on: + workflow_dispatch: + push: + paths: + - .github/workflows/copilot-setup-steps.yml + +jobs: + copilot-setup-steps: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Install gh-aw extension + run: | + curl -fsSL https://raw.githubusercontent.com/githubnext/gh-aw/refs/heads/main/install-gh-aw.sh | bash + + - name: Verify gh-aw installation + run: gh aw version diff --git a/.github/workflows/link-checker.md b/.github/workflows/link-checker.md new file mode 100644 index 0000000..5ed6c29 --- /dev/null +++ b/.github/workflows/link-checker.md @@ -0,0 +1,131 @@ +--- +description: | + AI-powered link checker for pull requests. Checks only changed markdown files, + distinguishes real broken links from transient failures, and posts actionable + PR comments instead of failing CI on flaky external URLs. + +on: + pull_request: + paths: + - "**/*.md" + +permissions: read-all + +network: + allowed: + - defaults + - "*.github.com" + - "*.githubusercontent.com" + +safe-outputs: + add-comment: + add-labels: + allowed: [broken-links] + +tools: + github: + toolsets: [repos, pull_requests] + web-fetch: + bash: [ ":*" ] + +timeout-minutes: 10 +--- + +# Link Checker + +## Job Description + +Your name is ${{ github.workflow }}. You are an **AI-Powered Link Checker** for the repository `${{ github.repository }}`. + +### Mission + +Check markdown links in changed files on pull requests. Distinguish real broken links from transient network issues. Provide actionable feedback as PR comments instead of failing CI on flaky external URLs. + +### Your Workflow + +#### Step 1: Identify Changed Markdown Files + +Get the list of changed markdown files in this PR: + +```bash +gh pr diff ${{ github.event.pull_request.number }} --name-only | grep '\.md$' +``` + +If no markdown files changed, exit cleanly with a message: "No markdown files changed in this PR." + +#### Step 2: Extract and Check Links + +For each changed markdown file: + +1. Extract all links (both `[text](url)` and bare URLs) +2. Categorize links: + - **Internal links**: relative paths to files in the repo (e.g., `./docs/foo.md`, `../README.md`) + - **Anchor links**: `#section-name` references + - **External links**: `https://...` URLs + +3. Check each link: + - **Internal links**: verify the target file exists in the repo using `ls` or `test -f` + - **Anchor links**: verify the heading exists in the target file + - **External links**: use `curl -sL -o /dev/null -w '%{http_code}' --max-time 10` to check + - For external URLs that return 4xx: mark as **definitely broken** + - For external URLs that return 5xx or timeout: retry once after 5 seconds + - For external URLs that still fail after retry: mark as **possibly transient** + +#### Step 3: Classify Results + +Group results into categories: + +- **Broken** (fail): Internal links to non-existent files, 404 external URLs +- **Possibly transient** (warn): External URLs returning 5xx, timeouts, DNS failures +- **OK**: All links that resolve successfully + +#### Step 4: Report + +If there are broken or possibly transient links, post a **single** PR comment summarizing: + +```markdown +## Link Check Results + +### Broken Links (action required) +| File | Line | Link | Status | +|------|------|------|--------| +| docs/foo.md | 42 | [example](https://broken.url) | 404 Not Found | + +### Possibly Transient (may be temporary) +| File | Line | Link | Status | +|------|------|------|--------| +| docs/bar.md | 15 | [api docs](https://flaky.url) | Timeout | + +### Summary +- X broken links found (action required) +- Y possibly transient links found (may resolve on retry) +- Z links checked successfully +``` + +If ALL broken links are external and returned 5xx or timeout (i.e., all "possibly transient"), do NOT add the `broken-links` label. + +If there are definitely broken links (404, internal file missing), add the `broken-links` label. + +If all links are OK, do not post a comment. + +### Domain-Specific Knowledge + +These domains are known to have intermittent availability or require authentication — treat failures as "possibly transient": +- `registry.k8s.io` +- `quay.io` +- `ghcr.io` +- `nvcr.io` +- LinkedIn URLs (always return 999) +- `docs.google.com` (may require auth) + +### Important Rules + +1. Only check files that changed in this PR — never scan the entire repo +2. Always post at most ONE comment per PR run (update existing if re-running) +3. Do not fail the workflow — use comments and labels for feedback +4. Be concise — developers should be able to fix issues quickly from the comment + +### Exit Conditions + +- Exit if no markdown files changed +- Exit if all links are valid diff --git a/.github/workflows/non-main-gatekeeper.yml b/.github/workflows/non-main-gatekeeper.yml new file mode 100644 index 0000000..03bd4d3 --- /dev/null +++ b/.github/workflows/non-main-gatekeeper.yml @@ -0,0 +1,8 @@ +name: Non-Main Gatekeeper +on: + pull_request: + types: [opened, edited, synchronize, reopened] + +jobs: + gatekeeper: + uses: llm-d/llm-d-infra/.github/workflows/reusable-non-main-gatekeeper.yml@main diff --git a/.github/workflows/prow-github.yml b/.github/workflows/prow-github.yml new file mode 100644 index 0000000..6fe0b23 --- /dev/null +++ b/.github/workflows/prow-github.yml @@ -0,0 +1,12 @@ +name: Prow Commands +on: + issue_comment: + types: [created] + +permissions: + issues: write + pull-requests: write + +jobs: + prow: + uses: llm-d/llm-d-infra/.github/workflows/reusable-prow-commands.yml@main diff --git a/.github/workflows/prow-pr-automerge.yml b/.github/workflows/prow-pr-automerge.yml new file mode 100644 index 0000000..b837684 --- /dev/null +++ b/.github/workflows/prow-pr-automerge.yml @@ -0,0 +1,8 @@ +name: Prow Auto-merge +on: + schedule: + - cron: "*/5 * * * *" + +jobs: + auto-merge: + uses: llm-d/llm-d-infra/.github/workflows/reusable-prow-automerge.yml@main diff --git a/.github/workflows/prow-pr-remove-lgtm.yml b/.github/workflows/prow-pr-remove-lgtm.yml new file mode 100644 index 0000000..7625ee2 --- /dev/null +++ b/.github/workflows/prow-pr-remove-lgtm.yml @@ -0,0 +1,6 @@ +name: Prow Remove LGTM +on: pull_request + +jobs: + remove-lgtm: + uses: llm-d/llm-d-infra/.github/workflows/reusable-prow-remove-lgtm.yml@main diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 0000000..af558db --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,11 @@ +name: Mark Stale Issues +on: + schedule: + - cron: '0 1 * * *' + +jobs: + stale: + uses: llm-d/llm-d-infra/.github/workflows/reusable-stale.yml@main + permissions: + issues: write + pull-requests: write diff --git a/.github/workflows/typo-checker.md b/.github/workflows/typo-checker.md new file mode 100644 index 0000000..8a2f7ab --- /dev/null +++ b/.github/workflows/typo-checker.md @@ -0,0 +1,142 @@ +--- +description: | + AI-powered typo checker for pull requests. Checks only changed files, + understands domain-specific terminology (vLLM, NIXL, RDMA, InferencePool, etc.), + and posts fix suggestions as PR review comments with code suggestions. + +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: read-all + +network: defaults + +safe-outputs: + add-comment: + +tools: + github: + toolsets: [repos, pull_requests] + bash: [ ":*" ] + +timeout-minutes: 10 +--- + +# Typo Checker + +## Job Description + +Your name is ${{ github.workflow }}. You are an **AI-Powered Typo Checker** for the repository `${{ github.repository }}`. + +### Mission + +Find and suggest fixes for typos in changed files on pull requests. Unlike traditional regex-based tools, you understand context and domain-specific terminology, reducing false positives while catching real errors. + +### Your Workflow + +#### Step 1: Get Changed Files + +Get the list of changed files in this PR: + +```bash +gh pr diff ${{ github.event.pull_request.number }} --name-only +``` + +Filter to relevant file types (skip binary files, lock files, generated files): +- Include: `*.md`, `*.yml`, `*.yaml`, `*.go`, `*.py`, `*.sh`, `*.txt`, `*.json`, `*.toml` +- Exclude: `*.lock.yml`, `*.lock`, `*_generated*`, `vendor/`, `node_modules/`, `*.pb.go` + +If no relevant files changed, exit cleanly. + +#### Step 2: Get Changed Content + +For each relevant file, get only the added/modified lines: + +```bash +gh pr diff ${{ github.event.pull_request.number }} -- +``` + +Focus on lines starting with `+` (added lines). Do not check removed lines. + +#### Step 3: Check for Typos + +Review each added line for spelling and grammar issues. Consider: + +1. **Real typos**: misspelled common English words +2. **Technical term misspellings**: incorrect capitalization or spelling of well-known tools +3. **Inconsistent naming**: same term spelled differently in the same file + +#### Step 4: Filter False Positives + +The following are NOT typos — do not flag them: + +**llm-d Domain Terms** (correct as-is): +- vLLM, vllm (both valid) +- NIXL, nixl +- RDMA, InfiniBand, RoCE +- InferencePool, InferenceModel +- helmfile, kustomize, kustomization +- ModelService, modelservice +- KV cache, kvcache, kv-cache +- prefill, decode (LLM inference terms) +- DeepEP, DeepGEMM, FlashInfer +- LMCache, lmcache +- disaggregation, disaggregated +- UCX, NVSHMEM, GDRCOPY, gdrcopy +- tensorizer, detensorize +- autoscaler, autoscaling +- CRD, CRDs, CustomResourceDefinition +- OCI, GHCR, ghcr +- Gaudi, HPU, XPU, TPU, ROCm +- InfiniStore, infinistore +- pplx, perplexity +- kubectl, kubeconfig, kubecontext +- ConfigMap, ServiceAccount, ClusterRole, RoleBinding +- HTTPRoute, GRPCRoute, Gateway API +- Istio, kgateway, agentgateway +- Prometheus, Grafana +- HuggingFace, tokenizer + +**Code identifiers**: variable names, function names, class names, config keys, file paths + +**Abbreviations**: args, config, env, repo, deps, infra, prereq, etc. + +**URLs and paths**: anything that looks like a URL or file path + +#### Step 5: Report + +If typos are found, post a **single** PR comment with suggested fixes: + +```markdown +## Typo Check Results + +Found N potential typos in changed files: + +| File | Line | Original | Suggested Fix | +|------|------|----------|---------------| +| docs/getting-started.md | 42 | "teh configuration" | "the configuration" | +| guides/README.md | 15 | "recieve" | "receive" | + +
+Domain terms dictionary (not flagged) + +This checker recognizes llm-d domain terminology. If a valid term was incorrectly flagged, please update the domain dictionary. +
+``` + +If no typos are found, do not post a comment. + +### Important Rules + +1. Only check lines added/modified in this PR — never scan entire files +2. Post at most ONE comment per PR run +3. Be very conservative — false positives are worse than missed typos +4. Never flag code identifiers, config keys, or domain terms +5. Do not fail the workflow — typos are suggestions, not blockers +6. For markdown files, ignore content inside code blocks (``` ... ```) + +### Exit Conditions + +- Exit if no relevant files changed +- Exit if no typos found in changed lines diff --git a/.github/workflows/unstale.yaml b/.github/workflows/unstale.yaml new file mode 100644 index 0000000..5f85771 --- /dev/null +++ b/.github/workflows/unstale.yaml @@ -0,0 +1,12 @@ +name: Unstale Issues +on: + issues: + types: [reopened] + issue_comment: + types: [created] + +jobs: + unstale: + uses: llm-d/llm-d-infra/.github/workflows/reusable-unstale.yml@main + permissions: + issues: write diff --git a/.github/workflows/upstream-monitor.md b/.github/workflows/upstream-monitor.md new file mode 100644 index 0000000..2fb8862 --- /dev/null +++ b/.github/workflows/upstream-monitor.md @@ -0,0 +1,138 @@ +--- +description: | + Monitors upstream dependencies for new releases and breaking changes. + Runs daily to check tracked upstream projects. Creates GitHub issues + when breaking changes are detected that affect this repository's code, + configuration, or CI pipelines. + +on: + schedule: + - cron: "0 3 * * *" + workflow_dispatch: + +permissions: read-all + +network: + allowed: + - defaults + - "api.github.com" + - "github.com" + - "*.githubusercontent.com" + - "pypi.org" + +safe-outputs: + create-issue: + labels: [upstream-breaking-change, automation] + add-labels: + allowed: [upstream-breaking-change, upstream-update, automation, critical, high, medium] + +tools: + github: + toolsets: [repos, issues, search] + web-fetch: + bash: [ ":*" ] + +timeout-minutes: 30 +--- + +# Upstream Dependency Monitor + +## Job Description + +Your name is ${{ github.workflow }}. You are an **Upstream Dependency Monitor** for the repository `${{ github.repository }}`. + +### Mission + +Detect upstream dependency releases that may break builds, deployments, or CI pipelines in this repository — before contributors hit the wall. + +### Tracked Dependencies + +Read the file `docs/upstream-versions.md` to get the current version pins and file locations. That file is the **single source of truth** for what we track. + +If `docs/upstream-versions.md` does not exist or is empty, exit cleanly — there are no tracked dependencies yet. + +### Your Workflow + +#### Step 1: Load Current Pins + +Read `docs/upstream-versions.md` to understand: +- Which version/SHA is currently pinned for each dependency +- Which files contain those pins (Dockerfile, go.mod, helmfile, workflow YAML, etc.) +- The upstream repository for each dependency + +#### Step 2: Check for New Releases + +For each tracked dependency: + +1. Use the GitHub API via bash to check for new releases: + ```bash + gh api repos/{owner}/{repo}/releases/latest --jq '.tag_name' + ``` + +2. For commit-SHA-pinned deps, check if the pinned commit is behind the latest tag: + ```bash + gh api repos/{owner}/{repo}/compare/{pinned_sha}...HEAD --jq '.ahead_by' + ``` + +3. For PyPI packages, check the latest version: + ```bash + curl -s https://pypi.org/pypi/{package}/json | jq -r '.info.version' + ``` + +4. Compare with the version in `docs/upstream-versions.md` + +#### Step 3: Analyze Breaking Changes + +When a new release is detected, analyze it for breaking changes: + +1. **Fetch the changelog/release notes** using web-fetch on the release page +2. **Check the diff between pinned version and latest** for: + - Renamed CLI arguments, flags, or environment variables + - Changed API signatures, function names, or class names + - Modified configuration parameter names or formats + - Helm chart `values.yaml` schema changes + - Removed or renamed exported symbols + - Protocol or wire format changes + - Minimum version requirement bumps (Go, Python, Node, etc.) + +3. **Cross-reference against this repository's usage** by grepping: + ```bash + grep -r "old_name_or_flag" . --include="*.go" --include="*.py" --include="*.yaml" --include="*.yml" --include="*.md" --include="Dockerfile*" --include="*.toml" + ``` + +4. **Classify the impact**: + - **CRITICAL**: Breaks builds or deployments immediately + - **HIGH**: Breaks specific configurations or workflows + - **MEDIUM**: May affect optional features or future upgrades + - **LOW**: Informational — new version available, no breaking changes detected + +#### Step 4: Report Findings + +**For breaking changes (CRITICAL/HIGH):** +Create a GitHub issue with: +- Title: `[Upstream Breaking Change] {project} {old_version} → {new_version}` +- Body: what changed, which files are affected (with paths and line numbers), suggested fixes, links to upstream release notes +- Labels: `upstream-breaking-change`, `critical` or `high` + +**For non-breaking new releases (MEDIUM/LOW):** +Create a GitHub issue with: +- Title: `[Upstream Update] {project} {old_version} → {new_version}` +- Labels: `upstream-update`, `medium` or `low` + +**If no new releases detected:** Exit cleanly, no issues created. + +### Important Rules + +1. **Never create duplicate issues.** Search existing open issues first: + ```bash + gh issue list --label upstream-breaking-change --state open --search "{project}" + gh issue list --label upstream-update --state open --search "{project}" + ``` +2. **Be specific about what breaks.** Map changes to specific files in the repo. +3. **Always include the upstream release URL** in the issue body. +4. **Watch for transitive breaks** — e.g., a Go dependency bump that requires a newer Go version. + +### Exit Conditions +- Exit if `docs/upstream-versions.md` does not exist or is empty +- Exit if no upstream projects have new releases since last check +- Exit if GitHub API rate limits are exceeded (log a warning) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..12af59e --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# Binaries +*.exe +*.dll +*.so +*.dylib +bin/ + +# Test +*.test +*.out +coverage.txt +coverage.html + +# Go workspace +go.work +go.work.sum + +# Build output +/build + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Environment +.env +.envrc +.secrets.env +vendor/ diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..70ad8aa --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,122 @@ +version: "2" +run: + concurrency: 4 + go: "" + modules-download-mode: readonly + issues-exit-code: 1 + tests: true +output: + formats: + text: + path: stdout + print-linter-name: true + print-issued-lines: false + colors: false +linters: + default: none + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - contextcheck + - durationcheck + - errcheck + - errname + - errorlint + - ginkgolinter + - gocritic + - godot + - gosec + - govet + - grouper + - importas + - ineffassign + - lll + - loggercheck + - makezero + - misspell + - nakedret + - nestif + - nilerr + - nilnil + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - prealloc + - predeclared + - promlinter + - reassign + - revive + - staticcheck + # - tagliatelle + - testableexamples + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - usestdlibvars + - varnamelen + - whitespace + settings: + errcheck: + check-type-assertions: true + check-blank: true + gocritic: + enabled-tags: + - diagnostic + - experimental + - opinionated + - performance + - style + lll: + line-length: 130 + nakedret: + max-func-lines: 1 + revive: + rules: + - name: dot-imports + disabled: true + staticcheck: + checks: + - all + varnamelen: + max-distance: 20 + min-name-length: 2 + check-type-param: true + ignore-type-assert-ok: true + ignore-map-index-ok: true + ignore-chan-recv-ok: true + ignore-decls: + - c echo.Context + - t *testing.T + - w http.ResponseWriter + - r *http.Request + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + paths: + - third_party$ + - builtin$ + - examples$ +issues: + max-issues-per-linter: 0 + max-same-issues: 0 + uniq-by-line: false + fix: false +formatters: + enable: + - gofumpt + - goimports + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ \ No newline at end of file diff --git a/.hadolint.yaml b/.hadolint.yaml new file mode 100644 index 0000000..f528647 --- /dev/null +++ b/.hadolint.yaml @@ -0,0 +1,24 @@ +--- +failure-threshold: warning # only fail on warnings and errors, not info + +ignored: + # already ignored in pre-commit + - DL3008 # pin versions for apt-get + - DL3009 # delete apt-get cache + + # workflow/build patterns + - DL3003 # use WORKDIR instead of cd + - DL3059 # multiple consecutive RUN instructions + - DL4001 # using both wget and curl + + # package manager preferences + - DL3015 # avoid additional packages (--no-install-recommends) + - DL3041 # specify version with dnf install + - DL3042 # avoid cache directory with pip + - DL3047 # wget without progress bar + + # shellcheck rules embedded in hadolint + - SC1091 # not following sourced files + - SC2034 # variable appears unused + - SC2046 # quote to prevent word splitting + - SC2086 # double quote to prevent globbing diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..8dbc2ec --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,60 @@ +# Canonical pre-commit configuration for llm-d repos +# Copy this file to the root of your repo +# +# Install: pip install pre-commit && pre-commit install +# Run all: pre-commit run --all-files + +repos: + # General file hygiene hooks + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + args: [--unsafe] # allows custom YAML tags used in k8s + - id: check-json + - id: check-added-large-files + args: [--maxkb=1000] + - id: check-merge-conflict + - id: mixed-line-ending + - id: check-case-conflict + + # Shell script linting (requires shellcheck installed) + - repo: local + hooks: + - id: shellcheck + name: shellcheck + language: system + entry: shellcheck + args: [-x, --severity=warning] + types: [shell] + + # Dockerfile linting (requires hadolint installed) + - repo: local + hooks: + - id: hadolint-docker + name: hadolint + language: system + entry: hadolint + args: [--failure-threshold, error] + files: Dockerfile(\\..*)?$ + types: [file] + + # Markdown linting + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: v0.47.0 + hooks: + - id: markdownlint + args: [--fix] + + # YAML linting + - repo: https://github.com/adrienverge/yamllint + rev: v1.37.1 + hooks: + - id: yamllint + args: + - -d + - >- + {extends: default, rules: {line-length: {max: 250}, + document-start: disable, truthy: {check-keys: false}}} diff --git a/.prowlabels.yaml b/.prowlabels.yaml new file mode 100644 index 0000000..e1cace9 --- /dev/null +++ b/.prowlabels.yaml @@ -0,0 +1,11 @@ +# Labels for labeling issues and pull requests using GitHub prow action. +kind: + - 'bug' + - 'security' + - 'feature' + - 'docs' + +priority: + - 'p0' + - 'p1' + - 'p2' diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..54e476d --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,8 @@ +# YAML lint configuration for Kubernetes-heavy repos +extends: default +rules: + line-length: + max: 250 + document-start: disable + truthy: + check-keys: false diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..576122c --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,34 @@ +## Code of Conduct and Covenant + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.Attribution +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at + +For answers to common questions about this code of conduct, see diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9774c91 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,99 @@ +## Contributing Guidelines + +Thank you for your interest in contributing to this project. Community involvement is highly valued and crucial for the project's growth and success. This project accepts contributions via GitHub pull requests. This document outlines the process to help get your contribution accepted. + +To ensure a clear direction and cohesive vision for the project, the project leads have the final decision on all contributions. However, these guidelines outline how you can contribute effectively. + +## How You Can Contribute + +There are several ways you can contribute: + +* **Reporting Issues:** Help us identify and fix bugs by reporting them clearly and concisely. +* **Suggesting Features:** Share your ideas for new features or improvements. +* **Improving Documentation:** Help make the project more accessible by enhancing the documentation. +* **Submitting Code Contributions:** Code contributions that align with the project's vision are always welcome. + +## Code of Conduct + +This project adheres to the [Code of Conduct and Covenant](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. + +## Community and Communication + +* **Developer Slack:** [Join our developer Slack workspace](https://llm-d.ai/slack) to connect with the core maintainers and other contributors, ask questions, and participate in discussions. +* **Weekly Meetings:** Project updates, ongoing work discussions, and Q&A will be covered in our weekly project meetings. Please join by [adding the shared calendar](https://red.ht/llm-d-public-calendar). You can also [join our Google Group](https://groups.google.com/g/llm-d-contributors) for access to shared content. +* **Code:** Hosted in the [llm-d](https://github.com/llm-d) GitHub organization +* **Issues:** Project-scoped bugs or issues should be reported in this repo or in [llm-d/llm-d](https://github.com/llm-d/llm-d) +* **Mailing List:** [llm-d-contributors@googlegroups.com](mailto:llm-d-contributors@googlegroups.com) + +## Contributing Process + +We follow a **lazy consensus** approach: changes proposed by people with responsibility for a problem, without disagreement from others, within a bounded time window of review by their peers, should be accepted. + +### Types of Contributions + +#### 1. Features with Public APIs or New Components + +All features involving public APIs, behavior between core components, or new core subsystems must be accompanied by an **approved project proposal**. + +**Process:** + +1. Create a pull request adding a proposal document under `./docs/proposals/` with a descriptive name +2. Include these sections: Summary, Motivation (Goals/Non-Goals), Proposal, Design Details, Alternatives +3. Get review from impacted component maintainers +4. Get approval from project maintainers + +#### 2. Fixes, Issues, and Bugs + +For changes that fix broken code or add small changes within a component: + +* All bugs and commits must have a clear description of the bug, how to reproduce, and how the change is made +* Any other changes can be proposed in a pull request — a maintainer must approve the change +* For moderate size changes, create an RFC issue in GitHub, then engage in Slack + +## Code Review Requirements + +* **All code changes** must be submitted as pull requests (no direct pushes) +* **All changes** must be reviewed and approved by a maintainer other than the author +* **All repositories** must gate merges on compilation and passing tests +* **All experimental features** must be off by default and require explicit opt-in + +## Commit and Pull Request Style + +* **Pull requests** should describe the problem succinctly +* **Rebase and squash** before merging +* **Use minimal commits** and break large changes into distinct commits +* **Commit messages** should have: + * Short, descriptive titles + * Description of why the change was needed + * Enough detail for someone reviewing git history to understand the scope +* **DCO Sign-off**: All commits must include a valid DCO sign-off line (`Signed-off-by: Name `) + * Add automatically with `git commit -s` + * See [PR_SIGNOFF.md](PR_SIGNOFF.md) for configuration details + * Required for all contributions per [Developer Certificate of Origin](https://developercertificate.org/) + +## Code Organization and Ownership + +* **Components** are the primary unit of code organization +* **Maintainers** own components and approve changes +* **Contributors** can become maintainers through sufficient evidence of contribution +* Code ownership is reflected in [OWNERS files](https://go.k8s.io/owners) consistent with Kubernetes project conventions + +## Testing Requirements + +We use three tiers of testing: + +1. **Unit tests**: Fast verification of code parts, testing different arguments +2. **Integration tests**: Testing protocols between components and built artifacts +3. **End-to-end (e2e) tests**: Whole system testing including benchmarking + +Strong e2e coverage is required for deployed systems to prevent performance regression. Appropriate test coverage is an important part of code review. + +## Security + +See [SECURITY.md](SECURITY.md) for our vulnerability disclosure process. + +## API Changes and Deprecation + +* **No breaking changes**: Once an API/protocol is in GA release, it cannot be removed or behavior changed +* **Versioning**: All protocols and APIs should be versionable with clear compatibility requirements +* **Documentation**: All APIs must have documented specs describing expected behavior diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5f9f6b8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# Multi-stage build for {{PROJECT_NAME}} +# Supports multi-arch: linux/amd64, linux/arm64 + +# --- Build stage --- +FROM golang:1.24 AS builder + +WORKDIR /workspace + +# Cache dependencies +COPY go.mod go.sum ./ +RUN go mod download + +# Copy source and build +COPY . . +RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /workspace/app . + +# --- Runtime stage --- +FROM gcr.io/distroless/static:nonroot + +WORKDIR / +COPY --from=builder /workspace/app . + +USER 65532:65532 + +ENTRYPOINT ["/app"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6eb49c6 --- /dev/null +++ b/Makefile @@ -0,0 +1,107 @@ +# Project configuration +# TODO: Replace {{PROJECT_NAME}} with your project name +PROJECT_NAME ?= {{PROJECT_NAME}} +REGISTRY ?= ghcr.io/llm-d +IMAGE ?= $(REGISTRY)/$(PROJECT_NAME) +VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") +PLATFORMS ?= linux/amd64,linux/arm64 + +# Go configuration +GOFLAGS ?= +LDFLAGS ?= -s -w -X main.version=$(VERSION) + +# Tools +GOLANGCI_LINT_VERSION ?= v2.8.0 + +.DEFAULT_GOAL := help + +##@ General + +.PHONY: help +help: ## Show this help message + @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-20s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) + +##@ Development + +.PHONY: build +build: ## Build the Go binary + go build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o bin/$(PROJECT_NAME) . + +.PHONY: test +test: ## Run tests with race detection + go test -race -count=1 ./... + +.PHONY: test-coverage +test-coverage: ## Run tests with coverage report + go test -race -coverprofile=coverage.out -covermode=atomic ./... + go tool cover -html=coverage.out -o coverage.html + +.PHONY: lint +lint: lint-go lint-python ## Run all linters + +.PHONY: lint-go +lint-go: ## Run Go linter (golangci-lint v2) + golangci-lint run + +.PHONY: lint-python +lint-python: ## Run Python linter (ruff) — skipped if no Python files found + @if ls *.py **/*.py 2>/dev/null | head -1 > /dev/null 2>&1; then \ + ruff check . && ruff format --check .; \ + else \ + echo "No Python files found, skipping Python lint"; \ + fi + +.PHONY: fmt +fmt: ## Format Go and Python code + gofmt -w . + @if ls *.py **/*.py 2>/dev/null | head -1 > /dev/null 2>&1; then \ + ruff format .; \ + fi + +.PHONY: generate +generate: ## Run go generate + go generate ./... + +.PHONY: vet +vet: ## Run go vet + go vet ./... + +.PHONY: tidy +tidy: ## Run go mod tidy + go mod tidy + +.PHONY: pre-commit +pre-commit: ## Run pre-commit hooks on all files + pre-commit run --all-files + +##@ Container + +.PHONY: image-build +image-build: ## Build multi-arch container image (local only) + docker buildx build \ + --platform $(PLATFORMS) \ + --tag $(IMAGE):$(VERSION) \ + --tag $(IMAGE):latest \ + . + +.PHONY: image-push +image-push: ## Build and push multi-arch container image + docker buildx build \ + --platform $(PLATFORMS) \ + --push \ + --annotation "index:org.opencontainers.image.source=https://github.com/llm-d/$(PROJECT_NAME)" \ + --annotation "index:org.opencontainers.image.licenses=Apache-2.0" \ + --tag $(IMAGE):$(VERSION) \ + --tag $(IMAGE):latest \ + . + +##@ CI Helpers + +.PHONY: ci-lint +ci-lint: ## CI: install and run golangci-lint + @which golangci-lint > /dev/null 2>&1 || go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) + golangci-lint run + +.PHONY: clean +clean: ## Remove build artifacts + rm -rf bin/ coverage.out coverage.html diff --git a/OWNERS b/OWNERS new file mode 100644 index 0000000..8ce2c38 --- /dev/null +++ b/OWNERS @@ -0,0 +1,8 @@ +# TODO: Replace with your team's GitHub usernames +# See https://go.k8s.io/owners for format documentation + +reviewers: + # - github-username + +approvers: + # - github-username diff --git a/PR_SIGNOFF.md b/PR_SIGNOFF.md new file mode 100644 index 0000000..cfc0d4c --- /dev/null +++ b/PR_SIGNOFF.md @@ -0,0 +1,203 @@ +# Git Commit Signoff and Signing + +**NOTE**: "sign-off" is different from "signing" a commit. The former +indicates your assent to the repository's terms for contributors, the +latter adds a cryptographic signature that is rarely displayed. See +[the git +book](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) +about signing. For commit signoff, do a web search on `git +signoff`. GitHub has a concept of [a commit being +"verified"](https://docs.github.com/en/authentication/managing-commit-signature-verification) +that extends the Git concept of signing. + +In order to get a pull request approved, you must first complete a DCO +sign-off for each commit that the request is asking to add to the +repository. This process is defined by the CNCF, and there are two +cases: individual contributors and contributors that work for a +corporate CNCF member. Both mean consent with the terms stated in [the +`DCO` file at the root of this Git +repository](https://github.com/llm-d/llm-d/blob/main/DCO). In +the case of an individual, DCO sign-off is accomplished by doing a Git +"sign-off" on the commit. + +We prefer that commits contributed to this repository be signed and +GitHub verified, but this is not strictly necessary or enforced. + +## Commit Sign-off + +Your submitted PR must pass the automated checks in order to be merged. One of these checks that each commit that you propose to contribute is signed-off. If you use the `git` shell command, this involves passing the `-s` flag on the command line. For example, the following command will create a signed-off commit but _not_ sign it. + +```shell +git commit -s +``` + +Alternatively, the following command will create a commit that is both signed-off and signed. + +```shell +git commit -s -S +``` + +For other tools, consult their documentation. + +## Signing Commits + +Before signing any commits, you must have a GPG or SSH key. Basic setup instructions can be found below (For more detailed instructions, refer to the Github [GPG](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key) and [SSH](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key) setup pages.) + +To sign a particular commit, you must either include `-S` on the `git commit` command line (see the command exhibited above for an example) or have configured automatic signing (see ["Everyone Must Sign" in the Git Book](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work#_everyone_must_sign) for a hint about that). + +Before starting, make sure that your user email is verified on Github. To check for this: + +1. Login to Github and navigate to your Github **Settings** page +2. In the sidebar, open the **Emails** tab +3. Emails associated with Github should be listed at the top of the page under the "Emails" label +4. An unverified email would have an "Unverified" label under it in orange text +5. To verify, click **Resend verification email** and follow its prompts +6. Navigate back to your **Emails** page, if the "Unverified" label is no longer there, then you're good to go! + +
+ +For Windows users, **Git Bash** is also highly recommended. + +
+ +## Setting up the GPG Key + +1. Install GnuPG (the GPG command line tool). + - Binary releases for your specific OS can be found + [on the GnuPG download page](https://www.gnupg.org/download/) after scrolling down to the Binary Releases + section (i.e. Gpg4win on Windows, Mac GPG for MacOS, etc). + - After downloading the installer, follow the prompts to set up GnuPG. + +2. Open Git Bash (or your CLI of choice) and use the following command to generate your GPG key pair: + + ```shell + gpg --full-generate-key + ``` + +3. If prompted to specify the size, type, and duration of the key that you want, press `Enter` to select the default option. +4. Once prompted, enter your user info and a passphrase: + - Make sure to list your email as the same one that's verified by Github +5. Use the following command to list the long form of your generated GPG keys: + + ```shell + gpg --list-secret-keys --keyid-format=long + ``` + + - Your GPG key ID should be the characters on the output line starting with `sec`, beginning directly after the `/` and ending before the listed date. + - For example, in the output below (from the Github [GPG](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key) setup page), the GPG key ID would be `3AA5C34371567BD2` + + ```shell + $ gpg --list-secret-keys --keyid-format=long + /Users/hubot/.gnupg/secring.gpg + ------------------------------------ + sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] + uid Hubot + ssb 4096R/4BB6D45482678BE3 2016-03-10 + ``` + +6. Copy your GPG key ID and run the command below, replacing `[your_GPG_key_ID]` with the key ID you just copied: + + ```shell + gpg --armor --export [your_GPG_key_ID] + ``` + +7. This should generate an output with your GPG key. Copy the characters starting from `-----BEGIN PGP PUBLIC KEY BLOCK-----` and ending at `--END PGP PUBLIC KEY BLOCK-----` (inclusive) to your clipboard. +8. After copying or saving your GPG key, navigate to **Settings** in your Github +9. Navigate to the **SSH and GPG keys** page under the Access section in the sidebar +10. Under GPG keys, select **New GPG key** + - Enter a suitable name for your key under "Title" and paste your GPG key that you copied/saved in **Step 7** under "Key". + - Once done, click **Add GPG key** +11. Your new GPG key should now be displayed under GPG keys. + +
+ +## Setting up the SSH Key + +1. Open Git Bash (or your CLI of choice) and use the following command to generate your new SSH key (make sure to replace `your_email` with your Github-verified email address): + + ```shell + ssh-keygen -t ed25519 -C "your_email" + ``` + +2. Press `Enter` to select the default option if prompted to set a save-file or passphrase for the key (you may choose to enter a passphrase if desired; this will prompt you to enter the passphrase every time you perform a DCO sign-off). + - The following output should generate a `randomart` image +3. Use the following command to copy the **public** part of the new SSH key to your clipboard: + + ```shell + clip < ~/.ssh/id_ed25519.pub + ``` + + Note: If you are in a WSL shell, use instead + + ```shell + clip.exe < ~/.ssh/id_ed25519.pub + ``` + +4. After copying or saving your SSH key, navigate to **Settings** in your Github. +5. Navigate to the **SSH and GPG keys** page under the Access section in the sidebar. +6. Under SSH keys, select **New SSH key**. + - Enter a suitable name for your key under "Title" (it'll pick up the email address if left empty) + - Open the dropdown menu under "Key type" and select **Signing Key** + - Paste your SSH public key that you copied/saved in **Step 3** under "Key" +7. Your new SSH key should now be displayed under SSH keys, in the **Signing Key** section. +8. **Optional**: If you want to use the same SSH or GPG key for authentication as well, repeat steps above, selecting **Authentication** as the "Key type". +9. **Optional**: To test if your SSH key is connecting properly or not, run the following command in your CLI (more specific instructions can be found in the [Github documentation](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection)): + + ```shell + ssh -T git@github.com + ``` + + - If given a warning saying something like `The authenticity of the host '[host IP]' can't be established` along + with a key fingerprint and a prompt to continue, verify if the provided key fingerprint matches any of those + listed [in GitHub's SSH key fingerprints documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints) + - Once you've verified the match, type `yes` + - If the resulting message says something along the lines of `Hi [User]! You've successfully authenticated, but GitHub does not provide shell access.`, then it means your SSH key is up and ready. + - If you get an error saying something like `Error: Permission denied (publickey)` repeat the procedure in step 6 _with the same key_ only select **Authentication Key**. Then try the test command again. + +
+ +## Creating Pull Requests Using the GitHub Website + +This is not recommended for individual contributors, because the commits that it produces are not "signed-off" (as defined by Git) and thus do not carry assent to the DCO; see [Repairing commits](#repairing-commits) below for a way to recover if you have inadvertently made such a PR. For corporate contributors the DCO assent is indicated differently. + +Whether it's editing files from llm-d.ai or directly from the llm-d Github, there are a couple steps to follow that streamlines the workflow of your PR: + +1. Changes made to any file are automatically committed to a new branch in your fork. + - After clicking **Commit changes...**, write your commit message summary line and any extended description that you want. Then click **Propose changes**, review your changes, and then create the PR. + - When making the PR, make sure to specify the type of PR at the beginning of the PR's title (i.e. :bug: if it addresses a bug-type issue) + +1. If the PR addresses a specific issue that has already been opened in GitHub, make sure to include the open issue number in **Related Issue(s)** (i.e. `Fixes #NNNN`); this will cause GitHub to automatically close the Issue once the PR is merged. If you have finished addressing an open issue without getting it automatically closed then explicitly close it. + +## Repairing commits + +If you have already created a PR that proposes to merge a branch that +adds commits that are not signed-off then you can repair this (and +lack of signing, if you choose) by adding the signoff to each using +`git commit -s --amend` on each of them. If you also want those +commits signed then you would use `git commit -s -S --amend` or +configure automatic signing. Following is an outline of how to do it +for a branch that adds **exactly one** commit. If your branch adds +more than one commit then you can extrapolate using `git cherry-pick -s -S` +(or `git rebase -i HEAD~NN` and setting commits to `edit`) to build up a +revised series of commits one-by-one. + +The following instructions provide a basic walk-through if you have already created your own fork of the repository but yet not made a clone on your workstation. + +1. Navigate to the **Code** page of the llm-d github. + +2. Click the **Fork** dropdown in the top right corner of the page. + - Under "Existing Forks" click your fork (should look something like "your_username/llm-d") +3. Once in your fork, click the **Code** dropdown. + - Under the "Local" tab at the top of the dropdown, select the SSH tab + - Copy the SSH repo URL to your clipboard +4. Open Git Bash (or your CLI of choice), create or change to a different directory if desired. +5. Clone the repository using `git clone` followed by pasting the URL you just copied. +6. Change your directory to the llm-d repo using `cd llm-d`. +7. `git checkout` to the branch in your fork where the changes were committed. + - The branch name should be written at the top of your submitted PR page and looks something like "patch-_X_" (where "X" should be the number of PRs made on your fork to date) +8. Once in your branch, type `git commit -s --amend` to sign off your PR. + - The commit will also be signed if either you have set up automatic signing or both include the `-S` flag on that command and have set up your SSH or GPG key. + - You may extend that command with `-m` followed by a quoted commit message if you desire. Otherwise `git` will pop up an editor for you to use in making any desired adjustment to the commit message. After making any desired changes, save and exit the editor. FYI: in `vi` (which GitBash uses), when it is in Command mode (which is the normal mode, and contrasts with Insert mode) the keystrokes `:wq!` will attempt to save and then will exit no matter what. +9. Type `git push -f origin [branch_name]`, replacing `[branch_name]` with the actual name of your branch. +10. Navigate back to your PR github page. + - A green `dco-signoff: yes` label indicates that your PR is successfully signed diff --git a/README.md b/README.md new file mode 100644 index 0000000..395972f --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# {{PROJECT_NAME}} + + + + +[![CI](https://github.com/llm-d/{{PROJECT_NAME}}/actions/workflows/ci-pr-checks.yaml/badge.svg)](https://github.com/llm-d/{{PROJECT_NAME}}/actions/workflows/ci-pr-checks.yaml) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + +> **One-line description of what this project does.** + +## Overview + + + +## Prerequisites + +- Go 1.24+ +- Docker (for container builds) +- [pre-commit](https://pre-commit.com/) (for local development) + +## Quick Start + +```bash +# Clone the repo +git clone https://github.com/llm-d/{{PROJECT_NAME}}.git +cd {{PROJECT_NAME}} + +# Install pre-commit hooks +pre-commit install + +# Build +make build + +# Run tests +make test + +# Run linters +make lint +``` + +## Development + +See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines, coding standards, and how to submit changes. + +### Common Commands + +```bash +make help # Show all available targets +make build # Build the project +make test # Run tests with race detection +make lint # Run Go and Python linters +make fmt # Format Go and Python code +make image-build # Build multi-arch container image +make pre-commit # Run pre-commit hooks +``` + +## Architecture + + + +## Configuration + + + +## Contributing + +We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. + +All commits must be signed off (DCO). See [PR_SIGNOFF.md](PR_SIGNOFF.md) for instructions. + +## Security + +To report a security vulnerability, please see [SECURITY.md](SECURITY.md). + +## License + +This project is licensed under the Apache License 2.0 - see [LICENSE](LICENSE) for details. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..4de70ea --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,39 @@ +## Security Announcements + +Join the [llm-d-security-announce](https://groups.google.com/u/1/g/llm-d-security-announce) group for emails about security and major API announcements. + +## Report a Vulnerability + +We're extremely grateful for security researchers and users that report vulnerabilities to the llm-d Open Source Community. All reports are thoroughly investigated by a set of community volunteers. + +You can email the private [llm-d-security-reporting@googlegroups.com](mailto:llm-d-security-reporting@googlegroups.com) list with the security details and the details expected for [all llm-d bug reports](.github/ISSUE_TEMPLATE/bug.yml). + +### When Should I Report a Vulnerability? + +- You think you discovered a potential security vulnerability in llm-d +- You are unsure how a vulnerability affects llm-d +- You think you discovered a vulnerability in another project that llm-d depends on + - For projects with their own vulnerability reporting and disclosure process, please report it directly there + +### When Should I NOT Report a Vulnerability? + +- You need help tuning llm-d components for security +- You need help applying security related updates +- Your issue is not security related + +## Security Vulnerability Response + +Each report is acknowledged and analyzed by the maintainers of llm-d within 3 working days. + +Any vulnerability information shared with Security Response Committee stays within llm-d project and will not be disseminated to other projects unless it is necessary to get the issue fixed. + +As the security issue moves from triage, to identified fix, to release planning we will keep the reporter updated. + +## Public Disclosure Timing + +A public disclosure date is negotiated by the llm-d Security Response Committee and the bug submitter. +We prefer to fully disclose the bug as soon as possible once a user mitigation is available. +It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination. +The timeframe for disclosure is from immediate (especially if it's already publicly known) to a few weeks. +For a vulnerability with a straightforward mitigation, we expect report date to disclosure date to be on the order of 7 days. +The llm-d maintainers hold the final say when setting a disclosure date. diff --git a/_typos.toml b/_typos.toml new file mode 100644 index 0000000..d41e1d2 --- /dev/null +++ b/_typos.toml @@ -0,0 +1,14 @@ +# Typos configuration +# https://github.com/crate-ci/typos + +[default.extend-words] +# Azure Kubernetes Service abbreviation +AKS = "AKS" +aks = "aks" +# Indian Standard Time / Istio abbreviation +IST = "IST" +# Abbreviation (e.g., 2nd -> ND) +ND = "ND" + +# Add repo-specific false positives here: +# word = "word" diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..d35e01e --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,21 @@ +// Copyright 2025 The llm-d Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import "fmt" + +func main() { + fmt.Println("TODO: implement your service here") +} diff --git a/deploy/.gitkeep b/deploy/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/deploy/.gitkeep @@ -0,0 +1 @@ + diff --git a/docs/upstream-versions.md b/docs/upstream-versions.md new file mode 100644 index 0000000..1604e3a --- /dev/null +++ b/docs/upstream-versions.md @@ -0,0 +1,12 @@ +# Upstream Dependency Version Tracking + +> This file is the source of truth for the [upstream dependency monitor](.github/workflows/upstream-monitor.md) workflow. +> Add your project's key upstream dependencies below. The monitor runs daily and creates GitHub issues when breaking changes are detected. + +## Dependencies + + + +| Dependency | Current Pin | Pin Type | File Location | Upstream Repo | +|-----------|-------------|----------|---------------|---------------| + diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1a9786c --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/llm-d/{{PROJECT_NAME}} + +go 1.24.0 diff --git a/hooks/pre-commit b/hooks/pre-commit new file mode 100755 index 0000000..e5ab0ce --- /dev/null +++ b/hooks/pre-commit @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -e + +echo "Running lint..." +make lint + +echo "Running tests..." +make test + +echo "All checks passed!" diff --git a/internal/.gitkeep b/internal/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/internal/.gitkeep @@ -0,0 +1 @@ + diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..a82a581 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,34 @@ +# Python tooling configuration +# Only needed if this repo contains Python code + +[tool.ruff] +line-length = 120 +target-version = "py311" + +[tool.ruff.lint] +select = [ + "E", # pycodestyle errors + "W", # pycodestyle warnings + "F", # pyflakes + "I", # isort + "N", # pep8-naming + "UP", # pyupgrade + "B", # flake8-bugbear + "S", # flake8-bandit (security) + "A", # flake8-builtins + "C4", # flake8-comprehensions + "RET", # flake8-return + "SIM", # flake8-simplify +] +ignore = [ + "S101", # assert used (OK in tests) + "S603", # subprocess call with shell=false (OK) + "S607", # start process with partial path (OK) +] + +[tool.ruff.lint.per-file-ignores] +"tests/**/*.py" = ["S101"] + +[tool.ruff.format] +quote-style = "double" +indent-style = "space" From 709dd03e77fbaf5615af4db577a910ca135cdd32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:20:26 +0000 Subject: [PATCH 02/12] deps(actions): bump actions/checkout from 4 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-pr-checks.yaml | 8 ++++---- .github/workflows/ci-release.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml index 8f2102e..74ebfab 100644 --- a/.github/workflows/ci-pr-checks.yaml +++ b/.github/workflows/ci-pr-checks.yaml @@ -15,7 +15,7 @@ jobs: has_code_changes: ${{ steps.filter.outputs.code }} steps: - name: Checkout source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Check for code changes uses: dorny/paths-filter@v3 @@ -35,7 +35,7 @@ jobs: if: needs.check-code-changes.outputs.has_code_changes == 'true' steps: - name: Checkout source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Extract Go version from go.mod run: sed -En 's/^go (.*)$/GO_VERSION=\1/p' go.mod >> $GITHUB_ENV @@ -68,7 +68,7 @@ jobs: if: needs.check-code-changes.outputs.has_code_changes == 'true' steps: - name: Checkout source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Check for Python files id: check-python @@ -104,7 +104,7 @@ jobs: if: needs.check-code-changes.outputs.has_code_changes == 'true' steps: - name: Checkout source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/ci-release.yaml b/.github/workflows/ci-release.yaml index 02502ef..0397ba9 100644 --- a/.github/workflows/ci-release.yaml +++ b/.github/workflows/ci-release.yaml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set project name from repository id: meta From a81f3acfc83aafe203a7f9fd8b94574badad7955 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:20:29 +0000 Subject: [PATCH 03/12] deps(actions): bump docker/setup-buildx-action from 3 to 4 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-pr-checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml index 8f2102e..161ef16 100644 --- a/.github/workflows/ci-pr-checks.yaml +++ b/.github/workflows/ci-pr-checks.yaml @@ -107,7 +107,7 @@ jobs: uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build container (no push) run: | From 4f830e3c8e78f9e08aa96f0c0ad8730a88d95c59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:20:29 +0000 Subject: [PATCH 04/12] deps(actions): bump actions/setup-go from 5 to 6 Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-pr-checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml index 8f2102e..c961db6 100644 --- a/.github/workflows/ci-pr-checks.yaml +++ b/.github/workflows/ci-pr-checks.yaml @@ -41,7 +41,7 @@ jobs: run: sed -En 's/^go (.*)$/GO_VERSION=\1/p' go.mod >> $GITHUB_ENV - name: Set up Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version: "${{ env.GO_VERSION }}" cache-dependency-path: ./go.sum From f909959fb66f5556817b6ccc660f3f95e037b974 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:20:32 +0000 Subject: [PATCH 05/12] deps(actions): bump actions/setup-python from 5 to 6 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-pr-checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml index 8f2102e..993e46f 100644 --- a/.github/workflows/ci-pr-checks.yaml +++ b/.github/workflows/ci-pr-checks.yaml @@ -81,7 +81,7 @@ jobs: - name: Set up Python if: steps.check-python.outputs.has_python == 'true' - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.11" From 75c677c48a9ac675c6fe2322141696acd70b2ccf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:20:35 +0000 Subject: [PATCH 06/12] deps(actions): bump golangci/golangci-lint-action from 8 to 9 Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 8 to 9. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v8...v9) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-pr-checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml index 8f2102e..2600c19 100644 --- a/.github/workflows/ci-pr-checks.yaml +++ b/.github/workflows/ci-pr-checks.yaml @@ -50,7 +50,7 @@ jobs: run: go mod download - name: Run golangci-lint - uses: golangci/golangci-lint-action@v8 + uses: golangci/golangci-lint-action@v9 with: version: v2.8.0 args: "" From 616ba2ca9c0300114315bc0b3df705a2043de1a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:20:41 +0000 Subject: [PATCH 07/12] deps(docker): bump golang from 1.24 to 1.26 Bumps golang from 1.24 to 1.26. --- updated-dependencies: - dependency-name: golang dependency-version: '1.26' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5f9f6b8..d571d9e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # Supports multi-arch: linux/amd64, linux/arm64 # --- Build stage --- -FROM golang:1.24 AS builder +FROM golang:1.26 AS builder WORKDIR /workspace From 8152ea91bf92bad8b09665a7fabc30075597872d Mon Sep 17 00:00:00 2001 From: Andrew Anderson Date: Fri, 6 Mar 2026 17:20:17 -0500 Subject: [PATCH 08/12] =?UTF-8?q?=F0=9F=8C=B1=20Remove=20per-repo=20gh-aw?= =?UTF-8?q?=20typo/link/upstream=20workflows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaced by centralized nightly checks in llm-d/llm-d-infra#83. Signed-off-by: Andrew Anderson --- .github/workflows/link-checker.md | 131 ------------------------ .github/workflows/typo-checker.md | 142 -------------------------- .github/workflows/upstream-monitor.md | 138 ------------------------- 3 files changed, 411 deletions(-) delete mode 100644 .github/workflows/link-checker.md delete mode 100644 .github/workflows/typo-checker.md delete mode 100644 .github/workflows/upstream-monitor.md diff --git a/.github/workflows/link-checker.md b/.github/workflows/link-checker.md deleted file mode 100644 index 5ed6c29..0000000 --- a/.github/workflows/link-checker.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -description: | - AI-powered link checker for pull requests. Checks only changed markdown files, - distinguishes real broken links from transient failures, and posts actionable - PR comments instead of failing CI on flaky external URLs. - -on: - pull_request: - paths: - - "**/*.md" - -permissions: read-all - -network: - allowed: - - defaults - - "*.github.com" - - "*.githubusercontent.com" - -safe-outputs: - add-comment: - add-labels: - allowed: [broken-links] - -tools: - github: - toolsets: [repos, pull_requests] - web-fetch: - bash: [ ":*" ] - -timeout-minutes: 10 ---- - -# Link Checker - -## Job Description - -Your name is ${{ github.workflow }}. You are an **AI-Powered Link Checker** for the repository `${{ github.repository }}`. - -### Mission - -Check markdown links in changed files on pull requests. Distinguish real broken links from transient network issues. Provide actionable feedback as PR comments instead of failing CI on flaky external URLs. - -### Your Workflow - -#### Step 1: Identify Changed Markdown Files - -Get the list of changed markdown files in this PR: - -```bash -gh pr diff ${{ github.event.pull_request.number }} --name-only | grep '\.md$' -``` - -If no markdown files changed, exit cleanly with a message: "No markdown files changed in this PR." - -#### Step 2: Extract and Check Links - -For each changed markdown file: - -1. Extract all links (both `[text](url)` and bare URLs) -2. Categorize links: - - **Internal links**: relative paths to files in the repo (e.g., `./docs/foo.md`, `../README.md`) - - **Anchor links**: `#section-name` references - - **External links**: `https://...` URLs - -3. Check each link: - - **Internal links**: verify the target file exists in the repo using `ls` or `test -f` - - **Anchor links**: verify the heading exists in the target file - - **External links**: use `curl -sL -o /dev/null -w '%{http_code}' --max-time 10` to check - - For external URLs that return 4xx: mark as **definitely broken** - - For external URLs that return 5xx or timeout: retry once after 5 seconds - - For external URLs that still fail after retry: mark as **possibly transient** - -#### Step 3: Classify Results - -Group results into categories: - -- **Broken** (fail): Internal links to non-existent files, 404 external URLs -- **Possibly transient** (warn): External URLs returning 5xx, timeouts, DNS failures -- **OK**: All links that resolve successfully - -#### Step 4: Report - -If there are broken or possibly transient links, post a **single** PR comment summarizing: - -```markdown -## Link Check Results - -### Broken Links (action required) -| File | Line | Link | Status | -|------|------|------|--------| -| docs/foo.md | 42 | [example](https://broken.url) | 404 Not Found | - -### Possibly Transient (may be temporary) -| File | Line | Link | Status | -|------|------|------|--------| -| docs/bar.md | 15 | [api docs](https://flaky.url) | Timeout | - -### Summary -- X broken links found (action required) -- Y possibly transient links found (may resolve on retry) -- Z links checked successfully -``` - -If ALL broken links are external and returned 5xx or timeout (i.e., all "possibly transient"), do NOT add the `broken-links` label. - -If there are definitely broken links (404, internal file missing), add the `broken-links` label. - -If all links are OK, do not post a comment. - -### Domain-Specific Knowledge - -These domains are known to have intermittent availability or require authentication — treat failures as "possibly transient": -- `registry.k8s.io` -- `quay.io` -- `ghcr.io` -- `nvcr.io` -- LinkedIn URLs (always return 999) -- `docs.google.com` (may require auth) - -### Important Rules - -1. Only check files that changed in this PR — never scan the entire repo -2. Always post at most ONE comment per PR run (update existing if re-running) -3. Do not fail the workflow — use comments and labels for feedback -4. Be concise — developers should be able to fix issues quickly from the comment - -### Exit Conditions - -- Exit if no markdown files changed -- Exit if all links are valid diff --git a/.github/workflows/typo-checker.md b/.github/workflows/typo-checker.md deleted file mode 100644 index 8a2f7ab..0000000 --- a/.github/workflows/typo-checker.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -description: | - AI-powered typo checker for pull requests. Checks only changed files, - understands domain-specific terminology (vLLM, NIXL, RDMA, InferencePool, etc.), - and posts fix suggestions as PR review comments with code suggestions. - -on: - pull_request: - types: [opened, synchronize, reopened] - -permissions: read-all - -network: defaults - -safe-outputs: - add-comment: - -tools: - github: - toolsets: [repos, pull_requests] - bash: [ ":*" ] - -timeout-minutes: 10 ---- - -# Typo Checker - -## Job Description - -Your name is ${{ github.workflow }}. You are an **AI-Powered Typo Checker** for the repository `${{ github.repository }}`. - -### Mission - -Find and suggest fixes for typos in changed files on pull requests. Unlike traditional regex-based tools, you understand context and domain-specific terminology, reducing false positives while catching real errors. - -### Your Workflow - -#### Step 1: Get Changed Files - -Get the list of changed files in this PR: - -```bash -gh pr diff ${{ github.event.pull_request.number }} --name-only -``` - -Filter to relevant file types (skip binary files, lock files, generated files): -- Include: `*.md`, `*.yml`, `*.yaml`, `*.go`, `*.py`, `*.sh`, `*.txt`, `*.json`, `*.toml` -- Exclude: `*.lock.yml`, `*.lock`, `*_generated*`, `vendor/`, `node_modules/`, `*.pb.go` - -If no relevant files changed, exit cleanly. - -#### Step 2: Get Changed Content - -For each relevant file, get only the added/modified lines: - -```bash -gh pr diff ${{ github.event.pull_request.number }} -- -``` - -Focus on lines starting with `+` (added lines). Do not check removed lines. - -#### Step 3: Check for Typos - -Review each added line for spelling and grammar issues. Consider: - -1. **Real typos**: misspelled common English words -2. **Technical term misspellings**: incorrect capitalization or spelling of well-known tools -3. **Inconsistent naming**: same term spelled differently in the same file - -#### Step 4: Filter False Positives - -The following are NOT typos — do not flag them: - -**llm-d Domain Terms** (correct as-is): -- vLLM, vllm (both valid) -- NIXL, nixl -- RDMA, InfiniBand, RoCE -- InferencePool, InferenceModel -- helmfile, kustomize, kustomization -- ModelService, modelservice -- KV cache, kvcache, kv-cache -- prefill, decode (LLM inference terms) -- DeepEP, DeepGEMM, FlashInfer -- LMCache, lmcache -- disaggregation, disaggregated -- UCX, NVSHMEM, GDRCOPY, gdrcopy -- tensorizer, detensorize -- autoscaler, autoscaling -- CRD, CRDs, CustomResourceDefinition -- OCI, GHCR, ghcr -- Gaudi, HPU, XPU, TPU, ROCm -- InfiniStore, infinistore -- pplx, perplexity -- kubectl, kubeconfig, kubecontext -- ConfigMap, ServiceAccount, ClusterRole, RoleBinding -- HTTPRoute, GRPCRoute, Gateway API -- Istio, kgateway, agentgateway -- Prometheus, Grafana -- HuggingFace, tokenizer - -**Code identifiers**: variable names, function names, class names, config keys, file paths - -**Abbreviations**: args, config, env, repo, deps, infra, prereq, etc. - -**URLs and paths**: anything that looks like a URL or file path - -#### Step 5: Report - -If typos are found, post a **single** PR comment with suggested fixes: - -```markdown -## Typo Check Results - -Found N potential typos in changed files: - -| File | Line | Original | Suggested Fix | -|------|------|----------|---------------| -| docs/getting-started.md | 42 | "teh configuration" | "the configuration" | -| guides/README.md | 15 | "recieve" | "receive" | - -
-Domain terms dictionary (not flagged) - -This checker recognizes llm-d domain terminology. If a valid term was incorrectly flagged, please update the domain dictionary. -
-``` - -If no typos are found, do not post a comment. - -### Important Rules - -1. Only check lines added/modified in this PR — never scan entire files -2. Post at most ONE comment per PR run -3. Be very conservative — false positives are worse than missed typos -4. Never flag code identifiers, config keys, or domain terms -5. Do not fail the workflow — typos are suggestions, not blockers -6. For markdown files, ignore content inside code blocks (``` ... ```) - -### Exit Conditions - -- Exit if no relevant files changed -- Exit if no typos found in changed lines diff --git a/.github/workflows/upstream-monitor.md b/.github/workflows/upstream-monitor.md deleted file mode 100644 index 2fb8862..0000000 --- a/.github/workflows/upstream-monitor.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -description: | - Monitors upstream dependencies for new releases and breaking changes. - Runs daily to check tracked upstream projects. Creates GitHub issues - when breaking changes are detected that affect this repository's code, - configuration, or CI pipelines. - -on: - schedule: - - cron: "0 3 * * *" - workflow_dispatch: - -permissions: read-all - -network: - allowed: - - defaults - - "api.github.com" - - "github.com" - - "*.githubusercontent.com" - - "pypi.org" - -safe-outputs: - create-issue: - labels: [upstream-breaking-change, automation] - add-labels: - allowed: [upstream-breaking-change, upstream-update, automation, critical, high, medium] - -tools: - github: - toolsets: [repos, issues, search] - web-fetch: - bash: [ ":*" ] - -timeout-minutes: 30 ---- - -# Upstream Dependency Monitor - -## Job Description - -Your name is ${{ github.workflow }}. You are an **Upstream Dependency Monitor** for the repository `${{ github.repository }}`. - -### Mission - -Detect upstream dependency releases that may break builds, deployments, or CI pipelines in this repository — before contributors hit the wall. - -### Tracked Dependencies - -Read the file `docs/upstream-versions.md` to get the current version pins and file locations. That file is the **single source of truth** for what we track. - -If `docs/upstream-versions.md` does not exist or is empty, exit cleanly — there are no tracked dependencies yet. - -### Your Workflow - -#### Step 1: Load Current Pins - -Read `docs/upstream-versions.md` to understand: -- Which version/SHA is currently pinned for each dependency -- Which files contain those pins (Dockerfile, go.mod, helmfile, workflow YAML, etc.) -- The upstream repository for each dependency - -#### Step 2: Check for New Releases - -For each tracked dependency: - -1. Use the GitHub API via bash to check for new releases: - ```bash - gh api repos/{owner}/{repo}/releases/latest --jq '.tag_name' - ``` - -2. For commit-SHA-pinned deps, check if the pinned commit is behind the latest tag: - ```bash - gh api repos/{owner}/{repo}/compare/{pinned_sha}...HEAD --jq '.ahead_by' - ``` - -3. For PyPI packages, check the latest version: - ```bash - curl -s https://pypi.org/pypi/{package}/json | jq -r '.info.version' - ``` - -4. Compare with the version in `docs/upstream-versions.md` - -#### Step 3: Analyze Breaking Changes - -When a new release is detected, analyze it for breaking changes: - -1. **Fetch the changelog/release notes** using web-fetch on the release page -2. **Check the diff between pinned version and latest** for: - - Renamed CLI arguments, flags, or environment variables - - Changed API signatures, function names, or class names - - Modified configuration parameter names or formats - - Helm chart `values.yaml` schema changes - - Removed or renamed exported symbols - - Protocol or wire format changes - - Minimum version requirement bumps (Go, Python, Node, etc.) - -3. **Cross-reference against this repository's usage** by grepping: - ```bash - grep -r "old_name_or_flag" . --include="*.go" --include="*.py" --include="*.yaml" --include="*.yml" --include="*.md" --include="Dockerfile*" --include="*.toml" - ``` - -4. **Classify the impact**: - - **CRITICAL**: Breaks builds or deployments immediately - - **HIGH**: Breaks specific configurations or workflows - - **MEDIUM**: May affect optional features or future upgrades - - **LOW**: Informational — new version available, no breaking changes detected - -#### Step 4: Report Findings - -**For breaking changes (CRITICAL/HIGH):** -Create a GitHub issue with: -- Title: `[Upstream Breaking Change] {project} {old_version} → {new_version}` -- Body: what changed, which files are affected (with paths and line numbers), suggested fixes, links to upstream release notes -- Labels: `upstream-breaking-change`, `critical` or `high` - -**For non-breaking new releases (MEDIUM/LOW):** -Create a GitHub issue with: -- Title: `[Upstream Update] {project} {old_version} → {new_version}` -- Labels: `upstream-update`, `medium` or `low` - -**If no new releases detected:** Exit cleanly, no issues created. - -### Important Rules - -1. **Never create duplicate issues.** Search existing open issues first: - ```bash - gh issue list --label upstream-breaking-change --state open --search "{project}" - gh issue list --label upstream-update --state open --search "{project}" - ``` -2. **Be specific about what breaks.** Map changes to specific files in the repo. -3. **Always include the upstream release URL** in the issue body. -4. **Watch for transitive breaks** — e.g., a Go dependency bump that requires a newer Go version. - -### Exit Conditions -- Exit if `docs/upstream-versions.md` does not exist or is empty -- Exit if no upstream projects have new releases since last check -- Exit if GitHub API rate limits are exceeded (log a warning) From 3778005e46b434361e85d048d87f980af00fd2f8 Mon Sep 17 00:00:00 2001 From: Andy Anderson Date: Tue, 10 Mar 2026 00:09:29 -0400 Subject: [PATCH 09/12] =?UTF-8?q?=F0=9F=8C=B1=20Confirm=20governance=20fil?= =?UTF-8?q?es=20and=20fix=20template=20placeholder=20(#9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses #8 — CNCF and CI Audit - week of Mar 9 2026 All governance files listed in the audit already exist and match the canonical llm-d-go-template. The only change needed was replacing the {{PROJECT_NAME}} placeholder in the feature request issue template with the actual repo name (llm-d-prism). Files confirmed present: - CODE_OF_CONDUCT.md - SECURITY.md - PR_SIGNOFF.md - _typos.toml - .prowlabels.yaml - OWNERS (placeholder — needs real usernames) - .github/CODEOWNERS (placeholder — needs real team) - .github/PULL_REQUEST_TEMPLATE.md - .github/ISSUE_TEMPLATE/ (bug_report.yml, config.yml, feature_request.yml) Signed-off-by: Andrew Anderson --- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 4e1302d..0bfde2c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -11,7 +11,7 @@ body: Thank you for suggesting an improvement! Please fill in the details below. Before opening a new feature request, please check - [existing issues](https://github.com/llm-d/{{PROJECT_NAME}}/issues) + [existing issues](https://github.com/llm-d/llm-d-prism/issues) to see if a similar request already exists. - type: textarea From 8a93d7be4465a4f6b60532d4f1ee777708be179b Mon Sep 17 00:00:00 2001 From: Sean Horgan Date: Thu, 12 Mar 2026 11:30:33 -0400 Subject: [PATCH 10/12] Placeholder updates before initial code transfer --- OWNERS | 5 +- README.md | 202 +++++++++++++++++++++++++++------ docs/images/prism-overview.png | Bin 0 -> 290351 bytes 3 files changed, 168 insertions(+), 39 deletions(-) create mode 100644 docs/images/prism-overview.png diff --git a/OWNERS b/OWNERS index 8ce2c38..8aa0a15 100644 --- a/OWNERS +++ b/OWNERS @@ -1,8 +1,7 @@ -# TODO: Replace with your team's GitHub usernames # See https://go.k8s.io/owners for format documentation reviewers: - # - github-username + - seanhorgan approvers: - # - github-username + - seanhorgan diff --git a/README.md b/README.md index 395972f..526af4a 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,196 @@ -# {{PROJECT_NAME}} +# Prism - - - -[![CI](https://github.com/llm-d/{{PROJECT_NAME}}/actions/workflows/ci-pr-checks.yaml/badge.svg)](https://github.com/llm-d/{{PROJECT_NAME}}/actions/workflows/ci-pr-checks.yaml) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) -> **One-line description of what this project does.** +> Performance analysis for distributed inference systems + +_Note: The contents of this repo are currently being populated from the original Prism repo. We expect this to be completed by the end of March 2026._ ## Overview - +AI Platform Engineers and ML Engineers face significant challenges assembling the full end-to-end inference serving stack for their applications, leading to lengthy, manual evaluation cycles, suboptimal performance, and unnecessarily high friction and costs. While many benchmarks and tools exist, the data is often scattered across disconnected docs, spreadsheets, or vendor-specific sites. -## Prerequisites +Prism helps you choose, configure and optimize the right AI inference infrastructure by unifying benchmark data from disparate sources—cloud APIs, public repositories, and local experiments—into a single interactive analysis experience. Prism makes it easier to navigate the complex trade-offs between throughput, latency cost, and quality with data grounded in validated benchmarks. -- Go 1.24+ -- Docker (for container builds) -- [pre-commit](https://pre-commit.com/) (for local development) +

+ + + Prism Overview + +

-## Quick Start +## Technology Stack -```bash -# Clone the repo -git clone https://github.com/llm-d/{{PROJECT_NAME}}.git -cd {{PROJECT_NAME}} +- **Framework:** React 19 (via Vite) +- **Styling:** Vanilla CSS (Tailwind CSS v4 for utility-first components) +- **Charts:** Recharts +- **Icons:** Lucide React +- **Language:** JavaScript (ESNext) +- **Cloud:** Google Cloud (GCS, GIQ), AWS (S3) + +## Development + +See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines, coding standards, and how to submit changes. + +## Setup & Deployment -# Install pre-commit hooks -pre-commit install +### Local Development -# Build -make build +1. **Install Dependencies**: + ```bash + npm install + ``` +2. **Start Dev Environment**: -# Run tests -make test + ```bash + npm run dev + ``` -# Run linters -make lint + - This starts BOTH the backend (port 3000) and frontend (port 5173) concurrently. + - Dashboard: http://localhost:5173 + - _Note: Ensure you have Application Default Credentials (ADC) set up locally._ + +3. **Test Shared Configuration**: + ```bash + DEFAULT_PROJECTS="my-google-project-id" npm start + ``` + +### Cloud Deployment (Google Cloud Run) + +The application is deployed to Google Cloud Run using the `deploy.sh` script. This script handles API enablement, configuration persistence, and the deployment command itself. + +#### Usage + +```bash +./deploy.sh [options] ``` -## Development +#### Options -See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines, coding standards, and how to submit changes. +| Alternative | Option | Description | +| :---------- | :---------------------- | :--------------------------------------------------------------------------------------------- | +| `-f` | `--config ` | **Config File**. Path to the deployment configuration file. Defaults to `.deploy_config`. | +| `-p` | `--project ` | **GCP Project ID**. Defaults to the current `gcloud` project. | +| `-s` | `--service ` | **Cloud Run Service Name**. Defaults to `prism`. | +| `-n` | `--name ` | **Site Name** (e.g., "Internal", "Stage"). Appears in the browser tab and header. | +| `-g` | `--ga-id ` | **Google Analytics Tracking ID** (e.g., `G-XXXX`). | +| `-c` | `--contact ` | **Contact Us Link**. Supports URLs or email addresses (automatically prefixed with `mailto:`). | -### Common Commands +#### Configuration Persistence + +The script saves the most recent deployment configuration to a `.deploy_config` file in the root directory. Subsequent runs will use these values as defaults unless overridden by command-line arguments. + +#### Example + +To deploy using a specific configuration file (e.g., public release): + +```bash +./deploy.sh --config .deploy_config.public +``` + +To deploy to a specific project with a custom name and contact email: ```bash -make help # Show all available targets -make build # Build the project -make test # Run tests with race detection -make lint # Run Go and Python linters -make fmt # Format Go and Python code -make image-build # Build multi-arch container image -make pre-commit # Run pre-commit hooks +./deploy.sh --project my-project-id --name "Prototype" --contact "support@example.com" ``` +#### Shared Defaults (Environment Variables) + +The following environment variables can be set via `--set-env-vars` in the `gcloud run deploy` command (the script handles this via the arguments above): + +- **`SITE_NAME`**: Custom text appended to "Prism". +- **`CONTACT_US_URL`**: URL or email for the support link. +- **`DEFAULT_PROJECTS`**: Comma-separated list of Project IDs for GIQ data. +- **`DEFAULT_BUCKETS`**: Comma-separated list of GCS buckets for results. +- **`DEFAULT_S3_BUCKETS`**: Comma-separated list of public AWS S3 buckets. +- **`GOOGLE_API_KEY`**: API Key for Google Drive/Sheets (auto-detected from `.env.local` if present). + +## Multi-Cloud Deployment (AWS, Azure, On-Prem) +Note: Deployment on other clouds is a work in progress and requires testing. + +This application can be deployed to any container platform (AWS App Runner, Azure Container Apps, ECS, Kubernetes). + +1. **Build Docker Image**: + ```bash + docker build -t prism . + ``` +2. **Authentication**: + The application requires Google Cloud credentials to interface with GCS/GIQ -- which are optional. + - **Create a Service Account Key**: Generate a JSON key for a Service Account with `roles/storage.objectViewer` and `roles/serviceusage.serviceUsageConsumer`. + - **Mount Key**: Mount this JSON file into the container (e.g., at `/app/credentials.json`). + - **Set Env Var**: Set `GOOGLE_APPLICATION_CREDENTIALS=/app/credentials.json`. + +3. **Run**: + ```bash + docker run -p 8080:8080 \ + -e PORT=8080 \ + -e GOOGLE_APPLICATION_CREDENTIALS=/app/credentials.json \ + -v $(pwd)/credentials.json:/app/credentials.json \ + prism + ``` + +### Google Cloud APIs + +To deploy the application and authenticate with the Google Cloud APIs, follow these steps: + +1. **Install Google Cloud SDK**: Follow the instructions [here](https://cloud.google.com/sdk/docs/install) to install the `gcloud` CLI. +2. **Authenticate**: + ```bash + gcloud auth login + ``` +3. **Set Project**: + ```bash + gcloud config set project + ``` +4. **Set Quota Project** (Critical for ADC to work correctly): + ```bash + gcloud config set billing/quota_project + ``` +5. **Generate Application Default Credentials**: + ```bash + gcloud auth application-default login + ``` + ## Architecture - +The application uses a **Backend-for-Frontend (BFF)** architecture to simplify security and configuration: + +- **Frontend (React)**: Fetches shared configuration from `/api/config` on startup. +- **Backend (Node.js/Express)**: + - Serves the static React application. + - Proxies requests to Google Cloud APIs, automatically injecting **Application Default Credentials (ADC)**. + - Enforces Rate Limiting to prevent abuse. ## Configuration - +### Dependency Management + +The project uses a standard `.npmrc` to enforce the public npm registry (`https://registry.npmjs.org/`) to ensure consistency for all developers. + +## Standard/Public Environment (Default) + +- Just run `npm install`. The project `.npmrc` will direct you to the public registry. + +## Work/Private Environment + +- To use your private registry mirror (e.g., `us-npm.pkg.dev`), run install with the registry config overridden: + ```bash + npm_config_registry=https://us-npm.pkg.dev/artifact-foundry-prod/ah-3p-staging-npm/ npm install + ``` +- **Crucial**: Do not commit changes to `package-lock.json` that result from this command if they change the `resolved` URLs back to the private registry. Using `npm ci` is recommended if you just want to install without modifying the lockfile. + +# Developer Guidelines + +- **Running Locally:** Run `npm run dev`. +- **Parsing Logic:** Data ingestion logic resides in `src/utils/dataParser.js` and files specific to the data source. + - **Hardware Metadata:** The parser extracts `accelerator` (e.g., `tpu7x`) and `machine_type` from `manifest.yaml` when available in GCS/S3 sources. + - **Source Identification:** Benchmarks are tagged with standardized IDs: `infperf` (inference-perf), `Quality` (MQ), and `llm-d` (DRIVE). +- **Visuals:** Prioritize intuitive and interactive aesthetics. Use dark mode, glassmorphism, and smooth transitions. +- **Data handling:** + - `facetCounts` in `Dashboard.jsx` calculates unique configurations for filter dropdowns. + - `getEffectiveTp` in `Dashboard.jsx` handles inconsistent TP naming (metadata vs model name). + - **Source Selection**: `Dashboard.jsx` implements strict filtering for data sources. Only sources explicitly permitted by `defaultState` (or user interaction) are enabled. + - **Active Connection Sorting**: When a data connection is enabled, it is automatically sorted to the bottom of the active list in the Data Connections panel for better UX navigation. ## Contributing diff --git a/docs/images/prism-overview.png b/docs/images/prism-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..164991d80d5036e9d2eec2970b964a971a3cdd1e GIT binary patch literal 290351 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 N8mhV~#mdN_{{u0Vn{ogE literal 0 HcmV?d00001 From 914a1176982870554fe2c89343ec5c27f440a07c Mon Sep 17 00:00:00 2001 From: Raji Date: Wed, 18 Mar 2026 15:16:57 -0700 Subject: [PATCH 11/12] feat: added new user profile skills and diagram (#10) * feat: added new user profile skills and diagram * Update README.md Signed-off-by: Raji Co-authored-by: Rajitha Leonhard --- users/README.md | 31 +++++++++++++++++++++++++ users/benchmark-developer/SKILL.md | 22 ++++++++++++++++++ users/config-tuner/SKILL.md | 24 +++++++++++++++++++ users/llm-d-feature-developer/SKILL.md | 26 +++++++++++++++++++++ users/llm-d-stack-operator/SKILL.md | 23 ++++++++++++++++++ users/roles_diagram.png | Bin 0 -> 188652 bytes 6 files changed, 126 insertions(+) create mode 100644 users/README.md create mode 100644 users/benchmark-developer/SKILL.md create mode 100644 users/config-tuner/SKILL.md create mode 100644 users/llm-d-feature-developer/SKILL.md create mode 100644 users/llm-d-stack-operator/SKILL.md create mode 100644 users/roles_diagram.png diff --git a/users/README.md b/users/README.md new file mode 100644 index 0000000..d2dcb2a --- /dev/null +++ b/users/README.md @@ -0,0 +1,31 @@ +# User Profiles and Skills + +This directory contains specialized skills tailored for different user profiles involved in the llm-d project. These skills are designed to assist agents in developing features, tuning configurations, and maintaining production stability. We will build on these user profiles over time. + +![User Roles Diagram](./roles_diagram.png) + +## User Roles + +### 1. [Feature Developer](llm-d-feature-developer/SKILL.md) +**Focus:** Ensures new features hit price/performance goals and can be shared easily. +- Automates baseline A/B test validations. +- Separates unit vs. system benchmarks. +- Produces reproducible and shareable artifacts. + +### 2. [Config Tuner](config-tuner/SKILL.md) (Solutions Architect / Customer Engineer) +**Focus:** Tailored for defining and sweeping optimal end-to-end component stacks. +- Orchestrates complex configuration sweeps (Parallelism, vLLM config, etc.). +- Isolates test environments. +- Generates verifiable reference architecture matrices. + +### 3. [Stack Operator](llm-d-stack-operator/SKILL.md) +**Focus:** Prioritizes production stability and regression tracking. +- Runs standard "well-lit paths". +- Sets up deep stress testing telemetry. +- Compares footprints vs. historical production data. + +### 4. [Benchmark Developer](benchmark-developer/SKILL.md) (Analyst / PR) +**Focus:** Tailored towards community-facing output. +- Generates clear, presentation-ready graphs and visualizations. +- Compares llm-d against competitors. +- Focuses on user-facing metrics without requiring deep codebase knowledge. diff --git a/users/benchmark-developer/SKILL.md b/users/benchmark-developer/SKILL.md new file mode 100644 index 0000000..ad0a5e1 --- /dev/null +++ b/users/benchmark-developer/SKILL.md @@ -0,0 +1,22 @@ +--- +name: benchmark-developer +description: Skill for Analyst / PR roles to compare cross-stack performance and publish reproducible, community-facing benchmarks. +--- +# Benchmark Developer (Analyst / PR) Skill + +## User Profile Goal +The primary goal of this profile is to compare the performance of llm-d optimizations against alternative inference stacks (e.g., Dynamo) and share easy-to-understand benchmarks with the broader community. + +## Agent Responsibilities +When designing and developing features for this user profile, you must: + +1. **Prioritize Presentation:** + - Create high-quality, easy-to-understand visualizations and tables that are ready to be embedded into public reports, social media posts, or PR materials. + - Clearly highlight price/performance ratios of various components. + +2. **Lower the Technical Ceiling:** + - Assume this user is a 3rd-party (3P) to the core llm-d community. Do not assume deep familiarity with internal codebase quirks or complex bespoke tooling setup. + - Create one-click reproducible scripts where possible. + +3. **Enable Cross-Stack Comparisons:** + - Guide the generation of benchmarking tools that can smoothly test not just llm-d, but competitor stacks simultaneously for fairness and clear, objective reporting. diff --git a/users/config-tuner/SKILL.md b/users/config-tuner/SKILL.md new file mode 100644 index 0000000..809ec17 --- /dev/null +++ b/users/config-tuner/SKILL.md @@ -0,0 +1,24 @@ +--- +name: config-tuner +description: Skill for helping Solutions Architects and Customer Engineers sweep configurations and find optimal end-to-end stack setups. +--- +# Config Tuner / Solutions Architect Skill + +## User Profile Goal +The primary goal of this profile is to recommend optimal component-level and full end-to-end stack configurations (hardware infrastructure, model serving, orchestration) to customers based on rigorous testing. + +## Agent Responsibilities +When designing and developing features for this user profile, you must: + +1. **Orchestrate Complex Sweeps:** + - Generate and run automated benchmarks across complex sweeps of configurations. + - Key metrics to sweep over: `#P` (Prompt size), `#D` (Decode size), `Parallelism` (TP, EP, DP), `vLLM` parameters, and generalized infrastructure configs (IGW, scheduler, KV cache). + +2. **Isolate Test Environments:** + - Ensure each benchmark is run against a freshly deployed stack so that the configuration changes are completely isolated and not affected by previous state. + +3. **Visualize Relative Performance:** + - Create tables, heatmaps, or charts that allow the user to immediately understand the relative performance impact of different configuration combinations. + +4. **Produce Reference Architectures:** + - Synthesize the optimal benchmark results into clear, experimentally verifiable reference architectures that guarantee specific scalability Service Level Objectives (SLOs). diff --git a/users/llm-d-feature-developer/SKILL.md b/users/llm-d-feature-developer/SKILL.md new file mode 100644 index 0000000..29041be --- /dev/null +++ b/users/llm-d-feature-developer/SKILL.md @@ -0,0 +1,26 @@ +--- +name: llm-d-feature-developer +description: Skill for helping llm-d Feature Developers run, compare, and validate benchmarks for new optimization features. +--- +# llm-d Feature Developer Skill + +## User Profile Goal +The primary goal of the llm-d Feature Developer is to ensure that new features (e.g., optimizations like medusa) hit their price/performance goals and can be shared in an easily reproducible way. + +## Agent Responsibilities +When designing and developing features for this user profile, you must: + +1. **Clarify Benchmark Scope (Unit vs. System):** + - Ensure a clear separation between unit benchmarks (isolated component tests) and system benchmarks (end-to-end integration tests). + - If the user is evaluating a specific component optimization, default to unit benchmarking before scaling up. + +2. **Automate Baseline Comparisons:** + - Always run the user's new feature against a pre-deployed, stable baseline stack. + - Design commands and scripts that make it trivial to perform A/B testing with constant small tweaks. + +3. **Facilitate Reproducibility:** + - Format results cleanly so they can easily be published in blog posts or PR descriptions. + - Record and output the exact commands, environment variables, and commit hashes used for every run to ensure anyone else can reproduce the benchmark. + +4. **Address Common Pitfalls:** + - Detect and warn the user when baseline validations are missing or when the standard llm-d benchmarking tool is misconfigured for their specific edge case. diff --git a/users/llm-d-stack-operator/SKILL.md b/users/llm-d-stack-operator/SKILL.md new file mode 100644 index 0000000..da44396 --- /dev/null +++ b/users/llm-d-stack-operator/SKILL.md @@ -0,0 +1,23 @@ +--- +name: llm-d-stack-operator +description: Skill for helping Stack Operators monitor production stacks, perform regular stress tests, and detect regressions. +--- +# llm-d Stack Operator Skill + +## User Profile Goal +The primary goal of this profile is to ensure their production stacks (on cloud environments like GCP or IBM Cloud) are configured with the best stable optimizations and actively monitored for performance regressions. + +## Agent Responsibilities +When designing and developing features for this user profile, you must: + +1. **Focus on "Well-Lit Paths":** + - Execute regular benchmarking runs using pre-selected, standardized workloads. + - Run consistent stress tests and deep profiling on established architectures. + +2. **Robust Regression Testing:** + - Automate regression runs specifically catered to the relevant cloud providers the user operates on. + - When a new optimization is deployed, immediately compare its performance against historical baselines to flag unexpected regressions. + +3. **Enhance Observability:** + - Assist in setting up and interpreting production observability tools. + - Synthesize complex deployment telemetry into straightforward operational reports for the operator. diff --git a/users/roles_diagram.png b/users/roles_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5c66832c5406a89f385b811442896d7213e2de GIT binary patch literal 188652 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 B{PzF= literal 0 HcmV?d00001 From 8157e3b0a655e799c4f5b16f0b1cd884683397d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Mar 2026 17:13:30 +0000 Subject: [PATCH 12/12] deps(actions): bump dorny/paths-filter from 3 to 4 Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3 to 4. - [Release notes](https://github.com/dorny/paths-filter/releases) - [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md) - [Commits](https://github.com/dorny/paths-filter/compare/v3...v4) --- updated-dependencies: - dependency-name: dorny/paths-filter dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-pr-checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pr-checks.yaml b/.github/workflows/ci-pr-checks.yaml index 2a8f70d..2903c2d 100644 --- a/.github/workflows/ci-pr-checks.yaml +++ b/.github/workflows/ci-pr-checks.yaml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v6 - name: Check for code changes - uses: dorny/paths-filter@v3 + uses: dorny/paths-filter@v4 id: filter with: filters: |