Upgrading built_value 7 to 8
Breaking7.1.0 → 8.13.0Breaking2Deprecated1New4Changed23Fixed3
Fetching 55 releases from GitHub…23 / 55
BreakingUpgrade verdict
2 breaking changes.
In plain terms
- The generator no longer produces code for Dart versions older than 2.12, so projects on older Dart SDKs cannot use this version.
- The generator now processes fewer files by default. Files that relied on indirect imports or other annotations will no longer be generated unless configured.
- The @nullable annotation is now deprecated. It has no effect, so stop using it.
Must act 3 items need code or config changes
Dart SDK requirement changed in 8.8.1: >=2.3.0 <3.0.0 → >=3.0.0 <4.0.0.
What you must change
Breaking2
Removes support for generating legacy pre-2.12 Dart code.
built_value now only runs on libraries that directly import package:built_value/built_value.dart or use an annotation called @SerializersFor.
package:built_value/built_value.dart@SerializersForDeprecations to plan for
Deprecated1
Marks
@nullable deprecated because it does nothing and should not be used.@nullableAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- changed:
method BuiltListAsyncDeserializer.deserialize(Serializers serializers, Iterable serialized, {FullType specifiedType = …}): Stream<Object> → method BuiltListAsyncDeserializer.deserialize(Serializers serializers, Iterable serialized, {FullType specifiedType = …}): Stream<Object?>
- changed:
ctor BuiltValueField({this.compare, this.serialize, this.wireName}) → ctor BuiltValueField( {this.compare, this.serialize, this.wireName, this.nestedBuilder, this.autoCreateNestedBuilder}) - changed:
field BuiltValue.wireName: final String → field BuiltValue.wireName: final String? - changed:
field BuiltValueEnum.wireName: final String → field BuiltValueEnum.wireName: final String? - changed:
field BuiltValueEnumConst.wireName: final String → field BuiltValueEnumConst.wireName: final String? - changed:
field BuiltValueEnumConst.wireNumber: final int → field BuiltValueEnumConst.wireNumber: final int? - changed:
field BuiltValueField.compare: final bool → field BuiltValueField.compare: final bool? - changed:
field BuiltValueField.serialize: final bool → field BuiltValueField.serialize: final bool? - changed:
field BuiltValueField.wireName: final String → field BuiltValueField.wireName: final String? - changed:
method Builder.update(Function(B) updates): void → method Builder.update(Function(B)? updates): void - changed:
method BuiltValueToStringHelper.add(String field, Object value): void → method BuiltValueToStringHelper.add(String field, Object? value): void - changed:
method FlatBuiltValueToStringHelper.add(String field, Object value): void → method FlatBuiltValueToStringHelper.add(String field, Object? value): void - changed:
method IndentingBuiltValueToStringHelper.add(String field, Object value): void → method IndentingBuiltValueToStringHelper.add(String field, Object? value): void - added:
class BuiltValueHook - added:
ctor BuiltValueHook( {this.initializeBuilder = …, this.finalizeBuilder = …}) - added:
field BuiltValueField.autoCreateNestedBuilder: final bool? - added:
field BuiltValueField.nestedBuilder: final bool? - added:
field BuiltValueHook.finalizeBuilder: final bool - added:
field BuiltValueHook.initializeBuilder: final bool - added:
static method BuiltValueNullFieldError.checkNotNull<T>(T? value, String type, String field): T
- changed:
method Iso8601DateTimeSerializer.deserialize(Serializers serializers, Object serialized, {FullType specifiedType = …}): DateTime → method Iso8601DateTimeSerializer.deserialize(Serializers serializers, Object? serialized, {FullType specifiedType = …}): DateTime
- changed:
method Iso8601DurationSerializer.deserialize(Serializers serializers, Object serialized, {FullType specifiedType = …}): Duration → method Iso8601DurationSerializer.deserialize(Serializers serializers, Object? serialized, {FullType specifiedType = …}): Duration
- changed:
ctor JsonObject(Object value) → ctor JsonObject(Object? value) - changed:
ctor ListJsonObject(List<Object> value) → ctor ListJsonObject(List<Object?> value) - changed:
ctor MapJsonObject(Map<String, Object> value) → ctor MapJsonObject(Map<String, Object?> value) - changed:
field ListJsonObject.value: final List<Object> → field ListJsonObject.value: final List<Object?> - changed:
field MapJsonObject.value: final Map<String, Object> → field MapJsonObject.value: final Map<String, Object?> - changed:
get ListJsonObject.asList: List<Object> → get ListJsonObject.asList: List<Object?> - changed:
get MapJsonObject.asMap: Map<String, Object> → get MapJsonObject.asMap: Map<String, Object?> - changed:
method BoolJsonObject.operator ==(dynamic other): bool → method BoolJsonObject.operator ==(Object other): bool - changed:
method ListJsonObject.operator ==(dynamic other): bool → method ListJsonObject.operator ==(Object other): bool - changed:
method MapJsonObject.operator ==(dynamic other): bool → method MapJsonObject.operator ==(Object other): bool - changed:
method NumJsonObject.operator ==(dynamic other): bool → method NumJsonObject.operator ==(Object other): bool - changed:
method StringJsonObject.operator ==(dynamic other): bool → method StringJsonObject.operator ==(Object other): bool
- changed:
ctor DeserializationError(Object json, FullType type, Error error) → ctor DeserializationError(Object? json, FullType type, Error error) - changed:
field DeserializationError.json: final String → field DeserializationError.json: final String? - changed:
field FullType.root: final Type → field FullType.root: final Type? - changed:
method FullType.operator ==(dynamic other): bool → method FullType.operator ==(Object other): bool - changed:
method SerializerPlugin.afterDeserialize(Object object, FullType specifiedType): Object → method SerializerPlugin.afterDeserialize(Object? object, FullType specifiedType): Object? - changed:
method SerializerPlugin.afterSerialize(Object object, FullType specifiedType): Object → method SerializerPlugin.afterSerialize(Object? object, FullType specifiedType): Object? - changed:
method SerializerPlugin.beforeDeserialize(Object object, FullType specifiedType): Object → method SerializerPlugin.beforeDeserialize(Object? object, FullType specifiedType): Object? - changed:
method SerializerPlugin.beforeSerialize(Object object, FullType specifiedType): Object → method SerializerPlugin.beforeSerialize(Object? object, FullType specifiedType): Object? - changed:
method Serializers.deserialize(Object serialized, {FullType specifiedType = …}): Object → method Serializers.deserialize(Object? serialized, {FullType specifiedType = …}): Object? - changed:
method Serializers.deserializeWith<T>(Serializer<T> serializer, Object serialized): T → method Serializers.deserializeWith<T>(Serializer<T> serializer, Object? serialized): T? - changed:
method Serializers.serialize(Object object, {FullType specifiedType = …}): Object → method Serializers.serialize(Object? object, {FullType specifiedType = …}): Object? - changed:
method Serializers.serializeWith<T>(Serializer<T> serializer, T object): Object → method Serializers.serializeWith<T>(Serializer<T> serializer, T? object): Object? - changed:
method Serializers.serializerForType(Type type): Serializer → method Serializers.serializerForType(Type type): Serializer? - changed:
method Serializers.serializerForWireName(String wireName): Serializer → method Serializers.serializerForWireName(String wireName): Serializer? - changed:
method StructuredSerializer.deserialize(Serializers serializers, Iterable serialized, {FullType specifiedType = …}): T → method StructuredSerializer.deserialize(Serializers serializers, Iterable<Object?> serialized, {FullType specifiedType = …}): T - changed:
method StructuredSerializer.serialize(Serializers serializers, T object, {FullType specifiedType = …}): Iterable → method StructuredSerializer.serialize(Serializers serializers, T object, {FullType specifiedType = …}): Iterable<Object?> - added:
ctor FullType.nullable(this.root, [this.parameters = …]) - added:
field FullType.nullable: final bool - added:
get Serializers.serializerPlugins: Iterable<SerializerPlugin> - added:
method FullType.withNullability(bool nullability): FullType - added:
method Serializers.fromJson<T>(Serializer<T> serializer, String serialized): T? - added:
method Serializers.toJson<T>(Serializer<T> serializer, T? object): String
- changed:
ctor StandardJsonPlugin({this.discriminator = …, this.valueKey = …}) → ctor StandardJsonPlugin({ this.discriminator = …, this.valueKey = …, Iterable<Type>? typesToLeaveAsList, }) - changed:
method StandardJsonPlugin.afterDeserialize(Object object, FullType specifiedType): Object → method StandardJsonPlugin.afterDeserialize(Object? object, FullType specifiedType): Object? - changed:
method StandardJsonPlugin.afterSerialize(Object object, FullType specifiedType): Object → method StandardJsonPlugin.afterSerialize(Object? object, FullType specifiedType): Object? - changed:
method StandardJsonPlugin.beforeDeserialize(Object object, FullType specifiedType): Object → method StandardJsonPlugin.beforeDeserialize(Object? object, FullType specifiedType): Object? - changed:
method StandardJsonPlugin.beforeSerialize(Object object, FullType specifiedType): Object → method StandardJsonPlugin.beforeSerialize(Object? object, FullType specifiedType): Object? - added:
field StandardJsonPlugin.typesToLeaveAsList: final BuiltSet<Type>