This Engineering Notebook post explains why #3474 (reforming uAs) must wait until Leo 6.7.5.
The present code that handles uAs is too complex to understand or change. New unit tests won't change this situation.
Instead, #3472 will enforce a new uA policy as part of the proposed flat-json file format:
1. All uAs must have valid json values.
2. Plugins (not Leo's core) must encode and decode uAs.
Yes, this policy may affect existing plugins. I'll update Leo's existing plugins as necessary.
This new policy will collapse the complexity of uA-related code: uA setters can immediately warn if values aren't valid json. In contrast, Leo's existing code checks uAs when writing .leo files.
Summary
A new uA policy will be part of Leo's proposed flat-json file format. This policy may affect some plugins. This new policy will collapse the complexity of uA-related code.
Your comments, please.
Edward
This Engineering Notebook post explains why #3474 (reforming uAs) must wait until Leo 6.7.5.
The present code that handles uAs is too complex to understand or change. New unit tests won't change this situation.