forked from nod-ai/shark-ai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwrite_requirements.py
executable file
·96 lines (72 loc) · 2.93 KB
/
write_requirements.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/env python3
# Copyright 2024 Advanced Micro Devices, Inc.
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# This script writes the `packaging/shark-ai/requirements.txt` file and pins
# the versions of the dependencies accordingly. For nighly releases,
# * sharktank
# * shortfin
# get pinned to the corresponding nighly version. For stable releases,
# * iree-base-compiler
# * iree-base-runtime
# * iree-turbine
# * sharktank
# * shortfin
# get pinned to the corresponding `X.Y.*` version.
import argparse
from pathlib import Path
import json
from packaging.version import Version
parser = argparse.ArgumentParser()
parser.add_argument("--version-suffix", action="store", type=str)
args = parser.parse_args()
THIS_DIR = Path(__file__).parent.resolve()
REPO_ROOT = THIS_DIR.parent.parent
VERSION_FILE_SHARKTANK = REPO_ROOT / "sharktank/version_local.json"
VERSION_FILE_SHORTFIN = REPO_ROOT / "shortfin/version_local.json"
VERSION_FILE_LOCAL = REPO_ROOT / "shark-ai/version_local.json"
REQUIREMENTS_TXT = REPO_ROOT / "shark-ai/requirements.txt"
def load_version_info(version_file):
with open(version_file, "rt") as f:
return json.load(f)
def write_requirements(requirements):
with open(REQUIREMENTS_TXT, "w") as f:
f.write("%s\n" % requirements)
metapackage_version = load_version_info(VERSION_FILE_LOCAL)
PACKAGE_VERSION = metapackage_version.get("package-version")
sharktank_version = load_version_info(VERSION_FILE_SHARKTANK)
SHARKTANK_PACKAGE_VERSION = sharktank_version.get("package-version")
shortfin_version = load_version_info(VERSION_FILE_SHORTFIN)
SHORTFIN_PACKAGE_VERSION = shortfin_version.get("package-version")
stable_packages_list = ["iree-base-compiler", "iree-base-runtime", "iree-turbine"]
if Version(PACKAGE_VERSION).is_prerelease:
# TODO: Include sharktank as a dependencies of future releases
# requirements = (
# "sharktank=="
# + Version(SHARKTANK_PACKAGE_VERSION).base_version
# + "rc"
# + args.version_suffix
# + "\n"
# )
requirements += (
"shortfin=="
+ Version(SHORTFIN_PACKAGE_VERSION).base_version
+ "rc"
+ args.version_suffix
)
write_requirements(requirements)
else:
MAJOR_VERSION = Version(PACKAGE_VERSION).major
MINOR_VERSION = Version(PACKAGE_VERSION).minor
STABLE_VERSION_TO_PIN = str(MAJOR_VERSION) + "." + str(MINOR_VERSION) + ".*"
requirements = ""
for package in stable_packages_list:
requirements += package + "==" + STABLE_VERSION_TO_PIN + "\n"
# TODO: Include sharktank as a dependencies of future releases
# requirements += (
# "sharktank==" + Version(SHARKTANK_PACKAGE_VERSION).base_version + "\n"
# )
requirements += "shortfin==" + Version(SHORTFIN_PACKAGE_VERSION).base_version
write_requirements(requirements)