Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 38 additions & 36 deletions skare3_tools/packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,6 @@ def _get_repository_info_v4(
for r in releases:
r["tag_oid"], r["committed_date"] = _get_tag_target(r["tag"])

releases = {r["tag_oid"]: r for r in releases}
release_info = [
{
"release_tag": "",
Expand Down Expand Up @@ -466,17 +465,19 @@ def _get_repository_info_v4(

for commit in commits:
sha = commit["oid"]
if sha in releases:
release_info.append(
{
"release_sha": sha,
"release_commit_date": releases[sha]["committed_date"],
"release_tag": releases[sha]["tagName"],
"release_tag_date": releases[sha]["publishedAt"],
"commits": [],
"merges": [],
}
)
releases_at_commit = [
{
"release_sha": release["tag_oid"],
"release_commit_date": release["committed_date"],
"release_tag": release["tagName"],
"release_tag_date": release["publishedAt"],
"commits": [],
"merges": [],
}
for release in releases if release["tag_oid"] == sha
]
release_info += releases_at_commit

release_info[-1]["commits"].append(commit)
match = re.match(
r"Merge pull request #(?P<pr_number>.+) from (?P<branch>\S+)\n\n(?P<title>.+)",
Expand Down Expand Up @@ -504,14 +505,14 @@ def _get_repository_info_v4(
# Now we will add the remaining releases, which presumably happened in another branch.

release_shas = [r["release_sha"] for r in release_info[1:]]
for sha in releases:
if sha not in release_shas:
for release in releases:
if release["tag_oid"] not in release_shas:
release_info.append(
{
"release_sha": sha,
"release_tag": releases[sha]["tagName"],
"release_tag_date": releases[sha]["publishedAt"],
"release_commit_date": releases[sha]["committed_date"],
"release_sha": release["tag_oid"],
"release_tag": release["tagName"],
"release_tag_date": release["publishedAt"],
"release_commit_date": release["committed_date"],
"commits": [],
"merges": [],
}
Expand Down Expand Up @@ -661,12 +662,15 @@ def _split_versions(depends):
"""
result = {}
for depend in depends:
v = depend.split("==") if "==" in depend else depend.split()
if len(v) > 2:
raise Exception(f"Version spec got split into too many parts: {depend}")
p_name = v[0].strip()
p_version = v[1].strip() if len(v) == 2 else ""
result[p_name] = p_version
if "==" in depend:
name_version = depend.split("==", maxsplit=1)
else:
name_version = depend.split(maxsplit=1)
if len(name_version) == 2:
name, version = name_version
else:
name, version = name_version[0], ""
result[name.strip()] = version.strip()
return result


Expand Down Expand Up @@ -748,9 +752,6 @@ def _get_repository_info_v3(
for r, c in zip(releases, release_commits)
}

# later on, the releases are referred by commit sha
releases = {c["sha"]: r for r, c in zip(releases, release_commits)}

date_since = None
if type(since) is int:
# only the latest 'since' releases (at most) will be included in summary
Expand Down Expand Up @@ -780,15 +781,16 @@ def _get_repository_info_v3(
commits = commits[:-1] # remove first commit, which was just the starting point
for commit in commits:
sha = commit["sha"]
if sha in releases.keys():
release_info.append(
{
"release_tag": releases[sha]["tag_name"],
"release_tag_date": releases[sha]["published_at"],
"commits": [],
"merges": [],
}
)
releases_at_commit = [
{
"release_tag": release["tag_name"],
"release_tag_date": release["published_at"],
"commits": [],
"merges": [],
}
for release in [r for r, c in zip(releases, release_commits) if c['sha'] == sha]
]
release_info += releases_at_commit

release_info[-1]["commits"].append(
{
Expand Down