73 lines
2.8 KiB
Python
73 lines
2.8 KiB
Python
import os
|
|
import sys
|
|
|
|
from setuptools_scm import get_version
|
|
|
|
|
|
# example: 1.0b5.dev225
|
|
def main():
|
|
windows = len(sys.argv) > 1 and "win" in sys.argv[1] # Special case windows to 0.1.6225
|
|
|
|
scm_full_version = get_version(root="..", relative_to=__file__)
|
|
# scm_full_version = "1.0.5.dev22"
|
|
os.environ["SCM_VERSION"] = scm_full_version
|
|
|
|
left_full_version = scm_full_version.split("+")
|
|
version = left_full_version[0].split(".")
|
|
scm_major_version = version[0]
|
|
scm_minor_version = version[1]
|
|
|
|
if len(version) == 3: # If the length of the version array is more than 2
|
|
patch_release_number = version[2]
|
|
smc_patch_version = patch_release_number
|
|
dev_release_number = ""
|
|
elif len(version) == 4:
|
|
smc_patch_version = version[2]
|
|
dev_release_number = "." + version[3]
|
|
else:
|
|
smc_patch_version = ""
|
|
dev_release_number = ""
|
|
|
|
major_release_number = scm_major_version
|
|
minor_release_number = scm_minor_version
|
|
|
|
# If this is a beta dev release, get which beta it is
|
|
if "0b" in scm_minor_version:
|
|
orignial_minor_ver_list = scm_minor_version.split("0b")
|
|
major_release_number = str(1 - int(scm_major_version)) # decrement the major release for beta
|
|
minor_release_number = scm_major_version
|
|
patch_release_number = orignial_minor_ver_list[1]
|
|
if smc_patch_version and "dev" in smc_patch_version:
|
|
dev_release_number = "." + smc_patch_version
|
|
elif "0rc" in version[1]:
|
|
original_minor_ver_list = scm_minor_version.split("0rc")
|
|
major_release_number = str(1 - int(scm_major_version)) # decrement the major release for release candidate
|
|
minor_release_number = str(int(scm_major_version) + 1) # RC is 0.2.1 for RC 1
|
|
patch_release_number = original_minor_ver_list[1]
|
|
if smc_patch_version and "dev" in smc_patch_version:
|
|
dev_release_number = "." + smc_patch_version
|
|
elif len(version) == 2:
|
|
patch_release_number = "0"
|
|
elif len(version) == 4: # for 1.0.5.dev2
|
|
patch_release_number = smc_patch_version
|
|
else:
|
|
major_release_number = scm_major_version
|
|
minor_release_number = scm_minor_version
|
|
patch_release_number = smc_patch_version
|
|
dev_release_number = ""
|
|
|
|
install_release_number = major_release_number + "." + minor_release_number
|
|
if len(patch_release_number) > 0:
|
|
install_release_number += "." + patch_release_number
|
|
if len(dev_release_number) > 0:
|
|
if windows:
|
|
dev_release_number_digits = "".join([i for i in dev_release_number if i.isdigit()])
|
|
dev_release_number = dev_release_number_digits
|
|
install_release_number += dev_release_number
|
|
|
|
print(str(install_release_number))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|