tree a786aaff08a57dec008eb6a2f8b2f55fb5b0710e
parent 25cdbfa643025a811e0b074f634f59c0090b794b
parent 61894113f757c679a3035ba26d596208ed3223b3
author Marge Bot <marge@benkard.de> 1696445871 +0000
committer Marge Bot <marge@benkard.de> 1696445871 +0000

Update all non-major dependencies (mulk/mulkcms2!40)

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flow-bin](https://github.com/flowtype/flow-bin) ([changelog](https://github.com/facebook/flow/blob/master/Changelog.md)) | devDependencies | minor | [`^0.216.0` -> `^0.217.0`](https://renovatebot.com/diffs/npm/flow-bin/0.216.1/0.217.2) |
| [org.liquibase:liquibase-maven-plugin](http://www.liquibase.org/liquibase-maven-plugin) ([source](https://github.com/liquibase/liquibase)) | build | minor | `4.23.2` -> `4.24.0` |
| [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) | build | minor | `2.39.0` -> `2.40.0` |
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | patch | `3.4.1` -> `3.4.2` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | patch | `3.4.1` -> `3.4.2` |

---

### Release Notes

<details>
<summary>flowtype/flow-bin</summary>

### [`v0.217.2`](https://github.com/flowtype/flow-bin/compare/15ccd14115e34bcc90f21f079e66524703a9a7f4...dc93913758d1ca31879b6826c03c7c82eca7b099)

[Compare Source](https://github.com/flowtype/flow-bin/compare/15ccd14115e34bcc90f21f079e66524703a9a7f4...dc93913758d1ca31879b6826c03c7c82eca7b099)

### [`v0.217.1`](https://github.com/flowtype/flow-bin/compare/6af43b31ff86e0e1087c1e97f7379bb9cd65b804...15ccd14115e34bcc90f21f079e66524703a9a7f4)

[Compare Source](https://github.com/flowtype/flow-bin/compare/6af43b31ff86e0e1087c1e97f7379bb9cd65b804...15ccd14115e34bcc90f21f079e66524703a9a7f4)

### [`v0.217.0`](https://github.com/flowtype/flow-bin/compare/f96ca329efa4a020f101cf8b53f7c20001ead6c8...6af43b31ff86e0e1087c1e97f7379bb9cd65b804)

[Compare Source](https://github.com/flowtype/flow-bin/compare/f96ca329efa4a020f101cf8b53f7c20001ead6c8...6af43b31ff86e0e1087c1e97f7379bb9cd65b804)

</details>

<details>
<summary>liquibase/liquibase</summary>

### [`v4.24.0`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4240-is-a-major-release)

[Compare Source](https://github.com/liquibase/liquibase/compare/v4.23.2...v4.24.0)

</details>

<details>
<summary>diffplug/spotless</summary>

### [`v2.40.0`](https://github.com/diffplug/spotless/blob/HEAD/CHANGES.md#&#8203;2400---2023-07-17)

##### Added

-   Added support for Protobuf formatting based on [Buf](https://buf.build/). ([#&#8203;1208](https://github.com/diffplug/spotless/issues/1208))
-   `enum OnMatch { INCLUDE, EXCLUDE }` so that `FormatterStep.filterByContent` can not only include based on the pattern but also exclude. ([#&#8203;1749](https://github.com/diffplug/spotless/pull/1749))

##### Fixed

-   Update documented default `semanticSort` to `false`. ([#&#8203;1728](https://github.com/diffplug/spotless/pull/1728))

##### Changes

-   Bump default `cleanthat` version to latest `2.13` -> `2.17`. ([#&#8203;1734](https://github.com/diffplug/spotless/pull/1734))
-   Bump default `ktlint` version to latest `0.49.1` -> `0.50.0`. ([#&#8203;1741](https://github.com/diffplug/spotless/issues/1741))
    -   Dropped support for `ktlint 0.47.x` following our policy of supporting two breaking changes at a time.
    -   Dropped support for deprecated `useExperimental` parameter in favor of the `ktlint_experimental` property.

</details>

<details>
<summary>quarkusio/quarkus</summary>

### [`v3.4.2`](https://github.com/quarkusio/quarkus/compare/3.4.1...3.4.2)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.4.1...3.4.2)

</details>

<details>
<summary>quarkusio/quarkus-platform</summary>

### [`v3.4.2`](https://github.com/quarkusio/quarkus-platform/compare/3.4.1...3.4.2)

[Compare Source](https://github.com/quarkusio/quarkus-platform/compare/3.4.1...3.4.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->