Shorten $type
tag in common scenario where all cases are in same namespace
#527
Labels
compat-breaker
This PR is good to merge, but breaks compatibility and needs to wait till we prepare a major release
Given
We currently serialize
Qux()
andBaz()
toWe should instead serialize them to
As long as all the
case
s of thesealed trait
are in the same namespace (foo
above), using the short name is safe.It also has several advantages: it is easier to read, results in more compact JSON, and is more stable in case the pacakge
foo
gets renamed tofoo2
.The serialization would still be broken if e.g.
Baz
got moved intopackage sub{ case class Baz() }
, but that is (a) already the case today and (b) this is sufficiently uncommon a refactor that it's probably not worth worrying aboutThis would be a breaking change in the serialization format and would need to wait for upickle 4.0.0
The text was updated successfully, but these errors were encountered: