Skip to content

Commit 05eee78

Browse files
authored
Merge pull request pytest-dev#10599 from pytest-dev/fix-update-plugin-list-workflow
Fix update-plugin-list workflow due to new 'packaging'
2 parents 0289313 + a98b00c commit 05eee78

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

.github/workflows/update-plugin-list.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ on:
1111
permissions: {}
1212

1313
jobs:
14-
createPullRequest:
14+
update-plugin-list:
1515
if: github.repository_owner == 'pytest-dev'
1616
runs-on: ubuntu-latest
1717
permissions:

scripts/update-plugin-list.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,20 @@ def iter_plugins():
8181
if re.match(r"pytest(?![-.\w])", requirement):
8282
requires = requirement
8383
break
84+
85+
def version_sort_key(version_string):
86+
"""
87+
Return the sort key for the given version string
88+
returned by the API.
89+
"""
90+
try:
91+
return packaging.version.parse(version_string)
92+
except packaging.version.InvalidVersion:
93+
# Use a hard-coded pre-release version.
94+
return packaging.version.Version("0.0.0alpha")
95+
8496
releases = response.json()["releases"]
85-
for release in sorted(releases, key=packaging.version.parse, reverse=True):
97+
for release in sorted(releases, key=version_sort_key, reverse=True):
8698
if releases[release]:
8799
release_date = datetime.date.fromisoformat(
88100
releases[release][-1]["upload_time_iso_8601"].split("T")[0]
@@ -124,7 +136,7 @@ def main():
124136
reference_dir = pathlib.Path("doc", "en", "reference")
125137

126138
plugin_list = reference_dir / "plugin_list.rst"
127-
with plugin_list.open("w") as f:
139+
with plugin_list.open("w", encoding="UTF-8") as f:
128140
f.write(FILE_HEAD)
129141
f.write(f"This list contains {len(plugins)} plugins.\n\n")
130142
f.write(".. only:: not latex\n\n")

0 commit comments

Comments
 (0)