21538 Commits

Author SHA1 Message Date
Rodrigo de Almeida - RMA3
c30fb413bb
issue 21965 - [REQ] MergedSpecBuilder load servers urls from input specs (#21966)
Co-authored-by: Rodrigo Maciel de Almeida <rodrigo.almeida@wefin.com.br>
2025-09-16 01:50:32 +08:00
Jean-Marc Le Roux
6b692739e8
[Rust] Add support for native-tls and rustls-tls Cargo features for the reqwest library (#21925)
* feat(rust): add the native-tls (default) and rustls Cargo features for `reqwest`

* refactor(rust): rename the `rustls` Cargo feature to follow the ecosystem naming convention
2025-09-14 17:22:11 +08:00
Christophe Moine
ee4cb9ac22
[jaxrs-spec][quarkus] Feat: Add an option to use "org.jboss.resteasy.reactive.RestResponse" (#21877)
* replace Response by RestResponse

* fix rest response for Async

* update documentation

* Add option "returnJBossResponse"

* Add tests + fixes

* Polish

* Add dependency "io.quarkus.resteasy.reactive:resteasy-reactive" when returnJBossResponse=true

* fix JavaJAXRSSpecServerCodegenTest

* generate samples & docs
2025-09-14 17:11:06 +08:00
GregDThomas
ec28d6261c
Fix #21921 by marking required path parameters as @NotNull (#21951) 2025-09-13 17:48:47 +08:00
Leon Linhart
0edcc9d204
Correctly annotate Gradle task in- & outputs and enable stricter plugin validation (#21957)
* Correctly apply Gradle task input & output annotations to accessors

Gradle's task input and output annotations should be applied to the accessors instead of the properties. No adhering to this can cause funky behavior in the generated stubs. Examples of this can be found in the docs: https://docs.gradle.org/current/userguide/implementing_custom_tasks.html

Also adds missing annotations so that validation passes

* Enable strict Gradle plugin validation
2025-09-13 16:49:06 +08:00
MarcoZurich
59eac42b0f
Fix "defaultToEmptyContainer" not properly implemented for non-nullable, required Map (#21953)
* Issue 21890: Fixed flag to use for check of required, non-nullable map

* Issue 21890: added test (first draft)

* Issue 21890: Added Test

---------

Co-authored-by: Marco <chorizoparatodos@gmail.com>
2025-09-13 16:47:45 +08:00
William Cheng
5efe16c66b
[java] Update rest-assured dependencies to newer versions (#21961)
* update rest-assured dep to newer versions

* update build
2025-09-13 16:32:31 +08:00
Adam Drakeford
8a061acc7c
Remove myself from Kotlin technical committee (#21959)
Unfortunately i have not had time to engage in this project in recent years, and as such feel its best for myself and the community if i remove myself from the Kotlin technical committe. 

Thanks for all the great work done by all contributors.
2025-09-12 23:50:09 +08:00
William Cheng
177b94b1b4
Add tests for numeric form data (kotlin - jvm-ktor) (#21952)
* add tests for numeric form data (kotlin)

* remove null check as its done already
2025-09-12 15:28:57 +08:00
Jef LeCompte
58fde20e2c
fix: parameter appending for number types (#21947)
* fix: parameter appending for number types

Updated string and number parameter handling to ensure proper conversion to string before appending.

* Update api.mustache
2025-09-12 13:10:40 +08:00
William Cheng
8300794c5e update python samples 2025-09-11 20:56:37 +08:00
Maik Dijkstra
9b692e5ef7
fix(ruby-client): Fix incorrect boolean parsing in OneOf/AnyOf (#21943)
Changes the logic of parsing of OneOf/AnyOf to fix incorrect type coercion
in OneOf/AnyOf contexts. The guard which checks whether typed_data is true-ish
fails for booleans. If the oneOf includes a boolean type and the data is false then
it will correctly parse this value as a boolean. However, the guard class will determine
that false is not true-ish and therefore returns nil. So the result of the type coercion
of false will be nil. This can result in problems when dealing with default true.

For example how a false can turn into a true with defaults:
1. The API returns false
2. The type coercion determines false becomes nil
3. When storing this retrieved record with a default of true for this column the stored value is suddenly true
while the API specifically returned false

This fix removes this guard and will rely on the exception raised to return nil when type coercion fails.
2025-09-11 20:46:06 +08:00
Knut Erik Langdahl
d523903827
fix(kotlin): set isVoid to true for Unit datatypes (#21940) 2025-09-11 20:17:05 +08:00
Artem ILIN
5f647b8477
[python] fixes #21936, api client type checks (#21935) 2025-09-11 00:04:48 +08:00
Pascal Bachor
6825d9ccaa
python: feature flag for lazy imports (#21885)
* python: feature flag for lazy imports

* python: update samples

* python: add python-lazyImports to test job

* python: reuse tests in lazyImports sample

* python: avoid using non-imported submodules

* add normalizer option

---------

Co-authored-by: Pascal Bachor <bachorp@users.noreply.github.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
2025-09-10 17:22:41 +08:00
keepConcentration
0e42edc95b
[#21619] fix(python): update pyproject.toml license format with poetry1 fallback (#21931)
* Add support for both string and object license formats in `pyproject.toml` for Python and Python-Pydantic generators. (#21619)

* Generate the samples (#21698)

* Generate the samples (#21698)

* Remove Python-Pydantic-v1 license format tests (#21619)

* Revert license format to string in Python-Pydantic-v1 samples (#21619)
2025-09-10 15:35:10 +08:00
Ruben Hönle
278d7ae4c9
java-client: fix some javadoc comments (#21932)
* java-client: fix some javadoc comments

* update samples
2025-09-10 01:44:36 +08:00
William Cheng
7b3de8dbce
[python] fix default value when enum is a reference (#21923)
* fix default value when enum is ref (python)

* update spec
2025-09-09 09:21:09 +08:00
William Cheng
bdfbb32cdd
Improve Go client tests (#21919)
* test withXml option

* fix path

* update go code (withXml: true)

* test one more go client
2025-09-08 16:45:46 +08:00
William Cheng
6e089f5f03
Support normalizing anyof/oneof enum constraints to a single enum (#21917)
* Support normalizing anyof/oneof enum constraints to a single enum

* Add SIMPLIFY_ONEOF_ANYOF_ENUM to the documentation

* Process referenced schemas with oneof/enum as well

* Implement referenced enum merging from oneof/anyof

* Implement retaining the enum description as x-enum-desriptions for oneof enum

* Update samples and docs with oneOf enum normalization

* update samples to fix python tests

* fix test file name

* fix incorrect filename

---------

Co-authored-by: Pieter Bos <pieter.bos@nedap.com>
2025-09-07 17:36:02 +08:00
William Cheng
e62908e30e
Add tests for withXml option in Go client generator (#21913)
* test withXml option

* fix path
2025-09-06 22:48:32 +08:00
William Cheng
6164836b57
update workflow to use jdk 11 (#21912) 2025-09-06 22:35:54 +08:00
Tim Van Wassenhove
ee40887d47
fix(rust): Add anyOf support to Rust client generator (#21896)
* feat(rust): Add anyOf support to Rust client generator

This commit adds support for anyOf schemas in the Rust client generator
by treating them similarly to oneOf schemas, generating untagged enums
instead of empty structs.

The implementation reuses the existing oneOf logic since Rust's serde
untagged enum will deserialize to the first matching variant, which
aligns well with anyOf semantics where one or more schemas must match.

Fixes the issue where anyOf schemas would generate empty unusable structs.

* test(rust): Add test for anyOf support

This commit adds a test case to verify that anyOf schemas generate
proper untagged enums instead of empty structs in the Rust client
generator.

The test includes:
- A test OpenAPI spec with anyOf schemas
- Unit test that verifies the generated code structure
- Assertions to ensure enums are created instead of empty structs

* Fix anyOf support for Rust generator

- Fixed template closing tag issue that prevented anyOf schemas from generating enums
- Changed {{/composedSchemas.oneOf}} to {{/composedSchemas}} at line 262
- Put #[serde(untagged)] and pub enum on same line for test compatibility
- Fixed TestUtils.linearize() method replacing spaces with literal '\s' string

The Rust generator already converts anyOf to oneOf for processing, but the
template wasn't correctly handling these converted schemas. Now anyOf schemas
generate proper untagged enums, matching the expected behavior for oneOf
schemas without discriminators.

* fix(rust): maintain multi-line formatting for serde attributes in oneOf/anyOf enums

- Keep #[serde(untagged)] on separate line from pub enum for better readability
- Update test assertions to use two separate checks instead of linearize()
- Ensures generated Rust code maintains consistent formatting with existing samples
- Preserves the original multi-line attribute style preferred in Rust ecosystem
2025-09-06 18:46:24 +08:00
William Cheng
1d739f1598
New generator for Scala3 + sttp4 + jsoniter-scala (#21908)
* started impl

* seems to work

* generated docs

* fix class name duplicates on case-insensitive filesystems

* wip

* added script to rebuild all projects

* dropped bash slop

* fixed directory structure

* ok, now it makes sense

* update sttp, serialize query params, fix enums serialization, fix not required files params

* fix compile errors after sttp upgrade, fix missing enum import in operations, fix file response. change serialization from Map to Seq to avoid deleting duplicate keys

* auth support

* fix enums entries, multipart support(partially), header, path and cookie serialization support

* support of option fields

* add samples, update workflow

* add new files

* fix

* remove tab

* remove tab

* update doc

* update header

* update readme

---------

Co-authored-by: Łukasz Biały <lukasz.marcin.bialy@gmail.com>
Co-authored-by: Kamil-Lontkowski <kamillont14@gmail.com>
2025-09-06 13:36:44 +08:00
yzaoui
2a556ff24e
Fix missing @Serializable on enums for kotlin/jvm-retrofit2 (#21907)
* Add @Serializable annotation to enum for kotlinx-serialization

* Adjust template, generate samples

* Fix template
2025-09-06 10:17:28 +08:00
Jens Fischer
29a817afdb
[kotlin-client] Fix string comparison in discriminator post-processing (#21881)
We encountered occassional build failures with the logic introduced in #21531 due to discriminator properties still being generated in rare cases.
Not sure why it didn't happen consistently, may be related to Gradle caching or parallel builds or whatever.
Since patching these string comparisons, this has no longer occurred.
2025-09-06 09:46:37 +08:00
dependabot[bot]
3029ac62f7
Bump actions/setup-python from 5 to 6 (#21901)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:53:37 +08:00
dependabot[bot]
27018b0a0d
Bump actions/setup-node from 4 to 5 (#21903)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:36:39 +08:00
dependabot[bot]
5544e6acc5
Bump actions/setup-go from 5 to 6 (#21902)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:16:19 +08:00
Sebastian Rühl
08733aaf25
feat(golang): support for wrapped and xml name (#21899)
* feat(golang): support for wrapped and xml name

* test(golang): add two test cases for wrapped

- with name
- without name

* chore(golang): update samples
2025-09-05 01:14:14 +08:00
William Cheng
3f24026b87 update parser to 2.1.33 2025-09-04 17:41:05 +08:00
dependabot[bot]
27ed27f135
Bump actions/checkout from 4 to 5 (#21889)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-04 15:43:28 +08:00
dependabot[bot]
3cc094485d
Bump actions/setup-dotnet from 4.3.1 to 5.0.0 (#21887)
* Bump actions/setup-dotnet from 4.3.1 to 5.0.0

Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4.3.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](https://github.com/actions/setup-dotnet/compare/v4.3.1...v5.0.0)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* trigger c# build workflow

* Revert "trigger c# build workflow"

This reverts commit cb0ea32e98d4bf6a5847afadf2603d552a8156e3.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
2025-09-04 15:43:11 +08:00
Kevin Liddle
86f107047e
[BUG][rust-axum] Fix duplicate route operations when supplying multiple tags on a path with a camelCase param (#21873)
* [BUG][rust-axum] Fix duplicate route operations when supplying multiple tags on a path with a camelCase param

* Update rust-axum sample
2025-09-04 01:36:26 +08:00
Julius
2ebda09b9f
feat: add support for minimal update option in maven plugin (#21872) 2025-09-04 01:00:00 +08:00
Mattias Sehlstedt
fde017150e
[C#] Fixes array TypeDeclaration parsing order to fix deep aliases (#21600)
* Adjust array TypeDeclaration parsing order to fix deep inline aliases

* Update samples
2025-09-04 00:58:13 +08:00
dsteeley
5daef3e901
fix: Resolve issue21805 rust-server compilation failure with large maximums by handling minimum and maximum using BigInt instead of longValue. (#21875) 2025-09-03 16:45:02 +08:00
William Cheng
6e443f1354
fix: honor required fields in jackson @JsonProperty annotations (#21876)
* fix: honor required fields in jackson @JsonProperty annotations

* add samples

* fix: trigger build

* fix: undo

* update to handle nullable as well

---------

Co-authored-by: Erik Lagerholm <erik.lagerholm@volvocars.com>
2025-09-03 16:41:59 +08:00
Jochen Schalanda
babb3e272b
[Java] Add missing Locale to String.format() invocations (#21871)
* [Java] Add missing Locale to String.format() invocations

* chore: ./bin/generate-samples.sh ./bin/configs/*.yaml
2025-09-03 14:52:49 +08:00
Jochen Schalanda
d1df75c61d
[Java] Remove unnecessary String.format from jersey2, jersey3, native (#21870) 2025-09-03 14:17:49 +08:00
William Cheng
20d5126b17
disable tests due to too many false alarams (#21865) 2025-09-02 16:21:10 +08:00
fkellner
efd06f5719
Fix bug in ModelUtils.getParentName resulting in wrong inner Models for oneOf-composed schemas (#21799)
* Test Cases for more than two oneOf-Options (both passing, but important to narrow down observed bug)

* fix language-specific tests broken by adding a third fruit to oneOf test

* create reproducer unit test for java client codegen

* fix typo in test yaml

* fix ModelUtils.getParentName returning name of first element in composed schema instead of null when there are multiple elements and it is not clear which one should be parent

* rename test yaml and added tests for clarity

* update samples

* update samples again
2025-09-02 15:26:26 +08:00
Leo Gomes @Amadeus
c854a23682
[protobuf] fix generation of enums with UNSPECIFIED values (#21774) 2025-09-02 12:42:27 +08:00
Yasuhiro SHIMIZU
1c2fd67cc9
fix typo in Kotlin client discriminator samples (#21853)
* fix typo in kotlin client samples

allOff -> allOf

* fix gradlew permission

* update samples
2025-09-01 21:28:04 +08:00
Eduardo Menges Mattje
27d3c6f326
[3.1] Fixed lack of check for booleanSchemaValue (#21742)
* [3.1] Fixed lack of check for ´booleanSchemaValue`

* [3.1] Fixed `isMapSchema`
2025-09-01 14:06:27 +08:00
William Cheng
eae5088f7c
Remove travis ci setting from ci pipeline (#21834) 2025-09-01 13:44:23 +08:00
William Cheng
90d6af2bab
Refactor Rust github workflow for clients and servers (#21851)
* add workflow to test rust clients

* update to use localhost

* rename rust server workflow
2025-09-01 11:43:25 +08:00
CatBraaain
d8593ef6d7
style: add a space before comment text in .gitignore (#21844) 2025-08-31 22:35:54 +08:00
Bruno Coelho
9148db26fc
[Swift6][client]Make Swift 6 generator stable (#21846)
* Make Swift 6 generator stable

* Make Swift 6 generator stable
2025-08-31 10:08:17 +08:00
Yasuhiro SHIMIZU
2cdd9ae687
Kotlin Multiplatform polymorphism with custom discriminator support (#21772)
* Enable descriminator for kotlin-client multiplatform

* update template

* add sample

* update samples-kotlin-client workflow

* add missing JsonClassDiscriminator import

* fix gradlew permission

* update sample

* fix sample

* re-generate sample
2025-08-31 02:22:12 +08:00