Skip to content
Merged
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
29 changes: 23 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ no leading `v`.

## [Unreleased]

## [0.3.0] - 2026-11-02

### Added
- `JobSLORequirement` routes. The index watches both kinds, and a route
resolves across them; a job route's body has `queue` (`maxDepth`, `promql`)
Expand All @@ -15,15 +17,28 @@ no leading `v`.
- The `pdengine` bound type on `LLMSLORequirement` (helm-charts#95).
- Bound values of 0 (scale-to-zero), which the CRD has allowed since
helm-charts#20; they were refused with `400` before.
- CI on every pull request: pytest and the end-to-end smoke run on Python 3.10
and 3.12, a docker build, and a gate for the license text and committed
credentials.
- Dependabot for the Python dependencies and the GitHub Actions.
- `NOTICE`.
- `docs/openapi.yaml`.

### Changed
- A write the CRD's rules reject (API server `422`) is `400 invalid_request`
with the API server's message, not `502`.
- `GET /config` also lists job routes, in the same summary shape.

## [0.2.1] - 2026-10-28

### Fixed
- On a cluster with no `LLMSLORequirement`, slo-api never counted its index
as synced and crash-looped on the liveness probe. The index now lists
before it watches, so an empty list is a complete one.
- A watch reconnect cleared the index before rebuilding it, so a request in
between answered a known route as unknown. The rebuilt index is swapped in
whole.

### Added
- CI on every pull request: pytest and the end-to-end smoke run on Python 3.10
and 3.12, a docker build, and a gate for the license text and committed
credentials.
- `NOTICE`.

### Removed
- The internal GitLab pipeline (`.gitlab-ci.yml`).
Expand Down Expand Up @@ -65,7 +80,9 @@ First tagged release.
from a version tag and pushes it to Docker Hub.
- Apache-2.0 `LICENSE`.

[Unreleased]: https://github.com/modelsphere/slo-api/compare/0.2.0...HEAD
[Unreleased]: https://github.com/modelsphere/slo-api/compare/0.3.0...HEAD
[0.3.0]: https://github.com/modelsphere/slo-api/compare/0.2.1...0.3.0
[0.2.1]: https://github.com/modelsphere/slo-api/compare/0.2.0...0.2.1
[0.2.0]: https://github.com/modelsphere/slo-api/compare/0.2.0-rc1...0.2.0
[0.2.0-rc1]: https://github.com/modelsphere/slo-api/compare/0.1.0...0.2.0-rc1
[0.1.0]: https://github.com/modelsphere/slo-api/releases/tag/0.1.0
2 changes: 1 addition & 1 deletion docs/openapi.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.1.0
info:
title: slo-api
version: 0.2.1
version: 0.3.0
summary: Read and change the SLO of an LLM inference service by its route.
description: |
slo-api is a front door onto `LLMSLORequirement` and `JobSLORequirement`
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "slo-api"
version = "0.2.1"
version = "0.3.0"
description = "HTTP facade for LLMSLORequirement CRs — exposes route-keyed REST API, translates to/from CRD specs"
requires-python = ">=3.10"
readme = "README.md"
Expand Down
Loading