Documentation (Anonymous) Versioning
Problem Statement
- The model covers years.
- Users might use a single model for years.
- They may leave a model untouched for months before returning to it.
- How cab we evolve the model safely?
Options
- always update to latest model on load v ongoing support of old models?
- hide updates from users v make explicit?
- single version for model v versions for different elements?
- aka model structure & data vs formula implementations
- store version inside v outside model?
Formula implementations
- special problems here
- changes may be subtle because of floating point arithmetic
- how accommodate third party implementations with potential forever support?
Mechanisms for Solution
- semantic versioning (obviously)
- store migration tools for each major version
- handle formulas that error - good practice anyway
- use algorithm for cost calculations