Skip to content

Commit 5883e35

Browse files
committed
gracefully handle unpinned but not ignored dependencies
1 parent f1e6de1 commit 5883e35

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

minimum_versions/formatting.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ def lookup_spec_release(spec, releases):
2121

2222

2323
def version_comparison_symbol(required, policy):
24-
if required < policy:
24+
if required is None:
25+
return "!"
26+
elif required < policy:
2527
return "<"
2628
elif required > policy:
2729
return ">"
@@ -45,6 +47,7 @@ def format_bump_table(specs, policy_versions, releases, warnings, ignored_violat
4547
">": Style(color="#ff0000", bold=True),
4648
"=": Style(color="#008700", bold=True),
4749
"<": Style(color="#d78700", bold=True),
50+
"!": Style(color="#ff0000", bold=True),
4851
}
4952

5053
for spec in specs:
@@ -53,7 +56,13 @@ def format_bump_table(specs, policy_versions, releases, warnings, ignored_violat
5356
policy_date = policy_release.timestamp
5457

5558
required_version = spec.version
56-
required_date = lookup_spec_release(spec, releases).timestamp
59+
if required_version is None:
60+
warnings[spec.name].append(
61+
"Unpinned dependency. Consider pinning or ignoring this dependency."
62+
)
63+
required_date = None
64+
else:
65+
required_date = lookup_spec_release(spec, releases).timestamp
5766

5867
status = version_comparison_symbol(required_version, policy_version)
5968
if status == ">" and spec.name in ignored_violations:
@@ -63,8 +72,8 @@ def format_bump_table(specs, policy_versions, releases, warnings, ignored_violat
6372

6473
table.add_row(
6574
spec.name,
66-
str(required_version),
67-
f"{required_date:%Y-%m-%d}",
75+
str(required_version) if required_version is not None else "",
76+
f"{required_date:%Y-%m-%d}" if required_date is not None else "",
6877
str(policy_version),
6978
f"{policy_date:%Y-%m-%d}",
7079
status,

0 commit comments

Comments
 (0)