Skip to content

Commit 6c3e65a

Browse files
author
Erick Friis
authored
infra: prerelease dep checking on release (#23269)
1 parent 616196c commit 6c3e65a

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import sys
2+
import tomllib
3+
4+
if __name__ == "__main__":
5+
# Get the TOML file path from the command line argument
6+
toml_file = sys.argv[1]
7+
8+
# read toml file
9+
with open(toml_path, "rb") as file:
10+
toml_data = tomllib.load(file)
11+
12+
# see if we're releasing an rc
13+
version = toml_data["tool"]["poetry"]["version"]
14+
releasing_rc = "rc" in version
15+
16+
# if not, iterate through dependencies and make sure none allow prereleases
17+
if not releasing_rc:
18+
dependencies = toml_data["tool"]["poetry"]["dependencies"]
19+
for lib in dependencies:
20+
dep_version = dependencies[lib]
21+
dep_version_string = (
22+
dep_version["version"] if isinstance(dep_version, dict) else dep_version
23+
)
24+
25+
if "rc" in dep_version_string:
26+
raise ValueError(
27+
f"Dependency {lib} has a prerelease version. Please remove this."
28+
)
29+
30+
if isinstance(dep_version, dict) and dep_version.get(
31+
"allow-prereleases", False
32+
):
33+
raise ValueError(
34+
f"Dependency {lib} has allow-prereleases set to true. Please remove this."
35+
)

.github/workflows/_release.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,11 @@ jobs:
221221
run: make tests
222222
working-directory: ${{ inputs.working-directory }}
223223

224+
- name: Check for prerelease versions
225+
working-directory: ${{ inputs.working-directory }}
226+
run: |
227+
poetry run python $GITHUB_WORKSPACE/.github/scripts/check_prerelease_dependencies.py pyproject.toml
228+
224229
- name: Get minimum versions
225230
working-directory: ${{ inputs.working-directory }}
226231
id: min-version

0 commit comments

Comments
 (0)