onnxruntime-tvm/python/update_version.py

67 строки
2.1 KiB
Python

"""
This is the global script that set the version information of TVM.
This script runs and update all the locations that related to versions
List of affected files:
- tvm-root/python/tvm/_ffi/libinfo.py
- tvm-root/include/tvm/runtime/c_runtime_api.h
- tvm-root/web/tvm_runtime.js
- tvm-root/conda/tvm/meta.yaml
- tvm-root/conda/topi/meta.yaml
- tvm-root/conda/nnvm/meta.yaml
- tvm-root/conda/tvm-libs/meta.yaml
"""
import os
import re
# current version
# We use the version of the incoming release for code
# that is under development
__version__ = "0.5.dev"
# Implementations
def update(file_name, pattern, repl):
update = []
hit_counter = 0
need_update = False
for l in open(file_name):
result = re.findall(pattern, l)
if result:
assert len(result) == 1
hit_counter += 1
if result[0] != repl:
l = re.sub(pattern, repl, l)
need_update = True
print("%s: %s->%s" % (file_name, result[0], repl))
else:
print("%s: version is already %s" % (file_name, repl))
update.append(l)
if hit_counter != 1:
raise RuntimeError("Cannot find version in %s" % file_name)
if need_update:
with open(file_name, "w") as output_file:
for l in update:
output_file.write(l)
def main():
curr_dir = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
proj_root = os.path.abspath(os.path.join(curr_dir, ".."))
# python path
update(os.path.join(proj_root, "python", "tvm", "_ffi", "libinfo.py"),
r"(?<=__version__ = \")[.0-9a-z]+", __version__)
# C++ header
update(os.path.join(proj_root, "include", "tvm", "runtime", "c_runtime_api.h"),
"(?<=TVM_VERSION \")[.0-9a-z]+", __version__)
# conda
for path in ["tvm", "topi", "nnvm", "tvm-libs"]:
update(os.path.join(proj_root, "conda", path, "meta.yaml"),
"(?<=version = \")[.0-9a-z]+", __version__)
# web
update(os.path.join(proj_root, "web", "tvm_runtime.js"),
"(?<=@version )[.0-9a-z]+", __version__)
if __name__ == "__main__":
main()