Skip to content

Releases: kit-data-manager/ro-crate-java

v2.1.0

08 Dec 11:58
ba9b4ad

Choose a tag to compare

🚀 Highlights

While we avoid breaking the API except for major versions, you may notice that you may need to do some little changes this time. This is because of fixes which inherently required this. But the fix on your side should be easy. In most cases you'll need to catch a possible exception when reading or writing crates and it should work again. Please tell us soon if something does not work for you!

  • Support .ELN-style crates in all zip readers and writers by @Pfeil in #258
    • 📓We now support zip files which contain the crate not directly, but have a subfolder instead. This is one of the properties of the .ELN specification.
    • 🤐 Our Zip (and ZipStream) reader will search for this implicitly, so nothing has to be changed from your side to make it work. For readers, we think this makes reading simply more reliable. Note that we do not search the whole zip file for a crate but just in the first hierarchy of subfolders. We expect only one subfolder, but to work with edge cases, ro-crate-java will consider a few more. This works around hidden thumbnail folders and other unexpected properties.
    • ✍🏼 Our Zip (and ZipStream) writer strategies have according configuration methods to make them create such files: usingElnStyle() and withRootSubdirectory() do the exact same thing, just with different naming. Some may search for ELN functionality, others just want a subfolder. For ro-crate-java this is currently the same thing.
  • Make specification examples (from readme) executable by @Pfeil in #256
    • 📄✅ Some of the examples in our guide did not work properly any more. To avoid this in future, we moved them to unit tests, where they are executable and tested. The readme now points to these examples.
  • You can now add a DataEntity without adding it to the roots "hasPart", by providing the ID of another entity (addDataEntity(entity, parentId)). This other entity needs to be in the crate already in order to validate this action. You may use this to build your hierarchies as you need.
  • The hierarchy of files and directories is (for local files) already encoded in the file paths. You can now map this automatically to hasPart/isPartOf connections using Crate::createDataEntityFileStructure.
  • Until now, we supported adding terms or full contexts (as URI) to the context. Now we also allow prefixes. They work exactly as the terms do.
  • We now add, by default, new contextual entities to the crate when writing them to disk, documenting which version of ro-crate-java generated or modified the crate. It uses one entity per CreateAction or UpdateAction and one entity per ro-crate-java version. This behaviour can be disabled and customized. For more information, look into the documentation of the CrateWriter.
  • Generalize reading and writing crates by @Pfeil (based on the work of @ThomasJejkal) in #247
    • We deprecated the old interfaces in favour of newer, generic ones. You are now able to implement readers which read/write from/to any type of location/destination. As an example, we also provide a ZipStreamReader (and Writer) which targets streams, so you do not need to store your crate on disk before sending it around!
  • Fix renaming of data set entities by @Pfeil in #253
    • We noticed there was a bug in the Zip export of DataSetEntity if you set an ID different to the file's filename. If this makes you feel you might have been affected, have a look at #254. It is now fixed, and all Writers are tested for correctness (not only the folder writer) in the same way.

What's Changed

  • Point to latest release in README by @fpotier in #234
  • chore(deps): update dependency com.github.fslev:json-compare to v7 by @renovate[bot] in #236
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.13.1 by @renovate[bot] in #235
  • chore(deps): update dependency font-awesome to v6 by @renovate[bot] in #239
  • chore(deps): update dependency font-awesome to v6 by @renovate[bot] in #240
  • chore(deps): update dependency org.junit:junit-bom to v5.12.2 by @renovate[bot] in #243
  • chore(deps): update dependency commons-io:commons-io to v2.19.0 by @renovate[bot] in #244
  • Fix #241: Getting key value pairs from the context by @Pfeil in #245
  • Generalize reading and writing crates by @Pfeil in #247
  • Fix renaming of data set entities by @Pfeil in #253
  • Version 2.1.0 by @Pfeil in #233
  • chore(deps): update jacksonversion to v2.19.0 by @renovate[bot] in #248
  • chore(deps): update dependency gradle to v8.14 by @renovate[bot] in #250
  • chore(deps): update dependency gg.jte:jte to v3.2.1 by @renovate[bot] in #249
  • Fix adding id property duplicates by @Pfeil in #257
  • Make specification examples (from readme) executable by @Pfeil in #256
  • fix: enforce correct subfolder name for additional files in StaticPreview.saveAllToStream by @Pfeil in #261
  • Support .ELN-style crates in all zip readers and writers by @Pfeil in #258
  • Next Version (v2.1.0-rc2) by @Pfeil in #255
  • chore(deps): update dependency gradle to v8.14.1 by @renovate[bot] in #262
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.7 by @renovate[bot] in #263
  • chore(deps): update dependency org.junit:junit-bom to v5.13.0 by @renovate[bot] in #266
  • Add context prefix support by @Pfeil in #267
  • 265 store provenance in crates about the tool which created it by @Pfeil in #268
  • chore(deps): update dependency gradle to v8.14.2 by @renovate[bot] in #270
  • feat: add updateCff task to update CITATION.cff during release process by @Pfeil in #271
  • Next Version (2.1.0 | 2.1.0-rc3) by @Pfeil in #264
  • chore(deps): update dependency commons-io:commons-io to v2.20.0 by @renovate[bot] in #278
  • chore(deps): update dependency commons-validator:commons-validator to v1.10.0 by @renovate[bot] in #277
  • chore(deps): update dependency gradle to v8.14.3 by @renovate[bot] in #276
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.8 by @renovate[bot] in #275
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.14 by @renovate[bot] in #274
  • chore(deps): update jacksonversion to v2.19.2 by @renovate[bot] in #273
  • chore(deps): update dependency org.junit:junit-bom to v5.13.4 by @renovate[bot] in #272
  • chore(deps): update jacksonversion to v2.20.0 by @renovate[bot] in #286
  • chore(deps): update actions/setup-java action to v5 by @renovate[bot] in #285
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.14.2 by @renovate[bot] in #284
  • chore(deps): update actions/checkout action to v5 by @renovate[bot] in #283
  • chore(deps): update dependency com.github.fslev:json-compare to v7.1 by @renovate[bot] in #281
  • chore(deps): update actions/upload-artifact action to v5 by @renovate[bot] in #297
  • chore(deps): update dependency jacoco to v0.8.14 by @renovate[bot] in #296
  • chore(deps): update github/codeql-action action to v4 by @renovate[bot] in #295
  • chore(deps): update dependency com.apicatalog:titanium-json-ld to v1.7.0 by @renovate[bot] in #294
  • chore(deps): update gradle/actions action to v5 by @renovate[bot] in #293
  • chore(deps): update plugin io.freefair.maven-publish-java to v9 by @renovate[bot] in #290
  • chore(deps): update dependency org.junit:...
Read more

v2.1.0-rc5

14 Nov 13:27

Choose a tag to compare

v2.1.0-rc5 Pre-release
Pre-release

This is a follow-up on rc4, which failed to make it into the repositories due to changed configurations. This RC attempts to fix this issue.

What's Changed

  • chore(deps): update plugin io.freefair.maven-publish-java to v9.1.0 by @renovate[bot] in #303
  • chore(deps): update dependency com.github.fslev:json-compare to v7.2 by @renovate[bot] in #304
  • New release candidate: fix publishing to sonatype by @Pfeil in #305

Full Changelog: v2.1.0-rc4...v2.1.0-rc5

v2.1.0-rc4

10 Nov 12:08
22a8c33

Choose a tag to compare

v2.1.0-rc4 Pre-release
Pre-release

🚀 Highlights

  • You can now add a DataEntity without adding it to the roots "hasPart", by providing the ID of another entity (addDataEntity(entity, parentId)). This other entity needs to be in the crate already in order to validate this action. You may use this to build your hierarchies as you need.
  • The hierarchy of files and directories is (for local files) already encoded in the file paths. You can now map this automatically to hasPart/isPartOf connections using Crate::createDataEntityFileStructure.

What's Changed

  • chore(deps): update dependency commons-io:commons-io to v2.20.0 by @renovate[bot] in #278
  • chore(deps): update dependency commons-validator:commons-validator to v1.10.0 by @renovate[bot] in #277
  • chore(deps): update dependency gradle to v8.14.3 by @renovate[bot] in #276
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.8 by @renovate[bot] in #275
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.14 by @renovate[bot] in #274
  • chore(deps): update jacksonversion to v2.19.2 by @renovate[bot] in #273
  • chore(deps): update dependency org.junit:junit-bom to v5.13.4 by @renovate[bot] in #272
  • chore(deps): update jacksonversion to v2.20.0 by @renovate[bot] in #286
  • chore(deps): update actions/setup-java action to v5 by @renovate[bot] in #285
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.14.2 by @renovate[bot] in #284
  • chore(deps): update actions/checkout action to v5 by @renovate[bot] in #283
  • chore(deps): update dependency com.github.fslev:json-compare to v7.1 by @renovate[bot] in #281
  • chore(deps): update actions/upload-artifact action to v5 by @renovate[bot] in #297
  • chore(deps): update dependency jacoco to v0.8.14 by @renovate[bot] in #296
  • chore(deps): update github/codeql-action action to v4 by @renovate[bot] in #295
  • chore(deps): update dependency com.apicatalog:titanium-json-ld to v1.7.0 by @renovate[bot] in #294
  • chore(deps): update gradle/actions action to v5 by @renovate[bot] in #293
  • chore(deps): update plugin io.freefair.maven-publish-java to v9 by @renovate[bot] in #290
  • chore(deps): update dependency org.junit:junit-bom to v5.14.1 by @renovate[bot] in #291
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.9 by @renovate[bot] in #287
  • chore(deps): update jacksonversion to v2.20.1 by @renovate[bot] in #299
  • chore(deps): update dependency org.junit:junit-bom to v6 by @renovate[bot] in #292
  • chore(deps): update dependency commons-io:commons-io to v2.21.0 by @renovate[bot] in #301
  • fix 289 addDataEntity no longer supports toHasPart parameter by @Pfeil in #298
  • Next Version (2.1.0-rc4) by @Pfeil in #279

Full Changelog: v2.1.0-rc3...v2.1.0-rc4

v2.1.0-rc3

06 Jun 13:21
0ca5d73

Choose a tag to compare

v2.1.0-rc3 Pre-release
Pre-release

Highlights 🚀

  • Until now, we supported adding terms or full contexts (as URI) to the context. Now we also allow prefixes. They work exactly as the terms do.
  • We now add, by default, new contextual entities to the crate when writing them to disk, documenting which version of ro-crate-java generated or modified the crate. It uses one entity per CreateAction or UpdateAction and one entity per ro-crate-java version. This behaviour can be disabled and customized. For more information, look into the documentation of the CrateWriter.

For details, see the list below. We are happy to receive feedback!

What's Changed

  • chore(deps): update dependency gradle to v8.14.1 by @renovate in #262
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.7 by @renovate in #263
  • chore(deps): update dependency org.junit:junit-bom to v5.13.0 by @renovate in #266
  • Add context prefix support by @Pfeil in #267
  • 265 store provenance in crates about the tool which created it by @Pfeil in #268
  • chore(deps): update dependency gradle to v8.14.2 by @renovate in #270
  • feat: add updateCff task to update CITATION.cff during release process by @Pfeil in #271
  • Next Version (2.1.0 | 2.1.0-rc3) by @Pfeil in #264

Full Changelog: v2.1.0-rc2...v2.1.0-rc3

v2.1.0-rc2

22 May 10:27
cde7c63

Choose a tag to compare

v2.1.0-rc2 Pre-release
Pre-release

Highlights 🚀

While we avoid breaking the API except for major versions, you may notice that you may need to do some little changes this time. This is because of fixes which inherently required this. But the fix on your side should be easy. In most cases you'll need to catch a possible exception when reading or writing crates and it should work again. Please tell us soon if something does not work for you!

  • Support .ELN-style crates in all zip readers and writers by @Pfeil in #258
    • 📓We now support zip files which contain the crate not directly, but have a subfolder instead. This is one of the properties of the .ELN specification.
    • 🤐 Our Zip (and ZipStream) reader will search for this implicitly, so nothing has to be changed from your side to make it work. For readers, we think this makes reading simply more reliable. Note that we do not search the whole zip file for a crate but just in the first hierarchy of subfolders. We expect only one subfolder, but to work with edge cases, ro-crate-java will consider a few more. This works around hidden thumbnail folders and other unexpected properties.
    • ✍🏼 Our Zip (and ZipStream) writer strategies have according configuration methods to make them create such files: usingElnStyle() and withRootSubdirectory() do the exact same thing, just with different naming. Some may search for ELN functionality, others just want a subfolder. For ro-crate-java this is currently the same thing.
  • Make specification examples (from readme) executable by @Pfeil in #256
    • 📄✅ Some of the examples in our guide did not work properly any more. To avoid this in future, we moved them to unit tests, where they are executable and tested. The readme now points to these examples.
  • 🔧 Note, we also fixed a few bugs (see below). See if you are affected and consider updating to the release candidate to validate the fixes! 💛

Other

  • chore(deps): update jacksonversion to v2.19.0 by @renovate in #248
  • chore(deps): update dependency gradle to v8.14 by @renovate in #250
  • chore(deps): update dependency gg.jte:jte to v3.2.1 by @renovate in #249
  • Fix adding id property duplicates by @Pfeil in #257
  • fix: enforce correct subfolder name for additional files in StaticPreview.saveAllToStream by @Pfeil in #261
  • Next Version (v2.1.0-rc2) by @Pfeil in #255

Full Changelog: v2.1.0-rc1...v2.1.0-rc2

v2.1.0-rc1

29 Apr 19:03

Choose a tag to compare

v2.1.0-rc1 Pre-release
Pre-release

Highlights

These highlights are the reason for the release candidate. Please give feedback if you experience something unexpected (and also if it works fine for you, if you like). Thanks!

Generalize reading and writing crates by @Pfeil (based on the work of @ThomasJejkal) in #247

We deprecated the old interfaces in favour of newer, generic ones. You are now able to implement readers which read/write from/to any type of location/destination. As an example, we also provide a ZipStreamReader (and Writer) which targets streams, so you do not need to store your crate on disk before sending it around!

Fix renaming of data set entities by @Pfeil in #253

We noticed there was a bug in the Zip export of DataSetEntity if you set an ID different to the file's filename. If this makes you feel you might have been affected, have a look at #254. It is now fixed, and all Writers are tested for correctness (not only the folder writer) in the same way.

All Changes

  • Point to latest release in README by @fpotier in #234
  • chore(deps): update dependency com.github.fslev:json-compare to v7 by @renovate in #236
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.13.1 by @renovate in #235
  • chore(deps): update dependency font-awesome to v6 by @renovate in #239
  • chore(deps): update dependency font-awesome to v6 by @renovate in #240
  • chore(deps): update dependency org.junit:junit-bom to v5.12.2 by @renovate in #243
  • chore(deps): update dependency commons-io:commons-io to v2.19.0 by @renovate in #244
  • Fix #241: Getting key value pairs from the context by @Pfeil in #245
  • Generalize reading and writing crates by @Pfeil (based on the work of @ThomasJejkal) in #247
  • Fix renaming of data set entities by @Pfeil in #253
  • Version 2.1.0 by @Pfeil in #233

Full Changelog: v2.0.2...v2.1.0-rc1

v2.0.2

14 Mar 17:58
e124705

Choose a tag to compare

This is a maintenance and bugfix release.

A big thank you to @fpotier for reporting issues and contributing to the code!

Fixes

  • Fix addEntities() and addFromCollection() generic parameter by @fpotier in #225
  • Fix #226 allow arrays of literals as property values by @Pfeil in #231

Dependencies

  • chore(deps): update dependency jacoco to v0.8.12 by @renovate in #202
  • chore(deps): update dependency gradle to v8.10.2 by @renovate in #203
  • chore(deps): update dependency gradle to v8.11 by @renovate in #205
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.11 by @renovate in #207
  • chore(deps): update dependency commons-io:commons-io to v2.18.0 by @renovate in #209
  • chore(deps): update dependency gradle to v8.11.1 by @renovate in #208
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.4 by @renovate in #210
  • chore(deps): update jacksonversion to v2.18.2 by @renovate in #211
  • chore(deps): update dependency gradle to v8.12 by @renovate in #213
  • chore(deps): update dependency org.junit:junit-bom to v5.11.4 by @renovate in #212
  • chore(deps): update plugin net.researchgate.release to v3.1.0 by @renovate in #214
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.5 by @renovate in #217
  • chore(deps): update dependency org.slf4j:slf4j-jdk14 to v2.0.17 by @renovate in #224
  • chore(deps): update dependency org.junit:junit-bom to v5.12.0 by @renovate in #223
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.6 by @renovate in #222
  • chore(deps): update dependency com.apicatalog:titanium-json-ld to v1.5.0 by @renovate in #220
  • chore(deps): update dependency gradle to v8.13 by @renovate in #219
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.12.2 by @renovate in #218
  • chore(deps): update dependency org.junit:junit-bom to v5.12.1 by @renovate in #232
  • chore(deps): update jacksonversion to v2.18.3 by @renovate in #227
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.13 by @renovate in #228
  • chore(deps): update dependency com.apicatalog:titanium-json-ld to v1.6.0 by @renovate in #229
  • PR for v2.0.2 by @ThomasJejkal in #204

New Contributors

Full Changelog: v2.0.1...v2.0.2

v2.0.1

04 Nov 15:56

Choose a tag to compare

Maintenance release.

What's Changed

  • build(deps): bump com.networknt:json-schema-validator from 1.5.1 to 1.5.2 by @dependabot in #192
  • build(deps): bump commons-io:commons-io from 2.16.1 to 2.17.0 by @dependabot in #191
  • build(deps): bump com.github.fslev:json-compare from 6.15 to 6.16 by @dependabot in #190
  • build(deps): bump org.junit:junit-bom from 5.11.0 to 5.11.1 by @dependabot in #195
  • build(deps): bump com.github.fslev:json-compare from 6.16 to 6.18 by @dependabot in #193
  • build(deps): bump jacksonVersion from 2.17.2 to 2.18.0 by @dependabot in #194
  • build(deps): bump io.freefair.maven-publish-java from 8.10 to 8.10.2 by @dependabot in #196
  • build(deps): bump org.junit:junit-bom from 5.11.1 to 5.11.2 by @dependabot in #197
  • fix: adjust expected data to changed external data by @Pfeil in #201
  • build(deps): bump com.networknt:json-schema-validator from 1.5.2 to 1.5.3 by @dependabot in #200
  • build(deps): bump jacksonVersion from 2.18.0 to 2.18.1 by @dependabot in #199
  • build(deps): bump org.junit:junit-bom from 5.11.2 to 5.11.3 by @dependabot in #198

Full Changelog: v2.0.0...v2.0.1

v2.0.0

13 Sep 14:06

Choose a tag to compare

With this major release, it will be easier to describe your data in some cases. The integration of ro-crate-java into your application will be easier if you use the ZipReader. Some APIs have slightly changed in order to avoid the accidental creation of invalid crates in some cases. All known bugs are now fixed and everything complies, to our knowledge, to the specification. Here are some changes we want to highlight in order to help with migration. Please refer to the Javadoc for details.

Highlights 🚀

The ZipReader is now customizable

The ZipReader unpacks the zip file into a temporary folder in order to access the files inside. This folder is, by default, located in the location where the application using ro-crate-java runs in. This can now be customized using a new ZipReader constructor. The default path also changed slightly in order to avoid collisions.

By default, the temporary folders are being removed if the Java Virtual Machine stops running. If you have a long-running application or want to manage space manually, you can now get all information to do this using getter-Methods within the ZipReader class.

Take a look into the ZipReader documentation for details.

Avoid false-positive warnings if a term is not defined in the context

We do now support full URIs which do not need to be defined in the context, as well as the @id and @json values for the @type attribute. This way you should in practice get less warnings which you could have ignored anyway.

Detect all data entities as such

When adding a data entity using ro-crate-java, we implicitly connect it to the root data entity using the hasPart property. It is up to the user to make more connections, but this is one we currently enforce, to ensure this is recognized as a data entity. If you have the need to handle this differently, please open an issue. When reading crates, we made the same assumption: that the crate will have all data entities in the hasPart property. In practice, this may not be the case. We now traverse the graph consisting of hasPart (and isPartOf) properties in order to find all data entities. When you now use crate.getAllDataEntities() and crate.getAllContextEntities(), you may get slightly different (meaning correct) results.

Encoded file paths now work as defined in the specification

We now support encoded file paths and encode them for you without any additional line of code on your side. We used the examples from the specification to ensure maintaining readability, if possible, and only fully encode when all our heuristics did not work out. This will usually keep most characters readable, like Kanji and others.

Easier provenance descriptions using the ActionEntityBuilder

We now provide an ActionEntityBuilder in order to make it easy to describe the provenance of your data.

Transition guide: renamed addContent to setLocation

The function addContent for data entities has been modified and renamed. The new name is setLocation and setLocationWithExceptions:

  • The "set" prefix implies that calling the function a second time will override the first call.
  • The "Location" instead of "Content" reflects that the input is a pointer to the content location.
  • The function takes only one parameter, which is the location. The id parameter has been dropped. If no ID is present in beforehand, it will be derived from the file name within the given path. If not, it remains unchanged. See the documentation for details. To set the ID explicitly before or after the call, you can use setId as before. This change was to remove redundant functionality.

If you have any feedback for this or other changes, feel free to open an issue.

What's Changed

  • fix: RootDataEntity identifier is not allowed for other entities. by @Pfeil in #185
  • Fix handling of possible loops in data graphs by @Pfeil in #187
  • Fix invalid context check warnings by @Pfeil in #188
  • Unpack zipped crates into unique temporary folder by @Code42Cate in #83

Full Changelog (since v2.0.0-rc4): v2.0.0-rc4...v2.0.0

Full Changelog (since v1.1.0): v1.1.0...v2.0.0

v2.0.0-rc4

04 Sep 14:59

Choose a tag to compare

v2.0.0-rc4 Pre-release
Pre-release

Another small set of breaking changes. Please try it out and crate an issue if it works for you.

What's Changed

⚡ Highlights

  • More ergonomic and consistent ActionEntityBuilder by @Pfeil in #178
  • Avoid the use of lists in APIs and replace them with appropriate interfaces. by @Pfeil in #183
  • Avoid adding dataEntities which are not being added to the root data entity by @Pfeil in #184

🛠️ Maintenance

  • build(deps): bump com.networknt:json-schema-validator from 1.1.0 to 1.5.1 by @dependabot in #165
  • build(deps): bump gradle/wrapper-validation-action from 1 to 3 by @dependabot in #166
  • build(deps): bump jacksonVersion from 2.16.1 to 2.17.2 by @dependabot in #167
  • build(deps): bump com.apicatalog:titanium-json-ld from 1.3.3 to 1.4.1 by @dependabot in #168
  • build(deps): bump org.slf4j:slf4j-jdk14 from 2.0.9 to 2.0.13 by @dependabot in #169
  • build(deps): bump org.junit:junit-bom from 5.9.1 to 5.10.3 by @dependabot in #170
  • build(deps): bump gradle/gradle-build-action from 2 to 3 by @dependabot in #149
  • build(deps): bump com.github.fslev:json-compare from 6.13 to 6.15 by @dependabot in #175
  • build(deps): bump gradle/actions from 3 to 4 by @dependabot in #176
  • build(deps): bump org.junit.jupiter:junit-jupiter-params from 5.0.0-M4 to 5.11.0-RC1 by @dependabot in #172
  • build(deps): bump commons-validator:commons-validator from 1.8.0 to 1.9.0 by @dependabot in #173
  • build(deps): bump commons-io:commons-io from 2.15.1 to 2.16.1 by @dependabot in #174
  • Review identifier encoding by @Pfeil in #171
  • build(deps): bump io.freefair.maven-publish-java from 8.6 to 8.7.1 by @dependabot in #180
  • build(deps): bump org.junit:junit-bom from 5.10.3 to 5.11.0 by @dependabot in #181
  • build(deps): bump org.slf4j:slf4j-jdk14 from 2.0.13 to 2.0.16 by @dependabot in #179
  • build(deps): bump io.freefair.maven-publish-java from 8.7.1 to 8.10 by @dependabot in #182

Full Changelog: v2.0.0-rc3...v2.0.0-rc4