OpenAPITools / OpenAPITools/openapi-diff
Comparing OpenAPI 3.0.1 to 3.1.0 does not work
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 190
- PR merge metrics
- No merged PRs in 30d
Description
When running a comparison between OpenAPI 3.0.1 and 3.1.0 via Docker, it looks like everything is reported as different.
Suppressing the details gives this:
$ docker run --rm -t -v .:/specs:ro openapitools/openapi-diff /specs/api-docs-301.json /specs/api-docs-310.json --state
incompatible
ℹ Please note that those spec files are identical, only the initial OpenAPI version differs:
"openapi": "3.0.1""openapi": "3.1.0"
Comparing two specs with OpenAPI 3.1.0 seems to work as desired. ✅
I used latest which appears to be 6 weeks old - cannot get the version from the tool itself 🤷
Running the same via openapi-diff installed from brew shows a different error:
$ openapi-diff api-docs-301.json api-docs-310.json
Unexpected exception. Reason: Cannot read new OpenAPI spec
java.lang.RuntimeException: Cannot read new OpenAPI spec
at org.openapitools.openapidiff.core.OpenApiCompare.notNull(OpenApiCompare.java:107)
at org.openapitools.openapidiff.core.OpenApiCompare.fromSpecifications(OpenApiCompare.java:102)
at org.openapitools.openapidiff.core.OpenApiCompare.fromLocations(OpenApiCompare.java:91)
at org.openapitools.openapidiff.cli.Main.main(Main.java:174)
But this also does not work with two OpenAPI 3.1.0 specs:
$ openapi-diff api-docs-310.json api-docs-310.json
Unexpected exception. Reason: Cannot read old OpenAPI spec
java.lang.RuntimeException: Cannot read old OpenAPI spec
Brew shows this to be version 2.0.1 - cannot get the version from the tool itself.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the CLI entry point in Main.java and the specification-loading path in OpenApiCompare.java, especially the calls shown in the stack traces. Reproduce the Docker and brew commands with identical 3.0.1 and 3.1.0 documents, then compare their behavior. Done means valid comparisons work across these versions without reporting identical documents as incompatible or failing to read them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java, openapi
- Domain
- api, backend-api-design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100