File: update_version.py

package info (click to toggle)
onnxruntime 1.23.2%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 340,756 kB
  • sloc: cpp: 3,222,136; python: 188,267; ansic: 114,318; asm: 37,927; cs: 36,849; java: 10,962; javascript: 6,811; pascal: 4,126; sh: 2,996; xml: 705; objc: 281; makefile: 67
file content (123 lines) | stat: -rwxr-xr-x 5,076 bytes parent folder | download
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import os


def update_version():
    version = ""
    cwd = os.path.dirname(os.path.realpath(__file__))
    with open(os.path.join(cwd, "..", "..", "VERSION_NUMBER")) as f:
        version = f.readline().strip()
    lines = []
    current_version = ""
    file_path = os.path.join(cwd, "..", "..", "docs", "Versioning.md")
    with open(file_path) as f:
        lines = f.readlines()
        for line in lines:
            if line.startswith("|"):
                sections = line.split("|")
                if len(sections) == 8 and sections[1].strip()[0].isdigit():
                    current_version = sections[1].strip()
                    break
    print("Current version of ORT seems to be: " + current_version)
    if version != current_version:
        with open(file_path, "w") as f:
            for i, line in enumerate(lines):
                f.write(line)
                if line.startswith("|--"):
                    sections = lines[i + 1].split("|")
                    # Make sure there are no 'False Positive' version additions
                    # by making sure the line we are building a new line from
                    # contains the current_version
                    if len(sections) > 1 and sections[1].strip() == current_version:
                        sections[1] = " " + version + " "
                        new_line = "|".join(sections)
                        f.write(new_line)
    lines = []
    current_version = ""
    file_path = os.path.join(cwd, "..", "..", "docs", "python", "README.rst")
    with open(file_path) as f:
        lines = f.readlines()
        for line in lines:
            sections = line.strip().split(".")
            if len(sections) == 3 and sections[0].isdigit() and sections[1].isdigit() and sections[2].isdigit():
                current_version = line.strip()
                break
    if version != current_version:
        inserted = False
        with open(file_path, "w") as f:
            for line in lines:
                sections = line.strip().split(".")
                if (
                    inserted is False
                    and len(sections) == 3
                    and sections[0].isdigit()
                    and sections[1].isdigit()
                    and sections[2].isdigit()
                ):
                    f.write(version + "\n")
                    f.write("^" * len(version) + "\n\n")
                    f.write(
                        "Release Notes : https://github.com/Microsoft/onnxruntime/releases/tag/v"
                        + version.strip()
                        + "\n\n"
                    )
                    inserted = True
                f.write(line)
    lines = []
    current_version = ""
    file_path = os.path.join(cwd, "..", "..", "onnxruntime", "__init__.py")
    with open(file_path) as f:
        lines = f.readlines()
        for line in lines:
            if line.startswith("__version__"):
                current_version = line.split("=")[1].strip()[1:-1]
                break
    if version != current_version:
        with open(file_path, "w") as f:
            for line in lines:
                if line.startswith("__version__"):
                    f.write('__version__ = "' + version + '"\n')
                    continue
                f.write(line)

    # update version for NPM packages
    current_version = ""
    js_root = os.path.join(cwd, "..", "..", "js")

    def run(args, cwd):
        from util import is_windows, run  # noqa: PLC0415

        if is_windows():
            args = ["cmd", "/c", *args]
        run(*args, cwd=cwd)

    # check if node and npm are installed
    run(["node", "--version"], cwd=js_root)
    run(["npm", "--version"], cwd=js_root)

    # upgrade version for onnxruntime-common
    run(["npm", "version", version], cwd=os.path.join(js_root, "common"))
    run(["npm", "install", "--package-lock-only", "--ignore-scripts"], cwd=os.path.join(js_root, "common"))

    # upgrade version for onnxruntime-node
    run(["npm", "version", version], cwd=os.path.join(js_root, "node"))
    run(["npm", "install", "--package-lock-only", "--ignore-scripts"], cwd=os.path.join(js_root, "node"))

    # upgrade version for onnxruntime-web
    run(["npm", "version", version], cwd=os.path.join(js_root, "web"))
    run(["npm", "install", "--package-lock-only", "--ignore-scripts"], cwd=os.path.join(js_root, "web"))

    # upgrade version for onnxruntime-react-native
    run(["npm", "version", version], cwd=os.path.join(js_root, "react_native"))
    run(["npm", "install", "--package-lock-only", "--ignore-scripts"], cwd=os.path.join(js_root, "react_native"))

    # upgrade version.ts in each package
    run(["npm", "ci"], cwd=js_root)
    run(["npm", "run", "update-version", "common"], cwd=js_root)
    run(["npm", "run", "update-version", "node"], cwd=js_root)
    run(["npm", "run", "update-version", "web"], cwd=js_root)
    run(["npm", "run", "update-version", "react_native"], cwd=js_root)
    run(["npm", "run", "format"], cwd=js_root)


if __name__ == "__main__":
    update_version()