Skip to content

chore(sdk): upgrade SDK generators and regenerate clients (#113) - #114

Merged
scholtz merged 7 commits into
mainfrom
fix/113-dependency-upgrade
Oct 15, 2026
Merged

scholtz merged 7 commits into
mainfrom
fix/113-dependency-upgrade

Conversation

@scholtz

@scholtz scholtz commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

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:

Tool Before After
openapi-generator-cli (TypeScript, Python) v7.14.0 v7.26.0
oapi-codegen (Go) v2.5.0 v2.8.0 (needs the golang:1.25 generator image)
NSwag (.NET) 14.4.0 14.7.1
cargo-progenitor (Rust) 0.15.1 0.15.1 (already latest)

sdk/VERSION 1.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 uuid validation, Go nullable handling).

Behaviour changes

  • None in the public wrappers. openapi-generator 7.26 types format: uuid as uuid.UUID in Python; generate.sh maps it back to str so scan ids keep their 1.0.0 StrictStr type (test test_scan_ids_stay_strings). The generated pydantic models need pydantic >= 2.11 (validate_by_name), so the floor is raised (test test_generated_models_accept_python_field_names). The Python client now honours proxy environment variables (documented in the README).
  • No wrapper (client.py, client.ts, AvmBalanceIndexerClient.cs, client.go, lib.rs) needed a change.

Tests

  • TypeScript: npm run typecheck, npm test (29 passed)
  • Python: pytest (46 passed)
  • .NET SDK: dotnet test (23 passed on net8.0 and net10.0)
  • Go: go vet, gofmt -l, go test (pass)
  • Rust: cargo test in rust:1.89 (generated code unchanged)
  • Solution: dotnet test AvmBalanceIndexer.slnx with AVM_SKIP_LIVE_TESTS=1

Checklist

  • Issue linked, team label set
  • Tests for every behaviour change
  • sdk/VERSION raised, generated code committed
  • CI green

🤖 Generated with Claude Code

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>
@scholtz scholtz added the team:a Owned by Team A label Oct 15, 2026
scholtz-aures and others added 2 commits October 15, 2026 10:15
…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>
@scholtz

scholtz commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

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>
@scholtz

scholtz commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

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>
@scholtz

scholtz commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

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>
@scholtz

scholtz commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

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>
@scholtz

scholtz commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

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.

@scholtz
scholtz merged commit d2979d4 into main Oct 15, 2026
14 checks passed
@scholtz
scholtz deleted the fix/113-dependency-upgrade branch October 15, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

team:a Owned by Team A

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(deps): merge Dependabot PRs and upgrade all NuGet, npm and SDK dependencies

2 participants