From 4a58831d3f744675569261f927485a6b4cc86be9 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 22:37:30 -0300 Subject: [PATCH 1/2] fix: render nightly release note line breaks Signed-off-by: Vitor Mattos --- workflow-templates/nightly-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow-templates/nightly-release.yml b/workflow-templates/nightly-release.yml index 3dad2a2..81f905e 100644 --- a/workflow-templates/nightly-release.yml +++ b/workflow-templates/nightly-release.yml @@ -251,7 +251,7 @@ jobs: { echo "## 🌙 Nightly Build - ${APP_VERSION}" echo - printf 'Automated nightly build from `%s`.\\n' "${NIGHTLY_BRANCH}" + printf 'Automated nightly build from `%s`.\n' "${NIGHTLY_BRANCH}" echo echo "⚠️ **Development version** - may contain bugs or unstable features." echo @@ -260,7 +260,7 @@ jobs: printf '%s\n' "${commits}" echo echo "---" - printf 'Generated from commit `%s`.\\n' "${GITHUB_SHA:0:7}" + printf 'Generated from commit `%s`.\n' "${GITHUB_SHA:0:7}" } > release-notes.md - name: Create or update GitHub release From b189343087c0f6391c873706831bbc0e2a81434d Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 22:37:43 -0300 Subject: [PATCH 2/2] test: guard nightly release note newlines Signed-off-by: Vitor Mattos --- tests/test_nightly_release_template.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_nightly_release_template.py b/tests/test_nightly_release_template.py index 315b5a8..021397f 100644 --- a/tests/test_nightly_release_template.py +++ b/tests/test_nightly_release_template.py @@ -35,8 +35,8 @@ def test_nightly_runs_full_package_and_publication_path(self) -> None: self.assertIn("gh release create nightly", content) self.assertIn("nextcloud-libraries/nextcloud-appstore-push-action@", content) self.assertIn("nightly: true", content) - self.assertIn("printf 'Automated nightly build from `%s`.\\\\n'", content) - self.assertIn("printf 'Generated from commit `%s`.\\\\n'", content) + self.assertIn("printf 'Automated nightly build from `%s`.\\n'", content) + self.assertIn("printf 'Generated from commit `%s`.\\n'", content) self.assertNotIn("from `%s`.\\\\\\\\n", content) def test_server_is_available_before_makefile_packaging(self) -> None: @@ -49,6 +49,11 @@ def test_server_is_available_before_makefile_packaging(self) -> None: self.assertLess(server, package) self.assertLess(package, sign) + def test_release_notes_do_not_emit_literal_newline_escapes(self) -> None: + content = TEMPLATE.read_text(encoding="utf-8") + + self.assertNotIn(".\\\\\\\\n'", content) + def test_checkout_credentials_are_not_persisted(self) -> None: content = TEMPLATE.read_text(encoding="utf-8")