Skip to content

Fix slow changelog generation for historical releases#582

Merged
IanButterworth merged 1 commit into
masterfrom
fix-578-slow-chronological-predecessor
Jun 9, 2026
Merged

Fix slow changelog generation for historical releases#582
IanButterworth merged 1 commit into
masterfrom
fix-578-slow-chronological-predecessor

Conversation

@IanButterworth

Copy link
Copy Markdown
Member

Fixes #578

Claude:


_previous_release_chronological looped over every tag and made a get_release API call (404 for most) plus a git log subprocess per tag. On a registry with hundreds of tags this took minutes (~289s for 639 tags), neither of which was reflected in the API-call perf counter.

Add Git.commit_times_of_tags, which resolves every tag's underlying commit datetime in a single git for-each-ref call (handling both lightweight and annotated tags), and use it for the chronological predecessor lookup with a single-tag fallback for tags missing from the batch.

Fixes #578

`_previous_release_chronological` looped over every tag and made a
`get_release` API call (404 for most) plus a `git log` subprocess per
tag. On a registry with hundreds of tags this took minutes (~289s for
639 tags), neither of which was reflected in the API-call perf counter.

Add `Git.commit_times_of_tags`, which resolves every tag's underlying
commit datetime in a single `git for-each-ref` call (handling both
lightweight and annotated tags), and use it for the chronological
predecessor lookup with a single-tag fallback for tags missing from the
batch.
@IanButterworth IanButterworth merged commit 1e79be2 into master Jun 9, 2026
2 checks passed
@IanButterworth IanButterworth deleted the fix-578-slow-chronological-predecessor branch June 9, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TagBot took 5 minutes to make a release

1 participant