2.0.0
This is the first stable release of OpenAPI-Diff under the umbrella of the OpenAPI Tools organization.
Many thanks to all contributors, especially the OpenAPI Tools team (@jmini, @jimschubert, @wing328) for their support during on-boarding, and @misterjoshua for contributing the OpenAPI-Diff Maven plugin and joining the development team.
π¬ Release discussion: #297
βΉοΈ Milestone: https://github.com/OpenAPITools/openapi-diff/milestone/1?closed=1
Installation
Maven/Gradle
OpenAPI-Diff is available on Maven Central:
<dependency>
<groupId>org.openapitools.openapidiff</groupId>
<artifactId>openapi-diff-core</artifactId>
<version>2.0.0</version>
</dependency>
dependencies {
implementation("org.openapitools.openapidiff:openapi-diff-core:2.0.0")
}
Docker
OpenAPI-Diff is available on Docker Hub as openapitools/openapi-diff
:
# docker run --rm openapitools/openapi-diff:2.0.0
usage: openapi-diff <old> <new>
[...]
Command Line
# curl -o openapi-diff.jar 'https://repo1.maven.org/maven2/org/openapitools/openapidiff/openapi-diff-cli/2.0.0/openapi-diff-cli-2.0.0-all.jar'
# java -jar openapi-diff.jar --help
usage: openapi-diff <old> <new>
[...]
Maven Plugin
OpenAPI-Diff is also available as Maven plugin to include into your build:
<plugin>
<groupId>org.openapitools.openapidiff</groupId>
<artifactId>openapi-diff-maven</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<goals>
<goal>diff</goal>
</goals>
<configuration>
<!-- Reference specification (perhaps your prod schema) -->
<oldSpec>https://petstore3.swagger.io/api/v3/openapi.json</oldSpec>
<!-- Specification generated by your project in the compile phase -->
<newSpec>${project.basedir}/target/openapi.yaml</newSpec>
<!-- Fail only if API changes broke backward compatibility (default: false) -->
<failOnIncompatible>true</failOnIncompatible>
<!-- Fail if API changed (default: false) -->
<failOnChanged>true</failOnIncompatible>
</configuration>
</execution>
</executions>
</plugin>
What's Changed
Full Changelog: 1.2.0...2.0.0
New features and bug fixes
- swagger-snapshot: initial commits by @jmini in #35
- Return only diff state in cli by @quen2404 in #38
- Update swagger-parser by @quen2404 in #39
- feature: adds docker support by @itsjavi in #40
- docs: use full Docker hub image name by @itsjavi in #41
oneOf
full support by @quen2404 in #43- Handle
readOnly
&writeOnly
by @quen2404 in #42 - Vendor extensions support by @quen2404 in #44
- Fix
NullPointerException
withoneOf
discriminator change by @jmini in #49 - Improve extension support by @quen2404 in #50
- Extension: find changes when nothing changed by @quen2404 in #52
- Add support for changes in summary / description by @quen2404 in #61
- Fix NPE when only description changed in request content by @quen2404 in #65
- Fix/issue #66 wrong return in ref pointer by @quen2404 in #67
- Report causes for compatibility breakage by @thiagoarrais in #105
- improve
allOf
merging for composite schemas by @damianw in #85 - add
--fail-on-incompatible
option by @mohamed-el-habib in #74 - Bring in changes from joschi/openapi-diff by @joschi in #159
- Fix NPE when description is empty #154 by @jlamaille in #155
- Fix Issue #136 new read-only property breaks PUT by @trohrberg in #137
- WIP: Add swagger2 compatibility by @quen2404 in #54
- enable Dependabot v2 by @sullis in #161
- Add a "Join Slack" badge by @jmini in #167
- Add code of conduct, contributing.md by @wing328 in #168
- Build openapi-diff with Java 15 by @joschi in #173
- Update Maven and Docker image coordinates by @joschi in #172
- [build] Master/PR/Release workflows by @jimschubert in #181
- Add
--rm
and latest tag to container example by @jimschubert in #183 - Remove Lombok by @quen2404 in #175
- Migrate Java packages to
org.openapitools.openapidiff
by @joschi in #187 - Add sonar coverage reporting to master build by @jimschubert in #184
- Fix some code issues to pass Sonar quality gate by @joschi in #188
- Add diff results of operation ID (metadata) by @hiddewie in #191
- Add tests for content-type changes in request/response by @hiddewie in #190
- Fix nullable API response in diff by @gsdatta in #206
- Handle missing security schemes component by @jrouly in #211
- Allow paths resolving to same template but with different methods by @Trundle in #224
- Fix NPE with unnamed schemas in
{one,any,all}-of
by @gsdatta in #220 - Fix
--header
parameter by @derjust in #236 - Fix
NullPointerException
when diffing security schemes withoutcomponents
element by @hiddewie in #260 - Add JsonRender and --json command line option by @kimsey0 in #255
- Make large, recursive schemas diff-able by deferring computation of diffs by @solarhess in #249
- Support boolean values for
additionalProperties
by @joschi in #266 - Build with Java 17 by @joschi in #267
- feat: add a maven plugin by @misterjoshua in #278
- Add GitHub workflow for building Docker image by @joschi in #280
- Integrate building Docker image in release workflow by @joschi in #286
- Change packaging to maven-plugin by @kubamarchwicki in #287
- Ignore Maven dependencies in Dependabot by @joschi in #290
Dependency updates
- Set swagger-parser version to 2.0.1 by @jmini in #47
- Update Swagger-Parser to 2.0.4 by @jmini in #56
- build(deps): bump swagger-parser-v3 from 2.0.13 to 2.0.17 by @dependabot in #115
- build(deps): bump swagger-parser-v3 from 2.0.5 to 2.0.13 by @dependabot in #86
- build(deps): bump swagger-parser.version from 2.0.21 to 2.0.22 by @dependabot in #177
- build(deps): bump swagger-parser.version from 2.0.22 to 2.0.23 by @dependabot in #194
- build(deps): bump swagger-parser.version from 2.0.24 to 2.0.25 by @dependabot in #222
- build(deps): bump swagger-parser.version from 2.0.25 to 2.0.26 by @dependabot in #238
- build(deps): bump swagger-parser.version from 2.0.26 to 2.0.27 by @dependabot in #247
- build(deps): bump swagger-parser.version from 2.0.27 to 2.0.28 by @dependabot in #265
- build(deps): bump commons-cli from 1.4 to 1.5.0 by @dependabot in #274
- build(deps): bump commons-collections4 from 4.0 to 4.4 by @dependabot in #87
- build(deps): bump commons-lang3 from 3.11 to 3.12.0 by @dependabot in #217
- build(deps): bump j2html from 1.2.0 to 1.4.0 by @dependabot in #99
- build(deps): bump j2html from 1.4.0 to 1.5.0 by @dependabot in #241
- build(deps): bump lombok from 1.18.10 to 1.18.12 by @dependabot in #131
- build(deps): bump lombok from 1.18.12 to 1.18.14 by @dependabot in #179
- build(deps): bump lombok from 1.18.2 to 1.18.8 by @dependabot in #78
- build(deps): bump lombok from 1.18.8 to 1.18.10 by @dependabot in #103
- build(deps): bump slf4j-api from 1.7.25 to 1.7.28 by @dependabot in #92
- build(deps): bump slf4j-api from 1.7.28 to 1.7.30 by @dependabot in #113
- build(deps): bump slf4j-log4j12 from 1.7.25 to 1.7.30 by @dependabot in #112
- build(deps): bump slf4j.version from 1.7.30 to 1.7.31 by @dependabot in #245
- build(deps): bump slf4j.version from 1.7.31 to 1.7.32 by @dependabot in #250
- build(deps): bump actions/cache from 2.1.5 to 2.1.6 by @dependabot in #237
- build(deps): bump actions/cache from 2.1.6 to 2.1.7 by @dependabot in #291
- build(deps): bump actions/cache from v1 to v2.1.1 by @dependabot in #162
- build(deps): bump actions/cache from v2.1.1 to v2.1.2 by @dependabot in #180
- build(deps): bump actions/cache from v2.1.2 to v2.1.3 by @dependabot in #196
- build(deps): bump actions/cache from v2.1.3 to v2.1.4 by @dependabot in #214
- build(deps): bump actions/cache from v2.1.4 to v2.1.5 by @dependabot in #223
- build(deps): bump actions/checkout from 2 to 2.3.4 by @dependabot in #231
- build(deps): bump actions/checkout from 2.3.4 to 2.3.5 by @dependabot in #273
- build(deps): bump actions/checkout from 2.3.5 to 2.4.0 by @dependabot in #275
- build(deps): bump actions/setup-java from v1 to v2 by @dependabot in #221
- build(deps): bump assertj-core from 3.10.0 to 3.13.2 by @dependabot in #90
- build(deps): bump assertj-core from 3.13.2 to 3.14.0 by @dependabot in #107
- build(deps): bump assertj-core from 3.14.0 to 3.17.0 by @dependabot in #160
- build(deps): bump assertj-core from 3.17.0 to 3.17.1 by @dependabot in #166
- build(deps): bump assertj-core from 3.17.1 to 3.17.2 by @dependabot in #169
- build(deps): bump assertj-core from 3.17.2 to 3.18.0 by @dependabot in #193
- build(deps): bump assertj-core from 3.18.0 to 3.18.1 by @dependabot in #197
- build(deps): bump assertj-core from 3.18.1 to 3.19.0 by @dependabot in #210
- build(deps): bump assertj-core from 3.19.0 to 3.20.0 by @dependabot in #243
- build(deps): bump assertj-core from 3.20.0 to 3.20.1 by @dependabot in #244
- build(deps): bump assertj-core from 3.20.1 to 3.20.2 by @dependabot in #246
- build(deps): bump assertj-core from 3.20.2 to 3.21.0 by @dependabot in #262
- build(deps): bump fmt-maven-plugin from 2.6.0 to 2.9 by @dependabot in #83
- build(deps): bump githook-maven-plugin from 1.0.0 to 1.0.4 by @dependabot in #97
- build(deps): bump githook-maven-plugin from 1.0.4 to 1.0.5 by @dependabot in #135
- build(deps): bump jacoco-maven-plugin from 0.8.6 to 0.8.7 by @dependabot in #228
- build(deps): bump joschi/setup-jdk from v1 to v2.2.0 by @dependabot in #163
- build(deps): bump joschi/setup-jdk from v2.2.0 to v2.3.0 by @dependabot in #178
- build(deps): bump junit-bom from 5.6.2 to 5.7.0 by @dependabot in #171
- build(deps): bump junit-bom from 5.7.0 to 5.7.1 by @dependabot in #213
- build(deps): bump junit-bom from 5.7.1 to 5.7.2 by @dependabot in #233
- build(deps): bump junit-bom from 5.7.2 to 5.8.0 by @dependabot in #259
- build(deps): bump junit-bom from 5.8.0 to 5.8.1 by @dependabot in #263
- build(deps): bump junit-bom from 5.8.1 to 5.8.2 by @dependabot in #294
- build(deps): bump junit.jupiter.version from 5.1.0 to 5.4.2 by @dependabot in #75
- build(deps): bump junit.jupiter.version from 5.4.2 to 5.5.2 by @dependabot in #102
- build(deps): bump junit.jupiter.version from 5.5.2 to 5.6.2 by @dependabot in #141
- build(deps): bump junit.platform.version from 1.1.0 to 1.3.2 by @dependabot in #100
- build(deps): bump maven-compiler-plugin from 3.2 to 3.8.1 by @dependabot in #80
- build(deps): bump maven-gpg-plugin from 1.6 to 3.0.1 by @dependabot in #229
- build(deps): bump maven-javadoc-plugin from 3.0.0 to 3.1.1 by @dependabot in #98
- build(deps): bump maven-javadoc-plugin from 3.1.1 to 3.2.0 by @dependabot in #133
- build(deps): bump maven-javadoc-plugin from 3.2.0 to 3.3.0 by @dependabot in #235
- build(deps): bump maven-javadoc-plugin from 3.3.0 to 3.3.1 by @dependabot in #258
- build(deps): bump maven-plugin-plugin from 3.6.0 to 3.6.1 by @dependabot in #283
- build(deps): bump maven-plugin-plugin from 3.6.1 to 3.6.2 by @dependabot in #295
- build(deps): bump maven-site-plugin from 3.8.2 to 3.9.1 by @dependabot in #285
- build(deps): bump maven-source-plugin from 3.0.1 to 3.1.0 by @dependabot in #81
- build(deps): bump maven-source-plugin from 3.1.0 to 3.2.1 by @dependabot in #116
- build(deps): bump maven-surefire-plugin from 2.19.1 to 2.22.2 by @dependabot in #84
- build(deps): bump rokroskar/workflow-run-cleanup-action from v0.2.2 to v0.3.0 by @dependabot in #205
- build(deps): bump rokroskar/workflow-run-cleanup-action from v0.3.0 to v0.3.1 by @dependabot in #218
- build(deps): bump rokroskar/workflow-run-cleanup-action from v0.3.1 to v0.3.2 by @dependabot in #219
- build(deps): bump rokroskar/workflow-run-cleanup-action from v0.3.2 to v0.3.3 by @dependabot in #225
- build(deps): bump sonar-maven-plugin from 3.7.0.1746 to 3.8.0.2131 by @dependabot in #209
- build(deps): bump sonar-maven-plugin from 3.8.0.2131 to 3.9.0.2155 by @dependabot in #227
- build(deps): bump sonar-maven-plugin from 3.9.0.2155 to 3.9.1.2184 by @dependabot in #277
- Bump Maven to version 3.8.4
New Contributors
- @itsjavi made their first contribution in #40
- @thiagoarrais made their first contribution in #105
- @damianw made their first contribution in #85
- @mohamed-el-habib made their first contribution in #74
- @jlamaille made their first contribution in #155
- @trohrberg made their first contribution in #137
- @sullis made their first contribution in #161
- @wing328 made their first contribution in #168
- @jimschubert made their first contribution in #181
- @hiddewie made their first contribution in #191
- @gsdatta made their first contribution in #206
- @jrouly made their first contribution in #211
- @Trundle made their first contribution in #224
- @derjust made their first contribution in #236
- @kimsey0 made their first contribution in #255
- @solarhess made their first contribution in #249
- @misterjoshua made their first contribution in #278
- @kubamarchwicki made their first contribution in #287