| """ |
| 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" |
| |
| # 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(): |
| proj_root = os.path.dirname(os.path.abspath(os.path.expanduser(__file__))) |
| # 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() |