diff --git a/src/lib/version/px_update_git_header.py b/src/lib/version/px_update_git_header.py index 423fa8692c..8baea33419 100755 --- a/src/lib/version/px_update_git_header.py +++ b/src/lib/version/px_update_git_header.py @@ -47,7 +47,8 @@ if validate: # remove optional --g at the end (in case we are not on a tagged commit) git_tag_test = re.sub(r'-[0-9]+-g[0-9a-fA-F]+$', '', git_tag_test) # now check the version format - m = re.match(r'v([0-9]+)\.([0-9]+)\.[0-9]+([-]?rc[0-9]+)?(-beta[0-9]+)?(-[0-9]+\.[0-9]+\.[0-9]+)?$', git_tag_test) + m = re.match(r'v([0-9]+)\.([0-9]+)\.[0-9]+(((-dev)|(-alpha[0-9]+)|(-beta[0-9]+)|(-rc[0-9]+))|'\ + r'(-[0-9]+\.[0-9]+\.[0-9]+((-dev)|(-alpha[0-9]+)|(-beta[0-9]+)|([-]?rc[0-9]+))?))?$', git_tag_test) if m: # format matches, check the major and minor numbers major = int(m.group(1)) @@ -63,13 +64,13 @@ if validate: print("Error: the git tag '{:}' does not match the expected format.".format(git_tag_test)) print("") print("The expected format is 'v[-]'") - print(" : v..[-rc|-beta]") - print(" : ..") + print(" : v..[-rc|-beta|-alpha|-dev]") + print(" : ..[-rc|-beta|-alpha|-dev]") print("Examples:") - print(" v1.9.0rc3 (deprecated)") print(" v1.9.0-rc3 (preferred)") print(" v1.9.0-beta1") print(" v1.9.0-1.0.0") + print(" v1.9.0-1.0.0-alpha2") print("See also https://dev.px4.io/master/en/setup/building_px4.html#firmware_version") print("") sys.exit(1) diff --git a/src/systemcmds/tests/test_versioning.cpp b/src/systemcmds/tests/test_versioning.cpp index 63c0d66f88..bc6ed600bd 100644 --- a/src/systemcmds/tests/test_versioning.cpp +++ b/src/systemcmds/tests/test_versioning.cpp @@ -159,6 +159,9 @@ bool VersioningTest::run_tests() ut_assert_true(_test_tag_to_version_number("v1.8.2dev4-dirty", 0x01080200, 0x00000000)); ut_assert_true(_test_tag_to_version_number("v1.8.2dev4-67-g1d5e979-dirty", 0x01080200, 0x00000000)); + //TODO: fix me, this is unexpected behavior + ut_assert_true(_test_tag_to_version_number("v1.6.2-rc2-1.2.3-rc3", 0x01060200, 0x00000000)); + return (_tests_failed == 0); }