upgrade method
Upgrade version to the next
Implementation
String upgrade(String release, {int step = 1}) {
List<String> parts = this.split('+');
String version = parts.first;
List<String> nums = version.split('.');
int major = int.parse(nums[0]);
int minor = int.parse(nums[1]);
int bugfix = int.parse(nums[2]);
late int build;
if (parts.length > 1) {
build = int.parse(parts.last);
build++;
} else {
build = 1;
}
late String newVersion;
switch (release) {
case 'major':
newVersion = "${major += step}.0.0";
break;
case 'minor':
newVersion = "$major.${minor += step}.0";
break;
default:
newVersion = "$major.$minor.${bugfix += step}";
}
return '$newVersion+$build';
}