compareVersions function
Compares two dotted versions, ignoring anything after a space or -.
Negative when a is older.
Implementation
int compareVersions(String a, String b) {
List<int> parts(String v) => v
.split(RegExp(r'[\s-]'))
.first
.split('.')
.map((String p) => int.tryParse(p) ?? 0)
.toList();
final x = parts(a), y = parts(b);
for (var i = 0; i < 3; i++) {
final d = (i < x.length ? x[i] : 0) - (i < y.length ? y[i] : 0);
if (d != 0) return d;
}
return 0;
}