Repository navigation
chore(sdk): upgrade SDK generators and regenerate clients (#113) - #114
Conversation
openapi-generator v7.14.0 -> v7.26.0, oapi-codegen v2.5.0 -> v2.8.0 (needs the golang:1.25 generator image), NSwag 14.4.0 -> 14.7.1. The Python generator now validates uuid-formatted ids, so the test fixtures use a real UUID. SDK version 1.0.1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ntic >= 2.11 (#113) Review round 1: the new Python generator typed format:uuid ids as uuid.UUID (public type change) and relies on pydantic 2.11 ConfigDict keys; the TypeScript generator emitted unused Markdown docs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ned (#113) Review round 2. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Review note (rejected): the regenerated TypeScript ScanResponseFromJSON passes a null createdAt/updatedAt/expiresAt through unchanged. The OpenAPI document declares these fields required and non-nullable and the API never sends null for them, so the generated type is honest for this server; the 1.0.0 behaviour (an Invalid Date object) was not safer. No wrapper change. |
…eader typing (#113) Review round 3. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Review note (rejected): caching the environment proxy lookup in the wrapper. Configuration() reading getproxies() at construction is the generated client's standard behaviour (the same as requests.Session); the README recommends one long-lived client, and a per-request client already pays a connection pool. Not changed. |
… cursor test (#113) Review round 4. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Review round 4, decided: (1) a wrapper-level proxy opt-out is not added. The proxy variables are the standard client convention, the change is released as MINOR, documented in the Python README and pinned by a test; an opt-out parameter would be a new API surface and belongs in its own issue. (2) The Go wire change from explicit nulls to omitted fields is covered by tests (unset and zero-value pointers) and the server treats both the same. |
…, jq prerequisite (#113) Review round 5. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Review round 5, decided: the pydantic floor and the proxy support are documented, tested and released as MINOR (1.1.0); the Go module already declares go 1.24.0 and the generated code compiles under the CI matrix; the Go null-to-omitted change is pinned by tests. Fixed: temporary spec cleanup and git-ignore, jq prerequisite check and docs, case-insensitive Retry-After lookup (with a test). |
Review round 6. A leftover temporary spec is git-ignored. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Review round 6, decided: fixed the RETURN trap that leaked out of generate_python. Rejected: the Rust generator version is not emitted into the committed generated.rs (only a discarded Cargo.toml); stripping uuid for the Python generator only is intended and affects no parameter today; proxy opt-out and go.mod minimums were decided in earlier rounds (go.mod is unchanged and the Go 1.22/stable CI jobs cover it); generator whitespace differences come from the generator, not hand edits. |
Closes #113
What
Second half of #113. The twelve Dependabot PRs (#99-#107, #110-#112) are already merged; after them every NuGet, npm and Go dependency of the solution and the SDKs was at its latest stable version, and the Rust crate ranges already resolve to the latest releases. This PR brings the SDK generators up to date and regenerates the clients:
golang:1.25generator image)sdk/VERSION1.0.0 -> 1.1.0 (MINOR: the Python client gains proxy environment support and needs pydantic >= 2.11).Why
The generator pins were five months behind; the Dependabot bumps covered only the runtime packages. Regenerating with current generators picks up the upstream runtime fixes (TypeScript date/file handling, Python strict
uuidvalidation, Go nullable handling).Behaviour changes
format: uuidasuuid.UUIDin Python;generate.shmaps it back tostrso scan ids keep their 1.0.0 StrictStr type (testtest_scan_ids_stay_strings). The generated pydantic models need pydantic >= 2.11 (validate_by_name), so the floor is raised (testtest_generated_models_accept_python_field_names). The Python client now honours proxy environment variables (documented in the README).client.py,client.ts,AvmBalanceIndexerClient.cs,client.go,lib.rs) needed a change.Tests
npm run typecheck,npm test(29 passed)pytest(46 passed)dotnet test(23 passed on net8.0 and net10.0)go vet,gofmt -l,go test(pass)cargo testinrust:1.89(generated code unchanged)dotnet test AvmBalanceIndexer.slnxwithAVM_SKIP_LIVE_TESTS=1Checklist
sdk/VERSIONraised, generated code committed🤖 Generated with Claude Code