Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.github/workflows/*.lock.yml linguist-generated=true merge=ours
.github/workflows/*.campaign.g.md linguist-generated=true merge=ours
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 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/llm-d-inference-scheduler-maintainers
27 changes: 0 additions & 27 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

72 changes: 72 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -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
14 changes: 0 additions & 14 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

65 changes: 65 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -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/llm-d-inference-scheduler/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
26 changes: 26 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## What does this PR do?

<!-- Describe the changes and their purpose -->

## Why is this change needed?

<!-- Explain the motivation: bug fix, feature request, performance improvement, etc. -->

## How was this tested?

<!-- Describe how you verified the changes work correctly -->
- [ ] 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

<!-- Link to related issues: Fixes #123, Related to #456 -->
20 changes: 20 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -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
24 changes: 24 additions & 0 deletions .hadolint.yaml
Original file line number Diff line number Diff line change
@@ -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
60 changes: 60 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -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}}}
17 changes: 0 additions & 17 deletions .typos.toml

This file was deleted.

8 changes: 8 additions & 0 deletions .yamllint.yml
Original file line number Diff line number Diff line change
@@ -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
34 changes: 34 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -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 <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>

For answers to common questions about this code of conduct, see <https://www.contributor-covenant.org/faq>
Loading