summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonin Godard <antonin.godard@bootlin.com>2024-12-17 11:35:00 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-12-20 12:47:59 +0000
commit3ed2348227c561b4e425583d3ee436113515dea6 (patch)
treed72160882bfdff8f2202e4295c760e5f748047e8
parent991b68a00c21bb3616339b71e5e0e072981c672d (diff)
downloadpoky-3ed2348227c561b4e425583d3ee436113515dea6.tar.gz
set_versions.py: use backward-compatible python argument in run
Some workers on the autobuilder reported the following error: File "./set_versions.py", line 102, in <module> subprocess.run(["git", "show", "yocto-%s" % release_series[activereleases[0]]], capture_output=True, check=True) File "/usr/lib64/python3.6/subprocess.py", line 423, in run with Popen(*popenargs, **kwargs) as process: TypeError: __init__() got an unexpected keyword argument 'capture_output' See https://valkyrie.yoctoproject.org/#/builders/34/builds/86. This is because capture_output was introduced in Python 3.7, and some of the support distributions are still on Python 3.6. Since capture_output is essentially just setting stdout and stderr to PIPE (https://github.com/python/cpython/blob/3.13/Lib/subprocess.py#L547), do it manually here to be compatible with older python versions. This is also the case for the "text" parameter, introduced in 3.7 to alias the universal_newlines parameter. Use "universal_newlines" to be backward-compatible. [ YOCTO #15687 ] Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de> Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # openSUSE Leap (From yocto-docs rev: 28850c974a3896895bc921c094071523218d6d07) Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xdocumentation/set_versions.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/documentation/set_versions.py b/documentation/set_versions.py
index 376337e7b5..5c55f470d7 100755
--- a/documentation/set_versions.py
+++ b/documentation/set_versions.py
@@ -99,12 +99,12 @@ docconfver = None
99 99
100# Test tags exist and inform the user to fetch if not 100# Test tags exist and inform the user to fetch if not
101try: 101try:
102 subprocess.run(["git", "show", "yocto-%s" % release_series[activereleases[0]]], capture_output=True, check=True) 102 subprocess.run(["git", "show", "yocto-%s" % release_series[activereleases[0]]], stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True)
103except subprocess.CalledProcessError: 103except subprocess.CalledProcessError:
104 sys.exit("Please run 'git fetch --tags' before building the documentation") 104 sys.exit("Please run 'git fetch --tags' before building the documentation")
105 105
106# Try and figure out what we are 106# Try and figure out what we are
107tags = subprocess.run(["git", "tag", "--points-at", "HEAD"], capture_output=True, text=True).stdout 107tags = subprocess.run(["git", "tag", "--points-at", "HEAD"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout
108for t in tags.split(): 108for t in tags.split():
109 if t.startswith("yocto-"): 109 if t.startswith("yocto-"):
110 ourversion = t[6:] 110 ourversion = t[6:]
@@ -122,7 +122,7 @@ if ourversion:
122 bitbakeversion = bitbake_mapping[i] 122 bitbakeversion = bitbake_mapping[i]
123else: 123else:
124 # We're floating on a branch 124 # We're floating on a branch
125 branch = subprocess.run(["git", "branch", "--show-current"], capture_output=True, text=True).stdout.strip() 125 branch = subprocess.run(["git", "branch", "--show-current"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout.strip()
126 ourbranch = branch 126 ourbranch = branch
127 if branch != "master" and branch not in release_series: 127 if branch != "master" and branch not in release_series:
128 # We're not on a known release branch so we have to guess. Compare the numbers of commits 128 # We're not on a known release branch so we have to guess. Compare the numbers of commits
@@ -130,7 +130,7 @@ else:
130 possible_branch = None 130 possible_branch = None
131 branch_count = 0 131 branch_count = 0
132 for b in itertools.chain(release_series.keys(), ["master"]): 132 for b in itertools.chain(release_series.keys(), ["master"]):
133 result = subprocess.run(["git", "log", "--format=oneline", "HEAD..origin/" + b], capture_output=True, text=True) 133 result = subprocess.run(["git", "log", "--format=oneline", "HEAD..origin/" + b], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
134 if result.returncode == 0: 134 if result.returncode == 0:
135 count = result.stdout.count('\n') 135 count = result.stdout.count('\n')
136 if not possible_branch or count < branch_count: 136 if not possible_branch or count < branch_count:
@@ -153,9 +153,9 @@ else:
153 else: 153 else:
154 sys.exit("Unknown series for branch %s" % branch) 154 sys.exit("Unknown series for branch %s" % branch)
155 155
156 previoustags = subprocess.run(["git", "tag", "--merged", "HEAD"], capture_output=True, text=True).stdout 156 previoustags = subprocess.run(["git", "tag", "--merged", "HEAD"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout
157 previoustags = [t[6:] for t in previoustags.split() if t.startswith("yocto-" + release_series[ourseries])] 157 previoustags = [t[6:] for t in previoustags.split() if t.startswith("yocto-" + release_series[ourseries])]
158 futuretags = subprocess.run(["git", "tag", "--merged", ourbranch], capture_output=True, text=True).stdout 158 futuretags = subprocess.run(["git", "tag", "--merged", ourbranch], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout
159 futuretags = [t[6:] for t in futuretags.split() if t.startswith("yocto-" + release_series[ourseries])] 159 futuretags = [t[6:] for t in futuretags.split() if t.startswith("yocto-" + release_series[ourseries])]
160 160
161 # Append .999 against the last known version 161 # Append .999 against the last known version
@@ -228,7 +228,7 @@ with open("sphinx-static/switchers.js.in", "r") as r, open("sphinx-static/switch
228 for branch in activereleases + ([ourseries] if ourseries not in activereleases else []): 228 for branch in activereleases + ([ourseries] if ourseries not in activereleases else []):
229 if branch == devbranch: 229 if branch == devbranch:
230 continue 230 continue
231 branch_versions = subprocess.run('git tag --list yocto-%s*' % (release_series[branch]), shell=True, capture_output=True, text=True).stdout.split() 231 branch_versions = subprocess.run('git tag --list yocto-%s*' % (release_series[branch]), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout.split()
232 branch_versions = sorted([v.replace("yocto-" + release_series[branch] + ".", "").replace("yocto-" + release_series[branch], "0") for v in branch_versions], key=int) 232 branch_versions = sorted([v.replace("yocto-" + release_series[branch] + ".", "").replace("yocto-" + release_series[branch], "0") for v in branch_versions], key=int)
233 if not branch_versions: 233 if not branch_versions:
234 continue 234 continue
@@ -273,7 +273,7 @@ def tag_to_semver_like(v):
273 v_maj, v_min, v_patch = v_semver.groups('0') 273 v_maj, v_min, v_patch = v_semver.groups('0')
274 return int("{:0>2}{:0>2}{:0>2}".format(v_maj, v_min, v_patch), 10) 274 return int("{:0>2}{:0>2}{:0>2}".format(v_maj, v_min, v_patch), 10)
275 275
276yocto_tags = subprocess.run(["git", "tag", "--list", "--sort=version:refname", "yocto-*"], capture_output=True, text=True).stdout 276yocto_tags = subprocess.run(["git", "tag", "--list", "--sort=version:refname", "yocto-*"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout
277yocto_tags = sorted(yocto_tags.split() + missing_tags, key=tag_to_semver_like) 277yocto_tags = sorted(yocto_tags.split() + missing_tags, key=tag_to_semver_like)
278tags = [tag[6:] for tag in yocto_tags] 278tags = [tag[6:] for tag in yocto_tags]
279 279