We're not using the version here, as versions can be difficult to parse and compare. Instead we rely on an "iterator" key (working title) that gets incremented with each feature update. Except for initially adding the iterator to a feature's info file there are no further manual changes involved.
- When a feature gets updated (todo: find hook), check if system info for the feature contains an "iterator" key.
- If "iterator" key exists, increment by one, and add to the info output.
- On drush command invocation ("features-revert-updated" or "fru"), find all features modules (todo: find hook) and check if system info for each feature contains an "iterator" key.
- If iterator key exists, retrieve stored iterator for feature. If stored iterator not found or less then present interator, add feature to list of features to be reverted.
- Revert all features that have been added to the revert list during 2.
- Update (or add) feature names and iterator values in local iterator store (e.g. variable, custom table).