From 6945d096fc2417df5ea1989b776abda21be27318 Mon Sep 17 00:00:00 2001 From: scalarbot Date: Fri, 28 Aug 2026 19:26:34 +0000 Subject: [PATCH 1/5] chore(api): update generated SDK content 1 generated file changed with no detected API surface change (documentation, examples, or file content). Build: SSUZ1KR5x7GqRYrSDfKlK --- src/scalar_sdk/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scalar_sdk/_version.py b/src/scalar_sdk/_version.py index b0579f9..de2ee7b 100644 --- a/src/scalar_sdk/_version.py +++ b/src/scalar_sdk/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Scalar. See README.md for details. __title__ = "scalar" -__version__ = "0.4.0" # x-release-please-version +__version__ = "0.5.0" # x-release-please-version From 8be2812c2ceda556512945883830d7fb25f7328e Mon Sep 17 00:00:00 2001 From: scalarbot Date: Tue, 1 Sep 2026 16:50:58 +0000 Subject: [PATCH 2/5] chore(api): regenerate SDK - Regenerated with generator `0.31.1` (previously `0.30.1`). Build: oEoH9Lxloq9EfBy11HQGV --- scalar-sdk.manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index 8a6195f..3dfeb6e 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -1,7 +1,7 @@ { "name": "Scalar", "slug": "scalar", - "generatorVersion": "0.30.1", + "generatorVersion": "0.31.1", "servers": [ "https://access.scalar.com" ], From efd744aaef3eb57938f18b575ba2d93f5e19d6eb Mon Sep 17 00:00:00 2001 From: scalarbot Date: Tue, 1 Sep 2026 22:12:00 +0000 Subject: [PATCH 3/5] chore(api): regenerate SDK - Regenerated with generator `0.32.0` (previously `0.31.1`). Build: NzOu2CK8x2XtBME8WOwD4 --- scalar-sdk.manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index 3dfeb6e..e7baf96 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -1,7 +1,7 @@ { "name": "Scalar", "slug": "scalar", - "generatorVersion": "0.31.1", + "generatorVersion": "0.32.0", "servers": [ "https://access.scalar.com" ], From 7aebe8cf76fd7a56b0fb0bc1b0973701ff48ec97 Mon Sep 17 00:00:00 2001 From: scalarbot Date: Tue, 15 Sep 2026 21:15:24 +0000 Subject: [PATCH 4/5] feat(api)!: update schema timestamp (+1 more change) - Regenerated with generator `0.32.14` (previously `0.32.0`). - Schema `timestamp` shape changed. BREAKING CHANGE: Schema `timestamp` shape changed. Build: bOvcZYvS3NarRoMC1aix2 --- .github/workflows/release-please.yml | 14 +++++++-- scalar-sdk.manifest.json | 7 +++-- src/scalar_sdk/_streaming.py | 45 ---------------------------- 3 files changed, 16 insertions(+), 50 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 374ce63..9a767cf 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -1,12 +1,20 @@ name: Release Please on: - # Fires when a human merges the platform-managed release PR into main - # (the PR's base, so its diff shows the full pending release). Regenerations and - # custom-code pushes only touch scalar-next and never run this workflow. + # A release is cut when a human merges the platform-managed release PR into + # main (the PR's base, so its diff shows the full pending release). + # Every other push here runs release-please as well — commits written straight to + # this branch included — and cuts nothing, there being no release commit at the tip. push: branches: - main + # The Scalar platform pushes these workflow files straight to main to keep them + # current between releases; that is bookkeeping, never a release. Running anyway is worse + # than pointless on a branch that has not been handed a .release-please-manifest.json yet — + # release-please fails the run outright when it cannot read one. A release commit always + # rewrites the manifest and the changelog, so this filter can never swallow one. + paths-ignore: + - '.github/workflows/**' # Manual fallback only; nothing in the automated chain depends on dispatch. workflow_dispatch: diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index e7baf96..7a423b0 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -1,7 +1,7 @@ { "name": "Scalar", "slug": "scalar", - "generatorVersion": "0.32.0", + "generatorVersion": "0.32.14", "servers": [ "https://access.scalar.com" ], @@ -770,7 +770,10 @@ "type": { "kind": "primitive", "type": "integer", - "validation": {} + "validation": { + "minimum": 0, + "maximum": 9007199254740991 + } } }, { diff --git a/src/scalar_sdk/_streaming.py b/src/scalar_sdk/_streaming.py index ca4e4aa..0b5f7fa 100644 --- a/src/scalar_sdk/_streaming.py +++ b/src/scalar_sdk/_streaming.py @@ -56,33 +56,8 @@ def __stream__(self) -> Iterator[_T]: response = self.response process_data = self._client._process_response_data iterator = self._iter_events() - content_type = (response.headers.get("content-type") or "").lower() - is_jsonl = "json" in content_type and "event-stream" not in content_type try: - if is_jsonl: - # Newline-delimited JSON (`application/jsonl`, - # `application/x-jsonl`, etc.) has no SSE framing, so the - # `_decoder.iter_bytes` path above would never yield. We - # parse each non-empty line as one event so callers can - # iterate without caring whether the wire format is SSE - # or JSONL. - buffer = b"" - for chunk in response.iter_bytes(): - if not chunk: - continue - buffer += chunk - while b"\n" in buffer: - line, buffer = buffer.split(b"\n", 1) - text = line.decode("utf-8").strip() - if not text: - continue - yield process_data(data=json.loads(text), cast_to=cast_to, response=response) - tail = buffer.decode("utf-8").strip() - if tail: - yield process_data(data=json.loads(tail), cast_to=cast_to, response=response) - return - for sse in iterator: if not sse.data: continue @@ -153,28 +128,8 @@ async def __stream__(self) -> AsyncIterator[_T]: response = self.response process_data = self._client._process_response_data iterator = self._iter_events() - content_type = (response.headers.get("content-type") or "").lower() - is_jsonl = "json" in content_type and "event-stream" not in content_type try: - if is_jsonl: - # See the sync sibling for why JSONL gets its own branch. - buffer = b"" - async for chunk in response.aiter_bytes(): - if not chunk: - continue - buffer += chunk - while b"\n" in buffer: - line, buffer = buffer.split(b"\n", 1) - text = line.decode("utf-8").strip() - if not text: - continue - yield process_data(data=json.loads(text), cast_to=cast_to, response=response) - tail = buffer.decode("utf-8").strip() - if tail: - yield process_data(data=json.loads(tail), cast_to=cast_to, response=response) - return - async for sse in iterator: if not sse.data: continue From 412d2b072d6f2b33a6c4b70fea8ebc84b8737c1a Mon Sep 17 00:00:00 2001 From: "scalar-docs[bot]" <148485328+scalar-docs[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2026 21:15:49 +0000 Subject: [PATCH 5/5] release: 0.6.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 18 ++++++++++++++++++ pyproject.toml | 2 +- src/scalar_sdk/_version.py | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f1c1e58..bcd0522 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.6.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2106ecf..136bc5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [0.6.0](https://github.com/scalar/scalar-python/compare/v0.5.0...v0.6.0) (2026-09-15) + + +### ⚠ BREAKING CHANGES + +* **api:** Schema `timestamp` shape changed. + +### Features + +* **api:** update schema timestamp (+1 more change) ([7aebe8c](https://github.com/scalar/scalar-python/commit/7aebe8cf76fd7a56b0fb0bc1b0973701ff48ec97)) + + +### Chores + +* **api:** regenerate SDK ([efd744a](https://github.com/scalar/scalar-python/commit/efd744aaef3eb57938f18b575ba2d93f5e19d6eb)) +* **api:** regenerate SDK ([8be2812](https://github.com/scalar/scalar-python/commit/8be2812c2ceda556512945883830d7fb25f7328e)) +* **api:** update generated SDK content ([6945d09](https://github.com/scalar/scalar-python/commit/6945d096fc2417df5ea1989b776abda21be27318)) + ## [0.5.0](https://github.com/scalar/scalar-python/compare/v0.4.0...v0.5.0) (2026-08-28) diff --git a/pyproject.toml b/pyproject.toml index 736f806..dd3ec40 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "scalar-sdk" -version = "0.5.0" # x-release-please-version +version = "0.6.0" # x-release-please-version description = "API for managing Scalar platform resources." readme = "README.md" license = "Apache-2.0" diff --git a/src/scalar_sdk/_version.py b/src/scalar_sdk/_version.py index de2ee7b..fc0e024 100644 --- a/src/scalar_sdk/_version.py +++ b/src/scalar_sdk/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Scalar. See README.md for details. __title__ = "scalar" -__version__ = "0.5.0" # x-release-please-version +__version__ = "0.6.0" # x-release-please-version