From ab6a7d9ae62b2da83b6860ee14cc9007c4909c86 Mon Sep 17 00:00:00 2001 From: David Souther Date: Tue, 26 Nov 2024 21:22:34 -0500 Subject: [PATCH 1/2] Normalize adding (and allowing missing) trailing newlines for READMEs. --- .tools/readmes/render.py | 1 + .tools/readmes/runner.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/.tools/readmes/render.py b/.tools/readmes/render.py index f4e97cd335e..bcd03a88591 100644 --- a/.tools/readmes/render.py +++ b/.tools/readmes/render.py @@ -304,6 +304,7 @@ def render(self) -> RenderStatus: customs=customs, unsupported=unsupported, ) + self.readme_text += "\n" # Jinja is the worst and strips trailing new lines [text, errors] = expand_all_entities(self.readme_text, self.scanner.doc_gen.entities) if errors: raise errors diff --git a/.tools/readmes/runner.py b/.tools/readmes/runner.py index b5691a9c316..18a5315b7c9 100755 --- a/.tools/readmes/runner.py +++ b/.tools/readmes/runner.py @@ -173,6 +173,12 @@ def main(): def make_diff(renderer, id): current = renderer.read_current().split("\n") + if current[-1] != "": + # Ensure final "last" line + current += [""] expected = renderer.readme_text.split("\n") + if expected[-1] != "": + # Ensure final "last" line + expected += [""] diff = unified_diff(current, expected, f"{id}/current", f"{id}/expected") return "\n".join(diff) From 205080c08fc5d694d1c0dec5610fd2d5f1e2b26c Mon Sep 17 00:00:00 2001 From: David Souther Date: Wed, 27 Nov 2024 10:31:23 -0500 Subject: [PATCH 2/2] Ensure ending newline in renderer, rather than renderer and diff --- .tools/readmes/render.py | 6 +++++- .tools/readmes/runner.py | 6 ------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.tools/readmes/render.py b/.tools/readmes/render.py index bcd03a88591..d99270fbd58 100644 --- a/.tools/readmes/render.py +++ b/.tools/readmes/render.py @@ -333,7 +333,11 @@ def write(self): def read_current(self): try: with self.readme_filename.open("r", encoding="utf-8") as f: - return f.read() + current = f.read() + if current[-1] != "\n": + # Ensure there's always an ending newline + current += "\n" + return current except FileNotFoundError: return "" diff --git a/.tools/readmes/runner.py b/.tools/readmes/runner.py index 18a5315b7c9..b5691a9c316 100755 --- a/.tools/readmes/runner.py +++ b/.tools/readmes/runner.py @@ -173,12 +173,6 @@ def main(): def make_diff(renderer, id): current = renderer.read_current().split("\n") - if current[-1] != "": - # Ensure final "last" line - current += [""] expected = renderer.readme_text.split("\n") - if expected[-1] != "": - # Ensure final "last" line - expected += [""] diff = unified_diff(current, expected, f"{id}/current", f"{id}/expected") return "\n".join(diff)