Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency com.squareup.moshi:moshi to v1.15.2 #12

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 23, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.squareup.moshi:moshi 1.5.0 -> 1.15.2 age adoption passing confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

square/moshi (com.squareup.moshi:moshi)

v1.15.2

Compare Source

v1.15.1

2024-01-30

  • Upgrade to Okio 3.7.0

v1.15.0

2023-05-12

  • Upgrade to Kotlin 1.8.21.
  • Upgrade to KSP 1.8.21-1.0.11.
  • Upgrade to kotlinx-metadata 0.6.0.
  • Upgrade to KotlinPoet 1.13.2.
  • Support Kotlin language version 1.9.0 in KAPT.
  • Include name of the type being processed when creating the adapterGenerator fails in KSP.
  • Suppress UNUSED_PARAMETER in generated code.
  • Deprecate KAPT code gen. Please migrate to KSP, we will remove KAPT support in a future release. This release will also print an annoying noisy warning in KAPT processing if you use it.

v1.14.0

2022-09-06

  • Upgrade: [Kotlin 1.7.0][kotlin_1_7_0].
  • Upgrade [KotlinPoet 1.12.0][kotlinpoet_1_12_0].
    • Moshi no longer shades kotlinpoet-ksp APIs, meaning they can be updated independently of Moshi updates.
  • Upgrade: [KSP 1.7.0-1.0.6][ksp_1_7_0_1_0_6].
  • Upgrade: [kotlinx-metadata 0.5.0][kotlinx_metadata_0_5_0], allowing reading of kotlin 1.8 APIs too.

v1.13.0

2021-12-08

  • New: Support for [Kotlin Symbol Processing (KSP)][ksp]. KSP is an alternative to annotation
    processing code gen. It's builds faster and better supports Kotlin language features.

    To use KSP in your application you must enable the KSP Gradle plugin and add a KSP dependency
    on Moshi codegen.

    plugins {
      id("com.google.devtools.ksp").version("1.6.0-1.0.1")
    }
    
    dependencies {
      ksp("com.squareup.moshi:moshi-kotlin-codegen:1.13.0")
    }
    

    If you're switching from annotation processing (kapt) to KSP, you should remove the kapt plugin
    and the kapt Moshi dependency.

  • New: @Json(ignore = true) is a Moshi-specific way to exclude properties from JSON encoding
    and decoding.

  • New: Support Java 16 records. (Moshi still requires Java 8 only; we're shipping a [multi-release
    jar][mrjar] to better support modern JVMs.)

  • New: Option to disable generating R8/ProGuard files. These files prevent code shrinkers from
    removing files that support JSON processing. If you're not using ProGuard or R8, you can skip
    this step.

    ksp {
      arg("moshi.generateProguardRules", "false")
    }
    
  • Upgrade: [Kotlin 1.6.0][kotlin_1_6_0].

v1.12.0

2021-04-01

  • New: Improve generated code performance when all properties are set.
  • Fix: Don't crash on a missing type element like @SuppressLint.
  • Fix: Update the JVM metadata library to avoid problems on Kotlin 1.5.0-M2.
  • Fix: Support generic arrays with defaults in generated adapters.
  • Fix: Don't generate code with simple name collisions.
  • Upgrade: [Okio 2.10.0][okio_2_10_0].
  • Upgrade: [Kotlin 1.4.31][kotlin_1_4_31].

v1.11.0

2020-10-04

  • New: Kotlin extension functions and properties. Use of these extensions is only possible from
    Kotlin, and requires the Kotlin stdlib dependency. This release does not have any Kotlin
    requirement and can be used Kotlin-free from Java.

    /** Extension alternative to [Types.nextAnnotations()]. */
    fun <reified T : Annotation> Set<Annotation>.nextAnnotations(): Set<Annotation>?
    
    /** Extension alternative to [Types.getRawType()]. */
    val Type.rawType: Class<*>
    
    /** Extension alternative to [Types.arrayOf()]. */
    fun KClass<*>.asArrayType(): GenericArrayType
    
    /** Extension alternative to [Types.arrayOf()]. */
    fun Type.asArrayType(): GenericArrayType
  • New: Experimental Kotlin extensions. These depend on unreleased APIs and may break in a future
    release of Kotlin. If you are comfortable with this, add @ExperimentalStdlibApi at the callsite
    or add this argument to your Kotlin compiler: "-Xopt-in=kotlin.ExperimentalStdlibApi".

    /** Returns the adapter for [T]. */
    inline fun <reified T> Moshi.adapter(): JsonAdapter<T>
    
    /** Returns the adapter for [ktype]. */
    fun <T> Moshi.adapter(ktype: KType): JsonAdapter<T>
    
    /** Adds an adapter for [T]. */
    inline fun <reified T> Moshi.Builder.addAdapter(adapter: JsonAdapter<T>): Moshi.Builder
    
    /** Extension alternative to [Types.arrayOf()]. */
    fun KType.asArrayType(): GenericArrayType
    
    /** Extension alternative to [Types.subtypeOf()]. */
    inline fun <reified T> subtypeOf(): WildcardType
    
    /** Extension alternative to [Types.supertypeOf()]. */
    inline fun <reified T> supertypeOf(): WildcardType
  • New: JsonReader.nextSource(). This returns an Okio BufferedSource that streams the UTF-8
    bytes of a JSON value. Use this to accept JSON values without decoding them, to delegate to
    another JSON processor, or for streaming access to very large embedded values.

  • New: Moshi.Builder.addLast(). Use this when installing widely-applicable adapter factories like
    KotlinJsonAdapterFactory. Adapters registered with add() are preferred (in the order they
    were added), followed by all adapters registered with addLast() (also in the order they were
    added). This precedence is retained when Moshi.newBuilder() is used.

  • New: setTag(), tag() methods on JsonReader and JsonWriter. Use these as a side-channel
    between adapters and their uses. For example, a tag may be used to track use of unexpected
    data in a custom adapter.

  • Fix: Don't crash with a StackOverflowError decoding backward-referencing type variables in
    Kotlin. This caused problems for parameterized types like MyInterface<E : Enum<E>>.

  • Upgrade: [Okio 1.17.5][okio_1_7_5].

  • Upgrade: [Kotlin 1.4.10][kotlin_1_4_10].

v1.10.0

2020-08-26

  • New: Upgrade to Kotlin 1.4.0.
  • New: JsonReader.promoteNameToValue() makes it easier to build custom Map adapters.
  • New: Options.strings().
  • New: PolymorphicJsonAdapterFactory.withFallbackJsonAdapter() makes it possible to handle
    unrecognized types when encoding and decoding.
  • New: Add JsonWriter.jsonValue API
  • New: Code gen now generates precise proguard rules on-the-fly.
  • New: Improve error when incorrectly trying to use a collection class like ArrayList instead of List
  • Fix: Prevent R8 from keeping all @Metadata annotations
  • Fix: Avoid VerifyErrors on Android 4.4 devices when using R8
  • Fix: Fix resolution of types in superclass settable properties

v1.9.3

2020-06-11

  • Fix: Tweak a shrinker rule to mitigate an R8 bug which was causing classes unrelated to the Kotlin adpater code generation to be retained.
  • Fix: Ensure that the Kotlin adapter code generation does not line wrap in the middle of a string if your JSON keys contain spaces.
  • Fix: Strip type annotations before emitting type references like Foo::class in the Kotlin adapter code generation.
  • Fix: Separate the runtime check for Kotlin's DefaultConstructorMarker from the check for Metadata. A shrinker may have removed Metadata and we should still check for DefaultConstructorMarker.

v1.9.2

2019-11-17

  • Fix: Generate correct adapters for several special cases including reified inline types, public
    classes enclosed in internal classes, deprecated types with -Werror, primitives in type
    parameters, nullables in type parameters, and type aliases in type parameters.

v1.9.1

2019-10-30

  • Fix: "abstract function ... cannot have code" code gen crash when parsing Kotlin metadata.
  • Fix: Generate code to support constructors with more than 32 parameters. The 1.9.0 release had
    a regression where classes with 33+ parameters would crash upon decoding.
  • Fix: Generate code to support more constructor cases, such as classes with non-property
    parameters and classes with multiple constructors.
  • Fix: Generate code to handle type aliases in type parameters.

v1.9.0

2019-10-29

  • This release requires kotlin-reflect or moshi-kotlin-codegen for all Kotlin classes.

    Previously Moshi wouldn't differentiate between Kotlin classes and Java classes if Kotlin was
    not configured. This caused bad runtime behavior such as putting null into non-nullable fields!
    If you attempt to create an adapter for a Kotlin type, Moshi will throw an
    IllegalArgumentException.

    Fix this with either the reflection adapter:

    val moshi = Moshi.Builder()
        // ... add your own JsonAdapters and factories ...
        .add(KotlinJsonAdapterFactory())
        .build()

    Or the codegen annotation processor:

    @&#8203;JsonClass(generateAdapter = true)
    data class BlackjackHand(
            val hidden_card: Card,
            val visible_cards: List<Card>
    )

    The [Kotlin documentation][moshi_kotlin_docs] explains the required build configuration changes.

  • New: Change how Moshi's generated adapters call constructors. Previous generated code used a
    combination of the constructor and copy() method to set properties that have default values.
    With this update we call the same synthetic constructor that Kotlin uses. This is less surprising
    though it requires us to generate some tricky code.

  • New: Make Rfc3339DateJsonAdapter null-safe. Previously Moshi would refuse to decode null dates.
    Restore that behavior by explicitly forbidding nulls with Rfc3339DateJsonAdapter().nonNull().

  • New: Require Kotlin 1.3.50 or newer.

  • New: JsonWriter.valueSink() streams JSON-formatted data inline. Use this to do basic includes
    of raw JSON within a streamed document.

  • New: Support Gradle incremental processing in code gen.

  • New: Improve error messages. This includes better errors when field names and JSON names
    disagree, and when failing on an unknown field.

  • New: Support default values in PolymorphicJsonAdapterFactory.

  • New: Permit multiple labels for each subtype in PolymorphicJsonAdapterFactory. The first label
    is used when writing an object to JSON.

  • New: Forbid automatic encoding of platform classes in kotlinx. As with java.*, android.*,
    and kotlin.* Moshi wants you to specify how to encode platform types.

  • New: @JsonClass(generator=...) makes it possible for third-party libraries to provide generated
    adapters when Moshi's default adapters are insufficient.

  • Fix: Simplify wildcard types like List<? extends Number> to their base types List<Number>
    when finding type adapters. This is especially useful with Kotlin where wildcards may be added
    automatically.

  • Fix: Use the correct name when the @Json annotation uses field targeting like @field:Json.

  • Fix: Support multiple transient properties in KotlinJsonAdapter.

  • Fix: Don't explode attempting to resolve self-referential type variables like in
    Comparable<T extends Comparable<T>>.

  • Fix: Don't infinite loop on skipValue() at the end an object or array. Also disallow calling
    skipValue() at the end of a document.

v1.8.0

2018-11-09

  • New: Support JSON objects that include type information in the JSON. The new
    PolymorphicJsonAdapterFactory writes a type field when encoding, and reads it when decoding.

  • New: Fall back to the reflection-based KotlinJsonAdapterFactory if it is enabled and a
    generated adapter is not found. This makes it possible to use reflection-based JSON adapters in
    development (so you don't have to wait for code to be regenerated on every build) and generated
    JSON adapters in production (so you don't need the kotlin-reflect library).

  • New: The peekJson() method on JsonReader let you read ahead on a JSON stream without
    consuming it. This builds on Okio's new Buffer.peek() API.

  • New: The beginFlatten() and endFlatten() methods on JsonWriter suppress unwanted nesting
    when composing adapters. Previously it was necessary to flatten objects in memory before writing.

  • New: Upgrade to Okio 1.16.0. We don't yet require Kotlin-friendly Okio 2.1 but Moshi works fine
    with that release.

    implementation("com.squareup.okio:okio:1.16.0")
  • Fix: Don't return partially-constructed adapters when using a Moshi instance concurrently.

  • Fix: Eliminate warnings and errors in generated .kt triggered by type variance, primitive
    types, and required values.

  • Fix: Improve the supplied rules (moshi.pro) to better retain symbols used by Moshi. We
    recommend R8 when shrinking code.

  • Fix: Remove code generation companion objects. This API was neither complete nor necessary.

v1.7.0

2018-09-24

  • New: EnumJsonAdapter makes it easy to specify a fallback value for unknown enum constants.
    By default Moshi throws an JsonDataException if it reads an unknown enum constant. With this
    you can specify a fallback value or null.

    new Moshi.Builder()
        .add(EnumJsonAdapter.create(IsoCurrency.class)
            .withUnknownFallback(IsoCurrency.USD))
        .build();

    Note that this adapter is in the optional moshi-adapters module.

    implementation 'com.squareup.moshi:moshi-adapters:1.7.0'
  • New: Embed R8/ProGuard rules in the .jar file.

  • New: Use @CheckReturnValue in more places. We hope this will encourage you to use skipName()
    instead of nextName() for better performance!

  • New: Forbid automatic encoding of platform classes in androidx. As with java.*, android.*,
    and kotlin.* Moshi wants you to specify how to encode platform types.

  • New: Improve error reporting when creating an adapter fails.

  • New: Upgrade to Okio 1.15.0. We don't yet require Kotlin-friendly Okio 2.x but Moshi works fine
    with that release.

    implementation 'com.squareup.okio:okio:1.15.0'
  • Fix: Return false from JsonReader.hasNext() at document's end.

  • Fix: Improve code gen to handle several broken cases. Our generated adapters had problems with
    nulls, nested parameterized types, private transient properties, generic type aliases, fields
    with dollar signs in their names, and named companion objects.

v1.6.0

2018-05-14

  • Moshi now supports codegen for Kotlin. We've added a new annotation processor that generates
    a small and fast JSON adapter for your Kotlin types. It can be used on its own or with the
    existing KotlinJsonAdapterFactory adapter.

  • Moshi now resolves all type parameters. Previously Moshi wouldn't resolve type parameters on
    top-level classes.

  • New: Support up to 255 levels of nesting when reading and writing JSON. Previously Moshi would
    reject JSON input that contained more than 32 levels of nesting.

  • New: Write encoded JSON to a stream with JsonWriter.value(BufferedSource). Use this to emit a
    JSON value without decoding it first.

  • New: JsonAdapter.nonNull() returns a new JSON adapter that forbids explicit nulls in the JSON
    body. Use this to detect and fail eagerly on unwanted nulls.

  • New: JsonReader.skipName() is like nextName() but it avoids allocating when a name is
    unknown. Use this when JsonReader.selectName() returns -1.

  • New: Automatic module name of com.squareup.moshi for use with the Java Platform Module System.
    This moves moshi-adapters into its own .adapters package and forwards the existing adapter. It
    moves the moshi-kotlin into its own .kotlin.reflect package and forwards the existing adapter.

  • New: Upgrade to Okio 1.14.0.

     <dependency>
       <groupId>com.squareup.okio</groupId>
       <artifactId>okio</artifactId>
       <version>1.14.0</version>
     </dependency>
    
     com.squareup.okio:okio:1.14.0
  • Fix: Fail fast if there are trailing non-whitespace characters in the JSON passed to
    JsonAdapter.fromJson(String). Previously such data was ignored!

  • Fix: Fail fast when Kotlin types are abstract, inner, or object instances.

  • Fix: Fail fast if name() is called out of sequence.

  • Fix: Handle asymmetric Type.equals() methods when doing type comparisons. Previously it was
    possible that a registered type adapter would not be used because its Type.equals() method was
    not consistent with a user-provided type.

  • Fix: JsonValueReader.selectString() now returns -1 for non-strings instead of throwing.

  • Fix: Permit reading numbers as strings when the JsonReader was created from a JSON value. This
    was always supported when reading from a stream but broken when reading from a decoded value.

  • Fix: Delegate to user-adapters in the adapter for Object.class. Previously when Moshi encountered
    an opaque Object it would only use the built-in adapters. With this change user-installed
    adapters for types like String will always be honored.


Configuration

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

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/com.squareup.moshi-moshi-1.x branch from 3c462af to 869bc6c Compare December 6, 2024 02:56
@renovate renovate bot changed the title Update dependency com.squareup.moshi:moshi to v1.15.1 Update dependency com.squareup.moshi:moshi to v1.15.2 Dec 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants