tree 54de4db864cd18a4f0f6c6b4b7b2bf58dc2b1ae0
parent 219c7d0bd7f31ce16f22892496a9ced9aac2dca7
parent 65d8c270c3a3ed7d5d2a0d54332f49977378f2bb
author Marge Bot <marge@benkard.de> 1693316656 +0000
committer Marge Bot <marge@benkard.de> 1693316656 +0000

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

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) | build | minor | `2.38.0` -> `2.39.0` |
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | patch | `3.3.0` -> `3.3.1` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | patch | `3.3.0` -> `3.3.1` |

---

### Release Notes

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

### [`v2.39.0`](https://github.com/diffplug/spotless/blob/HEAD/CHANGES.md#&#8203;2390---2023-05-24)

##### Added

-   `Jvm.Support` now accepts `-SNAPSHOT` versions, treated as the non`-SNAPSHOT`. ([#&#8203;1583](https://github.com/diffplug/spotless/issues/1583))
-   Support Rome as a formatter for JavaScript and TypeScript code. Adds a new `rome` step to `javascript` and `typescript` formatter configurations. ([#&#8203;1663](https://github.com/diffplug/spotless/pull/1663))
-   Add semantics-aware Java import ordering (i.e. sort by package, then class, then member). ([#&#8203;522](https://github.com/diffplug/spotless/issues/522))

##### Fixed

-   Fixed a regression which changed the import sorting order in `googleJavaFormat` introduced in `2.38.0`. ([#&#8203;1680](https://github.com/diffplug/spotless/pull/1680))
-   Equo-based formatters now work on platforms unsupported by Eclipse such as PowerPC (fixes [durian-swt#&#8203;20](https://github.com/diffplug/durian-swt/issues/20))
-   When P2 download fails, indicate the responsible formatter. ([#&#8203;1698](https://github.com/diffplug/spotless/issues/1698))

##### Changes

-   Equo-based formatters now download metadata to `~/.m2/repository/dev/equo/p2-data` rather than `~/.equo`, and for CI machines without a home directory the p2 data goes to `$GRADLE_USER_HOME/caches/p2-data`. ([#&#8203;1714](https://github.com/diffplug/spotless/pull/1714))
-   Bump default `googleJavaFormat` version to latest `1.16.0` -> `1.17.0`. ([#&#8203;1710](https://github.com/diffplug/spotless/pull/1710))
-   Bump default `ktfmt` version to latest `0.43` -> `0.44`. ([#&#8203;1691](https://github.com/diffplug/spotless/pull/1691))
-   Bump default `ktlint` version to latest `0.48.2` -> `0.49.1`. ([#&#8203;1696](https://github.com/diffplug/spotless/issues/1696))
    -   Dropped support for `ktlint 0.46.x` following our policy of supporting two breaking changes at a time.
-   Bump default `sortpom` version to latest `3.0.0` -> `3.2.1`. ([#&#8203;1675](https://github.com/diffplug/spotless/pull/1675))

</details>

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

### [`v3.3.1`](https://github.com/quarkusio/quarkus/compare/3.3.0...3.3.1)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.3.0...3.3.1)

</details>

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

### [`v3.3.1`](https://github.com/quarkusio/quarkus-platform/compare/3.3.0...3.3.1)

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

</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-->