baseplug icon indicating copy to clipboard operation
baseplug copied to clipboard

versioned plugin state

Open wrl opened this issue 3 years ago • 0 comments

currently, baseplug leans on serde Serialize + Deserialize to persist the model state as JSON. however, this means that if the model for a plugin changes, there are potential issues deserialising stored state. this translates into users' DAW sessions loading incorrectly.

in my internal framework (which is the primary inspiration for baseplug), I remedy this by serialising a "version" along with the model, which enables loading of old formats and "migrating" those to the current format. this means, of course, that plugin authors have to keep around old versions of their model, but that can be done in a different file, and then we can lean on From<OldModelVersion> for CurrentModelVersion for the "migration".

this is a blocking issue for 0.1.

wrl avatar Sep 09 '20 14:09 wrl