wikimedia/mediawiki-extensions-Wikibase

View on GitHub
lib/packages/wikibase/data-model-serialization/RELEASE-NOTES.md

Summary

Maintainability
Test Coverage
# Wikibase DataModel Serialization release notes

## 2.10.0 (development)

* Require Wikibase DataModel 8.x or 9.x
* Raised minimum PHP version to 7.0 (^7.0)
* Moved (De)SerializerFactories into (De)Serializer Namespaces

## 2.9.1 (2018-12-14)

* Apply ID prefix mapping in `SnakDeserializer`, like `EntityIdValueParser` does.

## 2.9.0 (2018-11-06)

* Added compatibility with Wikibase DataModel 9.x

## 2.8.0 (2018-08-07)

* Added compatibility with Wikibase DataModel 8.x

## 2.7.0 (2018-03-29)

* Fixed `AliasGroupListDeserializer` and `TermListDeserializer` misbehaving when confronted with
  language codes exclusively made of digits.
* Fixed `SnakDeserializer` possibly accessing non-existing array elements.
* Improved documentation of `SerializerFactory::newEntitySerializer` as well as
  `DeserializerFactory::newEntityDeserializer`.
* Added compatibility with Serialization 4.x
* Improved forward-compatibility with PHPUnit 6
* Note: The `SnakDeserializer` constructor changed, but since it's declared package private, this
  shouldn't affect anyone.

## 2.6.0 (2017-09-18)

* Added compatibility with DataValues Number 0.9

## 2.5.0 (2017-08-30)

* Removed MediaWiki integration files
* Added compatibility with DataValues Geo 2.x
* Deprecated `SerializerFactory` options
  `OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH`,
  `OPTION_SERIALIZE_QUALIFIER_SNAKS_WITHOUT_HASH` and
  `OPTION_SERIALIZE_REFERENCE_SNAKS_WITHOUT_HASH`.
* Added `SerializerFactory::OPTION_SERIALIZE_SNAKS_WITHOUT_HASH`.

## 2.4.0 (2017-03-16)

* Added compatibility with Wikibase DataModel 7.x

## 2.3.0 (2017-02-15)

* Improved performance of `StatementDeserializer` as well as other deserializers
* Improved type safety throughout the code
* Dropped support for PHP 5.3 and PHP 5.4

## 2.2.0 (2016-03-11)

* Added compatibility with Wikibase DataModel 6.x

## 2.1.0 (2016-02-18)

* Added `newItemSerializer` and `newPropertySerializer` to `SerializerFactory`
* Added `newItemDeserializer` and `newPropertyDeserializer` to `DeserializerFactory`
* Added compatibility with Wikibase DataModel 5.x
* Added compatibility with DataValues Common 0.3

## 2.0.0 (2015-08-30)

* Dropped dependency on Wikibase DataModel Services
* Removed `newClaimSerializer`, `newClaimsSerializer` and `newSnaksSerializer` from `SerializerFactory`
* Removed `newClaimDeserializer`, `newClaimsDeserializer` and `newSnaksDeserializer` from `DeserializerFactory`

## 1.9.1 (2015-08-27)

* Revert of breaking changes, will be added in 2.0 again

## 1.9.0 (2015-08-26)

* Dropped dependency on Wikibase DataModel Services

## 1.8.0 (2015-07-28)

* Added compatibility with Wikibase DataModel 4.x
* Removed compatibility with Wikibase DataModel 3.x

## 1.7.0 (2015-07-23)

* Added `SerializerFactory` option `OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH`
* Added `SerializerFactory` option `OPTION_SERIALIZE_QUALIFIER_SNAKS_WITHOUT_HASH`
* Added `SerializerFactory` option `OPTION_SERIALIZE_REFERENCE_SNAKS_WITHOUT_HASH`
* Added `$serializeSnaksWithHash` parameter to `newSnakListSerializer`, the default is b/c
* Added `$serializeWithHash` parameter to `newSnakSerializer`, the default is b/c
* Added `$serializeWithHash` parameter to `newTypedSnakSerializer`, the default is b/c
* Added support for deserializing ungrouped SnakLists and StatementLists

## 1.6.0 (2015-07-20)

* Added `newAliasGroupSerializer` to `SerializerFactory`

## 1.5.0 (2015-07-01)

* Added `newTermSerializer` to `SerializerFactory`
* Added `newTermListSerializer` to `SerializerFactory`
* Added `newAliasGroupListSerializer` to `SerializerFactory`
* Added `newTermDeserializer` to `DeserializerFactory`
* Added `newTermListDeserializer` to `DeserializerFactory`
* Added `newAliasGroupListDeserializer` to `DeserializerFactory`
* Deprecated `SerializerFactory::newClaimsSerializer` in favour of `SerializerFactory::newStatementListSerializer`
* Deprecated `DeserializerFactory::newClaimsDeserializer` in favour of `DeserializerFactory::newStatementListDeserializer`

## 1.4.0 (2015-06-08)

* Added compatibility with Wikibase DataModel 3.x
* Removed compatibility with Wikibase DataModel 2.x
* Renamed `SerializerFactory::newClaimSerializer` to `SerializerFactory::newStatementSerializer`, leaving a b/c alias
* Renamed `SerializerFactory::newSnaksSerializer` to `SerializerFactory::newSnakListSerializer`, leaving a b/c alias
* Renamed `DeserializerFactory::newClaimDeserializer` to `DeserializerFactory::newStatementDeserializer`, leaving a b/c alias
* Renamed `DeserializerFactory::newSnaksDeserializer` to `DeserializerFactory::newSnakListDeserializer`, leaving a b/c alias
* Added `SerializerFactory::newStatementListSerializer`
* Added `DeserializerFactory::newStatementListDeserializer`
* Added support for showing the component version when loaded via MediaWiki

## 1.3.0 (2015-01-28)

* `FingerprintSerializer` now supports serializing `AliasGroupFallback`s and `TermFallback`s
* `EntityDeserializer` now fails if the given serialization contains a term or alias that was either
  the result of a fallback or transliteration
* Added `newTypedSnakSerializer` to `SerializerFactory`

## 1.2.0 (2014-10-15)

* Compatibility with DataModel 2.x added
* Support statements on properties
* Add option to serialize maps as objects instead of arrays so as to be able to
  differentiate empty maps from empty lists

## 1.1.1 (2014-09-09)

* Use UnDeserializable error from serialization in SnakDeserializer

## 1.1.0 (2014-09-02)

* Compatibility with DataModel 1.x was added
* DataModel 1.x is now required

## 1.0.3 (2014-07-28)

* Hashes are now ignored by the SnakDeserializer
* Compatibility with Wikibase DataModel 1.x was improved

## 1.0.2 (2014-07-21)

* Fixed issue where invalid snaks-order elements in reference serialization caused an error rather
 than a deserialization exception
* Hashes are now ignored by the ReferenceDeserializer

## 1.0.1 (2014-06-16)

* The Deserializer for snaks now constructs UnDeserializableValue objects for invalid data values

## 1.0 (2014-05-27)

* Usage of DataModel 0.7.x rather than 0.6.x.
* Usage of Serialization ~3.1 rather than ~2.1.
* Snaks now always have a 'hash' element in their serialization
* Added `snaks-order` support to `ReferenceSerializer` and `ReferenceDeserializer`
* Added `qualifiers-order` support to `ClaimDeserializer`
* Added `TypedSnakSerializer`
* Added hash validation for references and snaks
* Added additional tests to ensure old serializations can still be deserialized

## 0.1 (2014-02-22)

Initial release with these features:

* Serializers for the main Wikibase DataModel (0.6) objects
* Deserializers for the main Wikibase DataModel (0.6) objects