OpenApi 3.1.2 (Fixes #728)#730
Conversation
|
Doesn't look like this change broke CI. Edit: maybe due to caching (since this drops oai 3.0. old things would break). Edit 2: dirty file locally :( |
|
Reposting test stacktrace to save the trouble: |
Fixed |
|
So for myself I'm good with this PR. So I think the steps to are something like:
|
|
The only thing is how the other nullability PR is affected by this |
It's either this 1st and update or that 1st and update. Take your pick :). Maybe base it on which direction is easier. |
|
I think the plan should be:
|
You could also go the other way and Merge the null handling PR |
Yup, I'm good with that. |
Based on the discussion in avaje#743, there was mixed feelings on the shading being done for the generators. I figured since there is a major version on the horizon (based on discussions in avaje#730), what we could do is: * Isolate out the prism generation, to help ensure we don't end up with unintentional dependencies in the actual generators (since the generator would fail compilation in this repo if you tried) * Make the "main" versions of the processors no longer shaded * Publish separate "-shaded" versions of the generators that are shaded The idea being if you are using `proc=full` and/or having issues with the dependencies for the generator not coming through, you can use the `-shaded` versions (e.g. instead of `avaje-http-client-generator` you'd use `avaje-http-client-generator-shaded`). If (or when) shading becomes problematic, then we can easily remove those shaded versions from being published. There's not really a "solid reason" for doing this now rather than waiting to see what happens with `proc=full`. It's just something that was discussed, and could be added to the list of potentially breaking changes in that next major. During this though, I did notice a couple of things: * The test pipeline doesn't test on Java 11, despite that being the minimum (?) Java version * The main `http-api` has a dependency on the `http-inject-plugin` which has a dependency back on the `http-api` and also only builds on Java 21+ (while `http-api` will try to build on Java 11) * The `http-api` had a (`static`/`optional`) dependency on javalin, but there's a `http-api-javalin` that could house it and forward on the `http-api` dependency * Both Avaje SPI and Avaje Prisms publish their annotations depending on their processor, rather than the other way around, which seems incorrect. I'm not sure if Maven 4 will have a problem with the annotations being `jar` and the dependency being `processor`. You can't have the annotations as both since duplicate G/A/V is not permitted, but even if it doesn't it "feels like" it should be the reverse (processor depends on annotations) I've marked this as draft/rfc because I want to know: * Is the separate shaded versions an OK compromise? * Is there a preferred path for dealing with the circular dependency? I also haven't finished: * all the shaded versions, * patching the tests so they use a mix of non-shaded and shaded generators (so we can be sure we don't break the shaded versions) * testing the Java 11 addition to the build process But I figured I'd wait for the discussion before doing too much more.
…_FIELDS - Remove types from IGNORED_FIELDS - Schema<?> propSchema, needs to be final for use in lambda
|
@re-thc I just resolved some merge conflicts and I would like you to have a look over those commits. It looked like a relatively simple conflict resolution, but then I make some mistakes and then later hit some failing tests and had to adjust test expectations for everything to pass. It looks ok but if you can review those commits some time that would be great - thanks !! |
|
@rbygrave took a look along with the null changes |
OpenApi 3.1.2 (Fixes #728)
As per the comment this is a "just do it" version. I'll leave the major version handling for another more knowledgeable.