Fix release note generation race condition (#2027) (#2028)

This commit is contained in:
daveoconnor
2025-12-05 13:36:27 -08:00
committed by GitHub
parent 240eafa5f1
commit eb708fad1b
2 changed files with 14 additions and 4 deletions

View File

@@ -289,9 +289,16 @@ def get_release_notes_for_version(version_pk):
processed_content = convert_adoc_to_html(content)
content_type = "text/asciidoc"
else:
content = get_release_notes_for_version_github(version_pk)
processed_content = process_release_notes(content)
content_type = "text/html"
try:
content = get_release_notes_for_version_github(version_pk)
processed_content = process_release_notes(content)
content_type = "text/html"
except requests.exceptions.HTTPError as e:
content = None
processed_content = None
content_type = None
logger.error(f"get_release_notes_for_version_http_error {e=}")
return content, processed_content, content_type
@@ -325,6 +332,8 @@ def store_release_notes_for_version(version_pk):
raise Version.DoesNotExist
content, processed_content, content_type = get_release_notes_for_version(version_pk)
if not content:
return
# Save the result to the rendered content model with the version cache key
rendered_content, _ = RenderedContent.objects.update_or_create(

View File

@@ -86,9 +86,10 @@ def import_release_notes(new_versions_only=True):
if not new_versions_only:
versions = Version.objects.exclude(name__in=["master", "develop"]).active()
logger.info(f"import_release_notes {[(v.pk,v.name) for v in versions]}")
for version in versions:
logger.info(f"retrieving release notes for {version.name=} {version.pk=}")
store_release_notes_task.delay(str(version.pk))
store_release_notes_task(version.pk)
store_release_notes_in_progress_task.delay()