Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase on current biocad master #6

Open
wants to merge 62 commits into
base: master
Choose a base branch
from

Conversation

jbgour
Copy link

@jbgour jbgour commented Jun 6, 2024

This PR aims at getting the commits pushed since March 13, 2023 into our master repo

maksbotan and others added 30 commits March 13, 2023 22:56
Give title to sub-schemas of oneOf for sum types
Not particularly useful until `insert-ordered-containers` does so too,
see phadej/insert-ordered-containers#58
Not especially useful until dependencies catch up, see:

* haskell/aeson#1096
* haskellari/qc-instances#92
While checking my generated openapi spec with https://editor.swagger.io/
I had errors like:

Semantic error at components.schemas.BaselineCheck_'HasCase_PhysicalUnit
Component names can only contain the characters A-Z a-z 0-9 - . _

Looking at the spec:
https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#components-object
This looked like a valid concern: `name must conform to ^[a-zA-Z0-9\.\-_]+$`

This replaces invalid characters by their code.
Workaround for biocad#31

If the tuples has homogeneous types, the generated schema is strict.
On the other hand if there are heterogeneous types, the schema is not very strict because the order in which the types must come is not specified.

Also, I had to use anyOf instead of oneOf because for example the int in (Int, Float) matches both Integer and Number.

Finally, special care had to be taken to handle nullables.
jean-baptiste.gourlet and others added 2 commits June 6, 2024 15:09
@jbgour
Copy link
Author

jbgour commented Jun 6, 2024

@teto is it good to merge?

maksbotan and others added 27 commits June 20, 2024 10:49
Not particularly useful until `insert-ordered-containers` does so too,
see phadej/insert-ordered-containers#58
Not especially useful until dependencies catch up, see:

* haskell/aeson#1096
* haskellari/qc-instances#92
While checking my generated openapi spec with https://editor.swagger.io/
I had errors like:

Semantic error at components.schemas.BaselineCheck_'HasCase_PhysicalUnit
Component names can only contain the characters A-Z a-z 0-9 - . _

Looking at the spec:
https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#components-object
This looked like a valid concern: `name must conform to ^[a-zA-Z0-9\.\-_]+$`

This replaces invalid characters by their code.
Workaround for biocad#31

If the tuples has homogeneous types, the generated schema is strict.
On the other hand if there are heterogeneous types, the schema is not very strict because the order in which the types must come is not specified.

Also, I had to use anyOf instead of oneOf because for example the int in (Int, Float) matches both Integer and Number.

Finally, special care had to be taken to handle nullables.
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.

6 participants