Merge pull request #18568 from case540/enable_git_tag_override
Add ability to override git tag in __git_version__ string.
This commit is contained in:
parent
3970b47da5
commit
7810e47e7d
@ -1704,7 +1704,7 @@ def tf_version_info_genrule():
|
||||
],
|
||||
outs=["util/version_info.cc"],
|
||||
cmd=
|
||||
"$(location //tensorflow/tools/git:gen_git_source.py) --generate $(SRCS) \"$@\"",
|
||||
"$(location //tensorflow/tools/git:gen_git_source.py) --generate $(SRCS) \"$@\" --git_tag_override=$${GIT_TAG_OVERRIDE:-}",
|
||||
local=1,
|
||||
tools=[clean_dep("//tensorflow/tools/git:gen_git_source.py")],)
|
||||
|
||||
|
||||
@ -139,7 +139,7 @@ def configure(src_base_path, gen_path, debug=False):
|
||||
print("gen_git_source.py: spec is %r" % spec)
|
||||
|
||||
|
||||
def get_git_version(git_base_path):
|
||||
def get_git_version(git_base_path, git_tag_override):
|
||||
"""Get the git version from the repository.
|
||||
|
||||
This function runs `git describe ...` in the path given as `git_base_path`.
|
||||
@ -152,6 +152,9 @@ def get_git_version(git_base_path):
|
||||
|
||||
Args:
|
||||
git_base_path: where the .git directory is located
|
||||
git_tag_override: Override the value for the git tag. This is useful for
|
||||
releases where we want to build the release before the git tag is
|
||||
created.
|
||||
Returns:
|
||||
A bytestring representing the git version
|
||||
"""
|
||||
@ -161,6 +164,14 @@ def get_git_version(git_base_path):
|
||||
"git", str("--git-dir=%s/.git" % git_base_path),
|
||||
str("--work-tree=" + git_base_path), "describe", "--long", "--tags"
|
||||
]).strip())
|
||||
if git_tag_override:
|
||||
split_val = val.split("-")
|
||||
if len(split_val) != 3:
|
||||
raise Exception(
|
||||
("Expected git version in format 'TAG-COMMITS AFTER TAG-HASH' "
|
||||
"but got '%s'") % val)
|
||||
split_val[0] = git_tag_override
|
||||
val = bytes("-".join(split_val))
|
||||
return val if val else unknown_label
|
||||
except subprocess.CalledProcessError:
|
||||
return unknown_label
|
||||
@ -197,7 +208,7 @@ const int tf_monolithic_build() {
|
||||
open(filename, "w").write(contents)
|
||||
|
||||
|
||||
def generate(arglist):
|
||||
def generate(arglist, git_tag_override=None):
|
||||
"""Generate version_info.cc as given `destination_file`.
|
||||
|
||||
Args:
|
||||
@ -217,6 +228,10 @@ def generate(arglist):
|
||||
`ref_symlink` is unused in this script but passed, because the build
|
||||
system uses that file to detect when commits happen.
|
||||
|
||||
git_tag_override: Override the value for the git tag. This is useful for
|
||||
releases where we want to build the release before the git tag is
|
||||
created.
|
||||
|
||||
Raises:
|
||||
RuntimeError: If ./configure needs to be run, RuntimeError will be raised.
|
||||
"""
|
||||
@ -234,11 +249,11 @@ def generate(arglist):
|
||||
raise RuntimeError(
|
||||
"Run ./configure again, branch was '%s' but is now '%s'" %
|
||||
(old_branch, new_branch))
|
||||
git_version = get_git_version(data["path"])
|
||||
git_version = get_git_version(data["path"], git_tag_override)
|
||||
write_version_info(dest_file, git_version)
|
||||
|
||||
|
||||
def raw_generate(output_file):
|
||||
def raw_generate(output_file, git_tag_override=None):
|
||||
"""Simple generator used for cmake/make build systems.
|
||||
|
||||
This does not create any symlinks. It requires the build system
|
||||
@ -246,9 +261,12 @@ def raw_generate(output_file):
|
||||
|
||||
Args:
|
||||
output_file: Output filename for the version info cc
|
||||
git_tag_override: Override the value for the git tag. This is useful for
|
||||
releases where we want to build the release before the git tag is
|
||||
created.
|
||||
"""
|
||||
|
||||
git_version = get_git_version(".")
|
||||
git_version = get_git_version(".", git_tag_override)
|
||||
write_version_info(output_file, git_version)
|
||||
|
||||
|
||||
@ -270,6 +288,11 @@ parser.add_argument(
|
||||
"--gen_root_path", type=str,
|
||||
help="Root path to place generated git files (created by --configure).")
|
||||
|
||||
parser.add_argument(
|
||||
"--git_tag_override", type=str,
|
||||
help="Override git tag value in the __git_version__ string. Useful when "
|
||||
"creating release builds before the release tag is created.")
|
||||
|
||||
parser.add_argument(
|
||||
"--generate",
|
||||
type=str,
|
||||
@ -288,9 +311,9 @@ if args.configure is not None:
|
||||
raise RuntimeError("Must pass --gen_root_path arg when running --configure")
|
||||
configure(args.configure, args.gen_root_path, debug=args.debug)
|
||||
elif args.generate is not None:
|
||||
generate(args.generate)
|
||||
generate(args.generate, args.git_tag_override)
|
||||
elif args.raw_generate is not None:
|
||||
raw_generate(args.raw_generate)
|
||||
raw_generate(args.raw_generate, args.git_tag_override)
|
||||
else:
|
||||
raise RuntimeError("--configure or --generate or --raw_generate "
|
||||
"must be used")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user