Update all non-major dependencies to v2.26.1 (mulk/jgvariant!26)

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.google.errorprone:error_prone_core](https://errorprone.info) ([source](https://github.com/google/error-prone)) |  | minor | `2.25.0` -> `2.26.1` |
| [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | compile | minor | `2.25.0` -> `2.26.1` |

---

### Release Notes

<details>
<summary>google/error-prone</summary>

### [`v2.26.1`](https://github.com/google/error-prone/releases/tag/v2.26.1): Error Prone 2.26.1

[Compare Source](https://github.com/google/error-prone/compare/v2.26.0...v2.26.1)

Changes:

-   Fix the module name of the annotations artifact: `com.google.errorprone.annotations` (https://github.com/google/error-prone/commit/9d99ee76f2ca8568b69150f5df7fe845c8545d16)

Full Changelog: https://github.com/google/error-prone/compare/v2.26.0...v2.26.1

### [`v2.26.0`](https://github.com/google/error-prone/releases/tag/v2.26.0): Error Prone 2.26.0

[Compare Source](https://github.com/google/error-prone/compare/v2.25.0...v2.26.0)

Changes:

-   The 'annotations' artifact now includes a `module-info.java` for Java Platform Module System support, thanks to [@&#8203;sgammon](https://github.com/sgammon) in [#&#8203;4311](https://github.com/google/error-prone/issues/4311).
-   Disabled checks passed to `-XepPatchChecks` are now ignored, instead of causing a crash. Thanks to [@&#8203;oxkitsune](https://github.com/oxkitsune) in [#&#8203;4028](https://github.com/google/error-prone/issues/4028).

New checks:

-   [`SystemConsoleNull`](https://errorprone.info/bugpattern/SystemConsoleNull): Null-checking `System.console()` is not a reliable way to detect if the console is connected to a terminal.
-   [`EnumOrdinal`](https://errorprone.info/bugpattern/EnumOrdinal): Discourage uses of `Enum.ordinal()`

Closed issues: [#&#8203;2649](https://github.com/google/error-prone/issues/2649), [#&#8203;3908](https://github.com/google/error-prone/issues/3908), [#&#8203;4028](https://github.com/google/error-prone/issues/4028), [#&#8203;4311](https://github.com/google/error-prone/issues/4311), [#&#8203;4314](https://github.com/google/error-prone/issues/4314)

Full Changelog: https://github.com/google/error-prone/compare/v2.25.0...v2.26.0

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

🔕 **Ignore**: Close this MR and you won't be reminded about these updates again.

---

 - [ ] <!-- 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-->
tree: c8fca490d1053dc2796b20beca47d37f2b2bb2c1
  1. .mvn/
  2. .reuse/
  3. jgvariant-bom/
  4. jgvariant-core/
  5. jgvariant-ostree/
  6. jgvariant-parent/
  7. jgvariant-tool/
  8. LICENSES/
  9. .gitignore
  10. .gitlab-ci.yml
  11. COPYING
  12. pom.xml
  13. README.md
  14. renovate.json
README.md

GVariant for Java

This library provides a GVariant parser in pure Java.

Overview

jgvariant-core provides Decoder<T>, which read a given type of GVariant-encoded value from a ByteBuffer. The class also contains factory methods to acquire those instances.

The various subclasses of Decoder together implement the GVariant serialization specification.

jgvariant-ostree provides instances of Decoder<T> for various GVariant types used in OSTree repositories.

Example

To parse a GVariant value of type "a(si)", which is an array of pairs of String and int, you can use the following code:

record ExampleRecord(String s, int i) {}

var decoder =
  Decoder.ofArray(
    Decoder.ofStructure(
      ExampleRecord.class,
      Decoder.ofString(StandardCharsets.UTF_8),
      Decoder.ofInt().withByteOrder(ByteOrder.LITTLE_ENDIAN)));

byte[] bytes = ...;
List<ExampleRecord> example = decoder.decode(ByteBuffer.wrap(bytes));

Command line tool

The jgvariant-tool module contains a tool called jgvariant that can be used to manipulate GVariant-formatted files from the command line. Its primary purpose is to enable the scripting of OSTree repository management tasks.

Usage examples

Dumping the contents of an OSTree summary file

$ jgvariant ostree summary read ./jgvariant-ostree/src/test/resources/ostree/summary

Output:

{
    "entries": [
        {
            "ref": "mulkos/1.x/amd64",
            "value": {
                "checksum": "66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350",
                "metadata": {
                    "fields": {
                        "ostree.commit.timestamp": 1640537170
                    }
                },
                "size": 214
            }
        }
    ],
    "metadata": {
        "fields": {
            "ostree.summary.last-modified": 1640537300,
            "ostree.summary.tombstone-commits": false,
            "ostree.static-deltas": {
                "3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f-66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350": "03738040e28e7662e9c9d2599c530ea974e642c9f87e6c00cbaa39a0cdac8d44",
                "31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52": "f481144629474bd88c106e45ac405ebd75b324b0655af1aec14b31786ae1fd61",
                "31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52-3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f": "2c6a07bc1cf4d7ce7d00f82d7d2d6d156fd0e31d476851b46dc2306b181b064a"
            },
            "ostree.summary.mode": "bare",
            "ostree.summary.indexed-deltas": true
        }
    }
}

Adding a static delta to an OSTree summary file

Superblock checksum 0..., between commits 3... and 6...:

$ jgvariant ostree summary add-static-delta ./jgvariant-ostree/src/test/resources/ostree/summary 03738040e28e7662e9c9d2599c530ea974e642c9f87e6c00cbaa39a0cdac8d44 66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350 3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f

Superblock checksum f..., between the empty commit and 3...:

$ jgvariant ostree summary add-static-delta ./jgvariant-ostree/src/test/resources/ostree/summary f481144629474bd88c106e45ac405ebd75b324b0655af1aec14b31786ae1fd61 31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52

Checksums can be given in either hex (64 digits) or a variant of Base64 (43 digits) where / is replaced by _. The latter format is used to identify the start and end commits of deltas as part of folder names below deltas/ in the OSTree repository itself.

Building the tool

You can build the tool either as a shaded JAR or as a native executable.

To build and run a shaded JAR:

$ mvn package -pl jgvariant-tool -am -Pshade
$ java -jar jgvariant-tool/target/jgvariant-tool-*.jar ...

To build and run a native executable:

$ mvn package -pl jgvariant-tool -am -Pnative
$ ./jgvariant-tool/target/jgvariant ...

You can also run the tool directly with Maven using the exec profile:

$ mvn verify -pl jgvariant-tool -am -Pexec -Dexec.args="..."

Library installation

Usage with Maven

<project>
  ...

  <dependencyManagement>
    ...

    <dependencies>
      <dependency>
        <groupId>eu.mulk.jgvariant</groupId>
        <artifactId>jgvariant-bom</artifactId>
        <version>0.1.8</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>

    ...
  </dependencyManagement>

  <dependencies>
    ...

    <dependency>
      <groupId>eu.mulk.jgvariant</groupId>
      <artifactId>jgvariant-core</artifactId>
    </dependency>
    <dependency>
      <groupId>eu.mulk.jgvariant</groupId>
      <artifactId>jgvariant-ostree</artifactId>
    </dependency>

    ...
  </dependencies>

  ...
</project>

Usage with Gradle

dependencies {
  ...

  implementation(platform("eu.mulk.jgvariant:jgvariant-bom:0.1.8")
  implementation("eu.mulk.jgvariant:jgvariant-core")
  implementation("eu.mulk.jgvariant:jgvariant-ostree")

  ...
}