Backward Compatibility
October 11, 2024 · View on GitHub
Neuro is designed so that you can add or remove fields without breaking backwards compatibility.
Basically, follow protobuf's (Protocol Buffers) rules
✅ Dos
- You can remove classes and fields.
- You can rename classes and fields. ⚠️ However if it is stored in config / json, the data will be lost as it is stored by name.
⚠️ Careful
- If you change the type of a field, also change the Neuro tag.
- If you removed a field, don't reuse the Neuro tag. hint: use
[ReservedNeuroTag(##)]so you don't accidentally use that tag later. - Also avoid reusing polymorpic type tags once its deleted.
- You can not change the hierarchical structure of polymorphic types - most likely will not work