def METHOD_NAME() -> None:
    parser = argparse.ArgumentParser(description="Prepare next TileDB release")
    parser.add_argument("version", help="New release version")
    parser.add_argument(
        "--head",
        help="Git commit (or branch/tag) of the head for the new release (default: current branch)",
    )
    parser.add_argument(
        "--base",
        help="Git commit (or branch/tag) of the base for the new release (default: latest release)",
    )
    parser.add_argument(
        "--token",
        help="GitHub OAuth token for accessing the GitHub API (default: unauthenticated access)",
    )
    parser.add_argument(
        "--cache-history",
        default=False,
        type=bool,
        action=argparse.BooleanOptionalAction, # nb: requires Python 3.9+
        help="Cache the GitHub PR listing for script development iteration (default: False)",
    )
    args = parser.parse_args()
    version_re = r"^\d+\.\d+\.\d+$"
    if not re.match(version_re, args.version):
        sys.exit(f"Invalid version '{args.version}': must match '{version_re}'")
    if args.cache_history and os.path.isfile(history_cache_file):
      logging.warning("Using cached GitHub PR info with NO VALIDATION of branch/head/etc.")
      prs = pickle.load(open(history_cache_file, "rb"))
    else:
      prs = find_prs(Github(args.token), args.head, args.base)
      if args.cache_history:
        logging.info(f"Saving GitHub PR info to cache '{history_cache_file}")
        pickle.dump(prs, open(history_cache_file, "wb"))
    update_history(args.version, prs)
    update_version(args.version)