diff --git a/llvm/utils/release/bump-version.py b/llvm/utils/release/bump-version.py index abff67ae926ac5..b1799cba9363e5 100755 --- a/llvm/utils/release/bump-version.py +++ b/llvm/utils/release/bump-version.py @@ -12,6 +12,9 @@ class Processor: + def __init__(self, args): + self.args = args + def process_line(self, line: str) -> str: raise NotImplementedError() @@ -23,6 +26,13 @@ def process_file(self, fpath: Path, version: packaging.version.Version) -> None: version.micro, version.pre, ) + + if self.args.rc: + self.suffix = f"-rc{self.args.rc}" + + if self.args.git: + self.suffix = "git" + data = fpath.read_text() new_data = [] @@ -64,7 +74,7 @@ def process_line(self, line: str) -> str: if self.suffix: nline = re.sub( r"set\(LLVM_VERSION_SUFFIX(.*)\)", - f"set(LLVM_VERSION_SUFFIX -{self.suffix[0]}{self.suffix[1]})", + f"set(LLVM_VERSION_SUFFIX {self.suffix})", line, ) else: @@ -144,6 +154,7 @@ def process_line(self, line: str) -> str: ) parser.add_argument("version", help="Version to bump to, e.g. 15.0.1", default=None) parser.add_argument("--rc", default=None, type=int, help="RC version") + parser.add_argument("--git", action="store_true", help="Git version") parser.add_argument( "-s", "--source-root", @@ -153,9 +164,10 @@ def process_line(self, line: str) -> str: args = parser.parse_args() + if args.rc and args.git: + raise RuntimeError("Can't specify --git and --rc at the same time!") + verstr = args.version - if args.rc: - verstr += f"-rc{args.rc}" # parse the version string with distutils. # note that -rc will end up as version.pre here @@ -170,20 +182,20 @@ def process_line(self, line: str) -> str: files_to_update = ( # Main CMakeLists. - (source_root / "llvm" / "CMakeLists.txt", CMakeProcessor()), + (source_root / "cmake" / "Modules" / "LLVMVersion.cmake", CMakeProcessor(args)), # Lit configuration ( "llvm/utils/lit/lit/__init__.py", - LitProcessor(), + LitProcessor(args), ), # GN build system ( "llvm/utils/gn/secondary/llvm/version.gni", - GNIProcessor(), + GNIProcessor(args), ), ( "libcxx/include/__config", - LibCXXProcessor(), + LibCXXProcessor(args), ), )