This initial implementation lays most of the groundwork necessary for signaling information and actions to the user during upgrade and reversion. However the only public effect this code has on the current upgrade tool is an informational dialog dialog if an upgrade is attempted from a build prior to one of the issues (2049, 1582, 890).
With this commit:
- start-ds -F now advertises 'Upgrade Event IDs' which are the IDs of issues defined in VersionCompatibilityIssues that theoretically would have been encountered up to the current build.
- As mentioned above VersionCompatibilityIssue defines an issue and serves as the repository for issues. I tried to provide as many comments as possible to make it apparent how to define issues in the future.
- The upgrader's VersionOracle is responsible for correlating the version issues with actions to be taken by the upgrader or yet-to-be implemented reversion tools and presenting them to the user during the operation.