Skip to content

Conversation

sir4ur0n
Copy link
Contributor

@sir4ur0n sir4ur0n commented Aug 22, 2025

⚠️ Depends on #21681, please review/merge #21681 first

💡 Review commit by commit for easier review

  • Add a first (probably not perfect) version of support for oneOf/anyOf
  • Fix a bug I just discovered (while trying to manually test the oneOf feature on some big openapi.json) where non-required maps are missing a @default in models
  • Fix a bug where maps are incorrectly encoded/decoded

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

@sir4ur0n sir4ur0n marked this pull request as ready for review August 23, 2025 13:17
@sir4ur0n
Copy link
Contributor Author

@cgensoul

let uri = Request.build_uri "/pet/{petId}" in
let headers = Request.default_headers in
let headers = Request.maybe_add_header headers "api_key"

Copy link
Member

Choose a reason for hiding this comment

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

i'll get this merged first and later maybe come up with a PR to remove these blank lines

curious are you using any linter to format the auto-generated code as part of your development workflow?

Copy link
Contributor Author

@sir4ur0n sir4ur0n Aug 25, 2025

Choose a reason for hiding this comment

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

Are you talking about the blank lines in the Mustache files, or in the generated OCaml files?
I think the Mustache files being easy to read is quite important for maintainability 😅
On the other hand, the generated OCaml files being ugly is - in my opinion - not such a big deal because I think almost all projects use a formatter (most often ocamlformat).

I would be happy (probably in another MR) to add an .ocamlformat file + automatically format OCaml files (either directly from openapi-generator but it means it becomes a dependency, or only for the generated files versioned in this Git repo, you tell me)

Copy link
Member

Choose a reason for hiding this comment

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

Are you talking about the blank lines in the Mustache files, or in the generated OCaml files?

Generated OCaml files

I think the Mustache files being easy to read is quite important for maintainability 😅

Totally agreed.

On the other hand, the generated OCaml files being ugly is - in my opinion - not such a big deal because I think almost all projects use a formatter (most often ocamlformat).

Nice

I would be happy (probably in another MR) to add an .ocamlformat file

Yes, nice to include one

@wing328 wing328 merged commit dc8fac2 into OpenAPITools:master Aug 25, 2025
18 checks passed
@sir4ur0n sir4ur0n deleted the feature/ocaml-oneof branch August 25, 2025 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants