# rbx_xml Changelog
## Unreleased
## 0.12.0-alpha.1 (2021-02-16)
This release is a major, breaking change that upgrades rbx_xml's underlying DOM implementation from rbx_dom_weak 1.0 to 2.0.
* Breaking: upgraded to rbx_dom_weak 2.0
* Added support for the `Ray` type, used in the `RayValue` instance.
* Added support for the `Faces` type, used in the `Handles` instance.
* Added support for the `Axes` type, used in the `ArcHandles` instance.
## 0.11.4 (2019-12-18)
* Updated `base64` dependency
## 0.11.3 (2019-12-11)
* Empty BinaryStrings will now serialize without an empty CDATA tag ([#76](https://github.com/rojo-rbx/rbx-dom/pull/76)).
* Fixed SharedString entries with CRLF line endings causing obscure errors ([#84](https://github.com/rojo-rbx/rbx-dom/pull/84))
## 0.11.2 (2019-08-08)
* Fixed encoding properties in a nondeterministic order. Properties should now be sorted. ([#66](https://github.com/rojo-rbx/rbx-dom/pull/66))
## 0.11.1 (2019-08-01)
* Fixed decoding `BinaryString` values with arbitrary whitespace in them, including CRLF line endings.
## 0.11.0 (2019-07-12)
* Added support for reading and writing `BrickColor` values.
## 0.10.0 (2019-06-10)
* Added support for INF and NAN values in compound types like Vector2 ([#62](https://github.com/rojo-rbx/rbx-dom/pull/62))
* Fixed edge cases around unrecognized Ref properties causing confusing errors.
* Added support for serializing and deserializing `SharedString` values. ([#63](https://github.com/rojo-rbx/rbx-dom/pull/63))
## 0.9.0 (2019-05-16)
* Added real configuration to serialization and deserialization routines
* Users can now ignore, read/write, or error when encountering unknown properties
* It's also possible to disable the reflection database entirely, akin to version 0.6.0
## 0.8.0 (2019-05-14)
* Fixed type conversion when serializing properties whose serialized type differs from its canonical type ([#56](https://github.com/rojo-rbx/rbx-dom/pull/56))
* Changed type conversion failures when serializing to elevate to serialization errors ([#58](https://github.com/rojo-rbx/rbx-dom/pull/58))
## 0.7.0 (2019-05-12)
* Breaking: changed API dramatically to make deserializing instances easier
* Renamed deserialization APIs to be named like `from_reader`
* Renamed serialization APIs to be named like `to_writer`
* Added options to APIs
* Made error types opaque
* Breaking: changed serialization to be reflection-driven, which improves content compatibility
* Fixed serializing empty `Content` properties ([#146](https://github.com/Roblox/rojo/issues/146))
## 0.6.0 (2019-03-27)
* Added support for new types:
* `Rect`, `NumberRange`, `NumberSequence`, and `ColorSequence` ([#23](https://github.com/rojo-rbx/rbx-dom/pull/23))
* `Int64` and `Float64` ([#15](https://github.com/rojo-rbx/rbx-dom/pull/15))
* `Ref` and `PhysicalProperties`, no longer stubs!
* Rewrote lots of internals, which should improve whitespace handling ([#17](https://github.com/rojo-rbx/rbx-dom/pull/17), [#19](https://github.com/rojo-rbx/rbx-dom/pull/19))
## 0.5.0 (2019-03-13)
* Changed referents to be emitted as consecutive integers, which makes generating XML models deterministic regardless of IDs
## 0.4.0 (2019-03-01)
* Updated to `rbx_dom_weak` 1.0
* Fixed `ProtectedString` support, which was missing from the main deserializer loop
* Added support for `Content`, `UDim` and `UDim2` values
* Fixed `Ref` properties pointing to invalid IDs by changing them to always deserialize to `None` for now
## 0.3.0 (2019-02-14)
* Updated `rbx_tree` dependency to `rbx_dom_weak` 0.3.0
* Added support for `ProtectedString`, deserializing as String
* Added support for `Ref` values ([#8](https://github.com/rojo-rbx/rbx-dom/pull/8))
## 0.2.0 (2019-01-25)
* Serialization and deserialization functions are now fully functional
* Added support for new property types:
* CFrame
* Color3
* Color3uint8
* Enum
* Float32
* Int32
* Vector2
* Vector2int16
* Vector3
* Vector3int16
* PhysicalProperties (Stub)
* Added support for correctly mapping some property names:
* FormFactor (serializes as `formFactorRaw`)
* Size (serializes as `size`)
* Shape (serializes as `shape`)
## 0.1.0
* Initial release
* Deserialization does not produce instances
* Supports serializing `String` and `Bool` properties