Skip to content

release: 1.21.0#181

Merged
karanganesan merged 15 commits intomainfrom
release-please--branches--main--changes--next
Apr 7, 2026
Merged

release: 1.21.0#181
karanganesan merged 15 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app bot commented Mar 17, 2026

Automated Release PR

1.21.0 (2026-04-01)

Full Changelog: v1.20.1...v1.21.0

Features

  • internal: implement indices array format for query and form serialization (bf30550)

Bug Fixes

  • deps: bump minimum typing-extensions version (9a5f3d8)
  • pydantic: do not pass by_alias unless set (aea1d45)
  • sanitize endpoint path params (7e283ad)

Chores

  • ci: skip lint on metadata-only changes (e1c08c8)
  • internal: tweak CI branches (49a2700)
  • internal: update gitignore (f08d2fc)
  • tests: bump steady to v0.19.4 (c5e1192)
  • tests: bump steady to v0.19.5 (c41fde7)
  • tests: bump steady to v0.19.6 (344bef0)
  • tests: bump steady to v0.19.7 (3fb0ab0)
  • tests: bump steady to v0.20.1 (f74f104)
  • tests: bump steady to v0.20.2 (c65c06c)

Refactors

  • tests: switch from prism to steady (9e43236)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

@cursor
Copy link
Copy Markdown

cursor bot commented Mar 17, 2026

PR Summary

Medium Risk
Changes affect URL/path construction and query serialization, which can alter request shapes and potentially break edge-case integrations. CI/test tool refactors and dependency bumps add some churn but are well-scoped.

Overview
Releases 1.21.0 and updates packaging metadata (pyproject.toml, _version.py, release manifest, changelog).

Adds safer request path interpolation via new path_template() (percent-encodes path params and rejects dot-segments) and switches generated generations endpoints to use it instead of f-strings.

Extends query/form serialization to support indices array format, refines Pydantic compatibility to only pass by_alias when explicitly set, bumps minimum typing-extensions, and updates test tooling/scripts/docs from Prism to Steady (including new .stdy.log ignore and CI tweaks to skip lint/build on metadata-only pushes).

Written by Cursor Bugbot for commit 513697a. This will update automatically on new commits. Configure here.

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from fca90df to 330c995 Compare March 17, 2026 11:17
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app bot commented Mar 17, 2026

🧪 Testing

To try out this version of the SDK:

pip install 'https://pkg.stainless.com/s/luma_ai-python/c65c06c43c3247fea872c39415a279ade3ceae01/lumaai-1.20.1-py3-none-any.whl'

Expires at: Fri, 01 May 2026 07:53:30 GMT
Updated at: Wed, 01 Apr 2026 07:53:30 GMT

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 330c995 to 12a6c31 Compare March 17, 2026 11:22
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 12a6c31 to a714206 Compare March 20, 2026 03:31
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from a714206 to e93b413 Compare March 20, 2026 03:31
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from e93b413 to be5f4ef Compare March 21, 2026 04:31
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from be5f4ef to 5afa771 Compare March 21, 2026 04:38
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Local variable shadows its own function name
    • Renamed the local path_template variable to path_template_part to remove function-name shadowing without changing behavior.

Create PR

Or push these changes by commenting:

@cursor push 084ff571f6
Preview (084ff571f6)
diff --git a/src/lumaai/_utils/_path.py b/src/lumaai/_utils/_path.py
--- a/src/lumaai/_utils/_path.py
+++ b/src/lumaai/_utils/_path.py
@@ -104,10 +104,10 @@
         rest, fragment_template = rest.split("#", 1)
     if "?" in rest:
         rest, query_template = rest.split("?", 1)
-    path_template = rest
+    path_template_part = rest
 
     # Interpolate each portion with the appropriate quoting rules.
-    path_result = _interpolate(path_template, kwargs, _quote_path_segment_part)
+    path_result = _interpolate(path_template_part, kwargs, _quote_path_segment_part)
 
     # Reject dot-segments (. and ..) in the final assembled path.  The check
     # runs after interpolation so that adjacent placeholders or a mix of static

rest, fragment_template = rest.split("#", 1)
if "?" in rest:
rest, query_template = rest.split("?", 1)
path_template = rest
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Local variable shadows its own function name

Low Severity

The local variable path_template on this line shadows the enclosing function also named path_template. While this doesn't cause a runtime bug today (no recursive call is made), it creates confusing code where the same identifier refers to different things depending on scope. It also prevents any future recursive usage and can confuse IDE navigation and static analysis tools. A name like path_part would avoid the ambiguity.

Fix in Cursor Fix in Web

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 5afa771 to 1cf4061 Compare March 24, 2026 04:36
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 1cf4061 to d08007c Compare March 24, 2026 04:43
Note that we still want to run tests, as these depend on the metadata.
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from d08007c to f23dc99 Compare March 25, 2026 03:12
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from f23dc99 to 1e8ba61 Compare March 25, 2026 03:13
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 1e8ba61 to ac7b024 Compare March 27, 2026 05:54
@stainless-app stainless-app bot changed the title release: 1.20.2 release: 1.21.0 Mar 27, 2026
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from ac7b024 to b312f59 Compare March 27, 2026 05:54
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from b312f59 to ce0b4c3 Compare April 1, 2026 07:49
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from ce0b4c3 to 513697a Compare April 1, 2026 07:53
@karanganesan karanganesan enabled auto-merge April 7, 2026 19:12
@karanganesan karanganesan merged commit a58d384 into main Apr 7, 2026
11 checks passed
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app bot commented Apr 7, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant