* [cpp-qt-client]Fix variable redeclarations in the api-body.mustache
* [cpp-qt-client]Utilize enum for OauthMethod flow
* [cpp-qt-clien]Suffix token variables in OAuth with meaningful state names instead of numeric indexes
* use custom serializer for non string enums for multiplatform library
* add missing imports
* add tests for enum integers
---------
Co-authored-by: rlnt <relentless@rlnt.dev>
* [Python] Use pydantic_core.to_jsonable_python to convert non-standard data types
* [Python] Add test for UUID serialization
* update python samples
---------
Co-authored-by: Espen Haugsdal <espen.haugsdal@gmail.com>
* Fix fix that child constructor was invalid when having readonly field in parent
* add classType field
* fix test
* update samples
---------
Co-authored-by: bdurca <rca@bankdata.dk>
* feat(kotlin): add Jackson 3 infrastructure to AbstractKotlinCodegen
* feat(kotlin-spring): add useSpringBoot4 and useJackson3 flags
* feat(kotlin-spring): update template selection for Spring Boot 4
* feat(kotlin-spring): add SB4 templates for all libraries
* test(kotlin-spring): add tests for Spring Boot 4 and Jackson 3 support
* feat(kotlin-spring): add kotlin-springboot-4 sample with Jackson 3
* docs(kotlin-spring): document useSpringBoot4 and useJackson3 options
* fix(kotlin-spring): update Gradle templates to Kotlin 2.2 JvmTarget DSL and bump CI Gradle
- Replace deprecated kotlinOptions.jvmTarget with kotlin.compilerOptions DSL
- Upgrade Gradle wrapper to 8.14 for Kotlin 2.2 compatibility
- Add kotlin-springboot-4 sample to JDK17 CI matrix
- Regenerate sample with updated templates
* fix(kotlin-spring): register useJackson3 CLI option and use Gradle 8.14 for SB4
- Add addSwitch for useJackson3 in KotlinSpringServerCodegen so it
appears in auto-generated docs
- Update gradle-wrapper.properties.mustache templates to use Gradle 8.14
when useSpringBoot4 is enabled (required minimum for Spring Boot 4)
* fix(kotlin-client): fix Jackson 3 package imports and add ktor/spring-restclient support
Replace hardcoded com.fasterxml.jackson imports with {{jacksonPackage}} template
variable across all kotlin-client templates so generated code compiles correctly
when useJackson3=true. Also fix trailing space in OAuth Bearer header, enable
useJackson3 for jvm-ktor (Ktor 3.4.0) and jvm-spring-restclient (Spring Boot 4),
and add conditional Jackson 3 dependencies in build.gradle.
* Revert "fix(kotlin-client): fix Jackson 3 package imports and add ktor/spring-restclient support"
Block useJackson3 for kotlin-client with a clear error until client
template support is added in a follow-up PR.
* ci: retrigger CI checks
* fix(kotlin-spring): replace legacy oauth2 starter and add Jackson exclusivity tests
Replace deprecated spring-cloud-starter-oauth2:2.2.5.RELEASE with
spring-boot-starter-oauth2-client in SB4 templates, as the legacy
starter is pre-Jakarta and incompatible with Spring Boot 4.
Add negative assertions to Jackson dependency tests to ensure Jackson 2
and Jackson 3 artifacts are mutually exclusive.
* feat(kotlin-spring): default to Jackson 3 when Spring Boot 4 is enabled
Spring Boot 4 ships with Jackson 3 out of the box, so useJackson3 now
defaults to true when useSpringBoot4 is enabled and the user hasn't
explicitly set useJackson3.
* fix(kotlin-spring): declare springdoc version property regardless of useSwaggerUI
The springdoc-openapi.version Maven property was only declared when
useSwaggerUI=true, but the springdoc core dependency (used when
useSwaggerUI=false) also references it, causing an undefined property.
* fix(kotlin-spring): use modern OAuth2 client config for Spring Boot 4 spring-cloud library
Add useSpringBoot4 conditionals to clientConfiguration.mustache so SB4
uses OAuth2AuthorizedClientManager instead of legacy OAuth2FeignRequestInterceptor
and *ResourceDetails classes that don't exist in Spring Boot 4.
* fix(kotlin-spring): default Jackson 3 when Spring Boot 4 set via setter or additionalProperties
The Jackson 3 defaulting logic only checked additionalProperties map,
so calling setUseSpringBoot4(true) via the Java API skipped the default.
Now checks both the field value and the map.
* fix(kotlin-spring): add trailing newline to clientConfiguration template
* Trigger CI
* clean up conditions
* fix(kotlin-spring): remove SB4+Jackson2 test since SB4 unconditionally implies Jackson 3
Spring Boot 4 ships with Jackson 3 — there is no supported SB4+Jackson2
combination, so the test was asserting an invalid scenario.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* [cpp-qt-client]Optimize generated code
- Use const references at function parameters
- Do not perform useless initialization of QStrings
- Use qDeleteAll
* - Do not change signal arguments to const in public API as it breaks API
- Fix whitespace typo
* Regenerate tests
* [typescript-fetch] Add withRequestOptsInInterface option to hide RequestOpts from API interfaces
The *RequestOpts methods are implementation details that build request
options before sending the fetch call. Most consumers using the API
interfaces don't need these methods exposed in the contract.
Add a new `withRequestOptsInInterface` boolean option (default: true
for backward compatibility) that controls whether *RequestOpts methods
appear in the generated API interface declarations. When set to false,
the methods remain as public methods on the class but are excluded from
the interface.
* Fix test: scope RequestOpts assertion to interface section
The previous test used indexOf("}") to find the interface end, which
matched the } inside @throws {RequiredError} JSDoc instead of the
actual closing brace. Use the class declaration position as the
boundary instead.
* Fix forbiddenapis violation: use explicit UTF-8 charset
Replace new String(byte[]) with new String(byte[], StandardCharsets.UTF_8)
to satisfy the forbiddenapis Maven plugin check.
* Add withRequestOptsInInterface to options test and regenerate docs
* [kotlin] Add companionObject option to generate companion objects in data classes
Add a new boolean CLI option `companionObject` (default: false) that generates
an empty `companion object { }` on all data class models, enabling users to add
companion extensions from outside the generated code.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* [kotlin-spring] Add companionObject option to generate companion objects in data classes
Extend the same companionObject option to the kotlin-spring server generator,
enabling companion extensions on generated Spring model classes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* update spec, add tests
---------
Co-authored-by: Jeffrey Blayney <jeffrey.blayney@missionlane.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add support for Jackson 3 and Spring Boot 4 in Java resttemplate client generation
* chore: remove deprecated resttemplate-springBoot4 paths from YAML configuration
* feat: add serialization library support for Jackson 3 in Java client
* chore: initialize project structure and add initial files
* feat: update library template for Spring RestTemplate to support Jackson 3
* chore: add paths for resttemplate-springBoot4 in YAML configuration
* chore: remove unused test files from the project
* chore: add libs.versions.toml and update FILES for new test files
* chore: remove unused test files from the project
* Fix to_dict method
* Fix union type hint
* Use more concise code for dict generation
* Add from dict method for array of dicts
* Fix after reviewer comments
* add check for none
* Update samples
* fix(typescript-fetch): generate validationAttributes when withoutRuntimeChecks=true
Previously, setting `validationAttributes=true` had no effect when
`withoutRuntimeChecks=true` was set. This commit fixes that by adding
the validation attributes to the `modelGenericInterfaces.mustache`
template (that is used when withoutRuntimeChecks is enabled)
- Moves validationAttributes logic to a partial template and includes it
in the modelGenericInterfaces.mustache template
- modelGeneric.mustache includes the modelGenericInterfaces.mustache
partial and should work as before
* update samples
Problem
SynchronizedDictionary is a struct held as a var property on shared singleton classes (URLSessionRequestBuilderConfiguration and AlamofireRequestBuilderConfiguration). When multiple concurrent network requests mutate credentialStore or managerStore from different
threads, Swift's memory exclusivity rules treat each subscript mutation as a modifying access to the entire struct — causing a real ThreadSanitizer "Swift access race".
Changes
struct → class (SynchronizedDictionary.mustache + 13 sample files)
Changing SynchronizedDictionary from a value type to a reference type makes mutations go through pointer indirection. Concurrent subscript writes now only touch the object's internal state (already protected by NSRecursiveLock), rather than triggering a modifying
access on the owning class's stored property.
var → let (URLSessionImplementations.mustache + 11 sample files, AlamofireImplementations.mustache + 2 sample files)
Since SynchronizedDictionary is now a class, the properties credentialStore and managerStore only need to hold a stable reference — they never get reassigned. Declaring them as let makes this intent explicit and prevents any residual exclusivity issues on the property
itself.
* Add support for `Optional<T>` in Dart generator (both dart and dart-dio) to distinguish absent, null, and present states
* Add useOptional and patchOnly options to the Dart client configurations thing for testing (setting both options to "true" for both types)
* Add documentation for useOptional and patchOnly options
* Tune the dart mustache (pluss class mustache) to get rid of the extra whitespace
* More tuning of the dart mustache files to adjust amount of whitespace - match previously generated setup
* Tune dart mustache templates to fix whitespace stuff by tips from wing328
* Fix the logic gap where useOptional=true without patchOnly=true appears to do nothing
* Rename getString() to extractModelNameFromBodyParam()
* Add behavioral tests
* useOptional flag wrapping non-required properties
* patchOnly mode PATCH schema detection
* patchOnly=true auto-enabling useOptional
* Parameter unwrapping behavior
* Fix inconsistency (my own) in native_class.mustache
* Remove "dead code" (because of timing). postProcessModels has already executed before postProcessOperationsWithModels.
And then we don't even need the extractModelNameFromBodyParam method...
* Fix Optional<T> to properly distinguish between absend and null
Had issues in dio
* Regenerate Dart samples
* Fix extra blank lines in dart-dio json_serializable template output
* test: add test case for `ExclusiveMinMax Test`
(#22943)
* feat: Compatibility with exclusiveMinimum in OpenAPI 3.0.0 vs. 3.1.0
(#22943)
---------
Co-authored-by: 葉宗原 TsungYuan Yeh <tsungyuan.yeh@tpisoftware.com>
* fix(kotlin): use sealed interface for non-discriminator oneOf/anyOf in kotlinx_serialization
* add sample and CI config for non-discriminator oneOf/anyOf with kotlinx_serialization
* replace petstore with focused spec for non-discriminator oneOf/anyOf sample
* add CI path filter for kotlin-oneOf-anyOf-kotlinx-serialization sample
* add x-duplicated-data-type guard to kotlinx_serialization oneOf/anyOf templates
The Gson path already uses {{^vendorExtensions.x-duplicated-data-type}} to skip
duplicate data types, but the new kotlinx_serialization path was missing this
guard. Without it, duplicate value class names would be generated if multiple
schemas resolve to the same Kotlin dataType, causing compilation errors.
* remove invalid path pattern from push.branches in CI config
push.branches filters by branch name, not file paths. The sample directory
pattern added here had no effect. The pull_request.paths filter remains and
correctly triggers CI for this sample.
* update generateOneOfAnyOfWrappers docs to include kotlinx_serialization support