Skip to content

Commit 020513b

Browse files
committed
Add support for changelog URLs
And if available, print them on the terminal output.
1 parent f39e5a5 commit 020513b

File tree

6 files changed

+17
-0
lines changed

6 files changed

+17
-0
lines changed

src/checkers/anityachecker.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ async def _check_git(self, external_data: ExternalGitRepo, latest_version):
100100
branch=None,
101101
version=latest_version,
102102
timestamp=None,
103+
changelog_url=None,
103104
).fetch_remote()
104105

105106
external_data.set_new_version(new_version)

src/checkers/gitchecker.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ async def _check_has_new(cls, external_data: ExternalGitRepo):
150150
branch=None,
151151
version=latest_tag.version,
152152
timestamp=None,
153+
changelog_url=None,
153154
)
154155
external_data.set_new_version(new_version)
155156

src/checkers/pypichecker.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,5 +102,6 @@ async def check(self, external_data: ExternalBase):
102102
size=pypi_download["size"],
103103
version=pypi_version.orig_str,
104104
timestamp=pypi_date,
105+
changelog_url=None,
105106
)
106107
external_data.set_new_version(new_version)

src/lib/externaldata.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
},
5555
"source-id": {"type": "string"},
5656
"parent-id": {"type": "string"},
57+
"changelog-url-template": {"type": "string"},
5758
},
5859
"required": ["type"],
5960
}
@@ -204,6 +205,7 @@ class ExternalState(abc.ABC):
204205
url: str
205206
version: t.Optional[str]
206207
timestamp: t.Optional[datetime.datetime]
208+
changelog_url: t.Optional[str]
207209

208210
def _replace(self: _ES, **kwargs) -> _ES:
209211
return dataclasses.replace(self, **kwargs)
@@ -286,6 +288,11 @@ def set_new_version(self, new_version: ExternalState, is_update: bool = True):
286288
)
287289
self.state |= self.State.OUTDATED
288290

291+
assert new_version.changelog_url is None
292+
new_version = new_version._replace(
293+
changelog_url=self.current_version.changelog_url
294+
)
295+
289296
self.new_version = new_version
290297

291298
@property
@@ -358,6 +365,7 @@ def from_source_impl(
358365
checksum = MultiDigest.from_source(source)
359366
size = source.get("size")
360367
checker_data = source.get("x-checker-data", {})
368+
changelog_url = checker_data.get("changelog-url-template", None)
361369
arches = checker_data.get("arches") or source.get("only-arches") or ["x86_64"]
362370

363371
obj = cls(
@@ -374,6 +382,7 @@ def from_source_impl(
374382
size=size,
375383
version=None,
376384
timestamp=None,
385+
changelog_url=changelog_url,
377386
),
378387
None,
379388
)
@@ -519,6 +528,7 @@ def from_source_impl(
519528
tag = source.get("tag")
520529
branch = source.get("branch")
521530
checker_data = source.get("x-checker-data", {})
531+
changelog_url = checker_data.get("changelog-url-template", None)
522532
arches = checker_data.get("arches") or source.get("only-arches") or ["x86_64"]
523533

524534
obj = cls(
@@ -536,6 +546,7 @@ def from_source_impl(
536546
branch=branch,
537547
version=None,
538548
timestamp=None,
549+
changelog_url=changelog_url,
539550
),
540551
None,
541552
)

src/lib/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ def content_type_rejected(content_type: t.Optional[str]) -> bool:
181181
size=size,
182182
version=None,
183183
timestamp=_extract_timestamp(info),
184+
changelog_url=None,
184185
)
185186

186187
return external_file

src/main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ def print_outdated_external_data(manifest_checker: manifest.ManifestChecker):
9898
" Version: {version}\n"
9999
" Timestamp: {timestamp}\n"
100100
)
101+
if message_args["changelog_url"]:
102+
message_tmpl += " Changelog: {changelog_url}\n"
101103
elif data.State.BROKEN in data.state:
102104
message_tmpl = (
103105
# fmt: off

0 commit comments

Comments
 (0)