Closed kennethloeffler closed 1 year ago
As annoying as it is, I think the correct path is probably to run migrations during serialization as well. I don't love doing that because like you said, it's work we're going to immediately make obsolete, but the other option is pushing a release that we know will break things, which I feel is worse.
Cool, I'll get started on it right now and try to get it finished tonight. Pray for me, our serializers are not really set up for this 😄
332 is breaking for users who use
IgnoreGuiInset
orFont
properties in Rojo project.json files or Lune scripts. Current releases serialize these properties, but upcoming releases will not.BrickColor
/brickColor
are not affected because in current releases, they are aliases and therefore do not serialize.It'd be really easy to add warnings to these places to at least notify users when they try to serialize migrated properties: https://github.com/rojo-rbx/rbx-dom/blob/7b3e6fb84ceb3b02c5042d17a373f7cd42bec83b/rbx_binary/src/serializer/state.rs#L304-L318 https://github.com/rojo-rbx/rbx-dom/blob/7b3e6fb84ceb3b02c5042d17a373f7cd42bec83b/rbx_xml/src/core.rs#L53-L62
Alternatively, we could maintain compatibility by performing migrations during serialization, but that is a lot more effort, and it's not clear whether it's worth it since we don't know how many people will break, and in the future, proxy properties will render it moot.