code: def sync_version(pub_ver, local_ver, dry_run):
      """Synchronize version."""
      # python uses the PEP-440: local version
      update(
          os.path.join(
              PROJ_ROOT, "python", "tvm", "_ffi", "libinfo.py"
          ),
          r"(?<=__version__ = \")[.0-9a-z\+]+",
          local_ver,
          dry_run,
      )
      # Use public version for other parts for now
      # Note that full git hash is already available in libtvm
      # C++ header
      update(
          os.path.join(
              PROJ_ROOT, "include", "tvm", "runtime", "c_runtime_api.h"
          ),
          r'(?<=TVM_VERSION ")[.0-9a-z\+]+',
          pub_ver,
          dry_run,
      )
      # conda
      update(
          os.path.join(PROJ_ROOT, "conda", "recipe", "meta.yaml"),
          r"(?<=version = ')[.0-9a-z\+]+",
          pub_ver,
          dry_run,
      )
      # web
      # change to pre-release convention by npm
      dev_pos = pub_ver.find(".dev")
      npm_ver = (
          pub_ver
          if dev_pos == -1
          else "%s.0-%s" % (pub_ver[:dev_pos], pub_ver[dev_pos + 1 :])
      )
      update(
          os.path.join(PROJ_ROOT, "web", "package.json"),
          r'(?<="version": ")[.0-9a-z\-\+]+',
          npm_ver,
          dry_run,
      )
  
file_path: tvm/version.py
imports: import os
  import re
  import argparse
  import logging
  import subprocess
label_desc: Use image node_id 4 for calling a global function with example usage: sync_version(pub_ver, local_ver, dry_run) without return types