You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -67,10 +67,13 @@ helpful. Publish the documentation update before the release announcement. Do no
put a documentation PR URL in this field. The announcement copies only these
published-page URLs and never copies the PR description. For maintenance changes
without a documentation update, explicitly use `Documentation: none`; no docs
-link is added. Missing or invalid mappings fail the announcement with instructions
-to fix the merged engine PR's description and rerun publication. The automation
-does not guess a matching update by title or choose the latest documentation PR,
-and does not verify that the declared page has deployed.
+link is added. When there is no `Documentation:` line, canonical published docs
+links elsewhere in the description are used instead. Missing or invalid mappings
+do not block the announcement: it is posted without a docs link and the Actions
+log shows a warning. Add the published page to the merged engine PR's description
+and rerun publication to update the announcement. The automation does not guess a
+matching update by title or choose the latest documentation PR, and does not
+verify that the declared page has deployed.
The workflow token
@@ -16,19 +16,22 @@
def documentation_links(pr):
- """Require an explicit mapping to published pages, never infer a docs PR."""
- entries = re.findall(r"^Documentation:[ \t]*(.+)$", pr.get("body") or "", re.MULTILINE)
+ """Use declared published pages without blocking installer announcements."""
+ body = pr.get("body") or ""
+ entries = re.findall(r"^Documentation:[ \t]*(.*)$", body, re.MULTILINE)
if not entries:
- raise ValueError("Add Documentation: <published docs URL> to the merged PR description "
- "(or Documentation: none for changes without a documentation update).")
+ # Older PRs use ordinary Markdown links rather than release metadata.
+ entries = [body]
if len(entries) == 1 and entries[0].strip().lower() == "none":
return []
urls = []
for entry in entries:
found = re.findall(re.escape(DOCS_ROOT) + r"[A-Za-z0-9_./%~-]+(?:#[A-Za-z0-9_.%~-]+)?", entry)
- if not found:
- raise ValueError("Documentation must link to a published page under " + DOCS_ROOT)
urls.extend(found)
+ if not urls:
+ print("::warning::No published documentation page
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Fix installer announcements blocked by missing documentation metadata
Download RusticGameEngine-Setup-0.1.0-x64-20261101-050513.exe
Release · All changed files and full diff · Download patch
Files changed
.github/CI.md— modified, +17 / -4Diff preview
See the file link for the complete diff.
.github/scripts/installer_release.py— modified, +9 / -6Diff preview
@@ -16,19 +16,22 @@ def documentation_links(pr): - """Require an explicit mapping to published pages, never infer a docs PR.""" - entries = re.findall(r"^Documentation:[ \t]*(.+)$", pr.get("body") or "", re.MULTILINE) + """Use declared published pages without blocking installer announcements.""" + body = pr.get("body") or "" + entries = re.findall(r"^Documentation:[ \t]*(.*)$", body, re.MULTILINE) if not entries: - raise ValueError("Add Documentation: <published docs URL> to the merged PR description " - "(or Documentation: none for changes without a documentation update).") + # Older PRs use ordinary Markdown links rather than release metadata. + entries = [body] if len(entries) == 1 and entries[0].strip().lower() == "none": return [] urls = [] for entry in entries: found = re.findall(re.escape(DOCS_ROOT) + r"[A-Za-z0-9_./%~-]+(?:#[A-Za-z0-9_.%~-]+)?", entry) - if not found: - raise ValueError("Documentation must link to a published page under " + DOCS_ROOT) urls.extend(found) + if not urls: + print("::warning::No published documentation pageSee the file link for the complete diff.
.github/tests/test_installer_release.py— modified, +55 / -6Diff preview
@@ -184,14 +184,63 @@ def test_documentation_uses_explicit_pages_and_deduplicates(self): self.assertIn(f"[Updated documentation]({url})", body) self.assertNotIn("/pull/", body) - def test_documentation_none_is_explicit_and_missing_mapping_fails(self): + def test_documentation_none_is_explicit_and_missing_mapping_warns(self): self.assertEqual(release.documentation_links({"body": "Documentation: none"}), []) - for body in (None, "", "Unrelated docs link: " + release.DOCS_ROOT + "engine", + for body in (None, "", "Documentation:", "Documentation: https://github.com/example/docs/pull/123", - "Documentation: https://unrelated.example/docs/engine", - "Documentation: none\nDocumentation: " + release.DOCS_ROOT + "engine"): - with self.subTest(body=body), self.assertRaisesRegex(ValueError, "Documentation"): - release.documentation_links({"body": body}) + "Documentation: https://unrelated.example/docs/engine"): + with self.subTest(body=body), patch("builtins.print") as output: + self.assertEqual(release.documentSee the file link for the complete diff.
All reactions