From cfaa0ceb3f677fceaba83c5bd959451770b1a4a1 Mon Sep 17 00:00:00 2001 From: Robert Garrett Date: Fri, 4 Jul 2025 09:56:37 -0500 Subject: [PATCH] Lift the empty-body string outside the let-if Patch the string reference lifetime issue, and rediff the other patch while we're at it. --- .../0001-Rust-edition-downgrade-to-2021.patch | 6 +-- ...empty-body-string-outside-the-let-if.patch | 39 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 debian/patches/0002-Lift-the-empty-body-string-outside-the-let-if.patch diff --git a/debian/patches/0001-Rust-edition-downgrade-to-2021.patch b/debian/patches/0001-Rust-edition-downgrade-to-2021.patch index 1a47ba4..2b3ca48 100644 --- a/debian/patches/0001-Rust-edition-downgrade-to-2021.patch +++ b/debian/patches/0001-Rust-edition-downgrade-to-2021.patch @@ -2,20 +2,20 @@ From: Robert Garrett Date: Sun, 1 Jun 2025 17:59:20 -0500 Subject: Rust edition downgrade to 2021 -Debian Bookworm uses Rust 1.64 which only supports up to the 2021 +Debian Bookworm uses Rust 1.63 which only supports up to the 2021 edition. --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml -index febccc4..cf52754 100644 +index 4fd569c..8b67a52 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gt-tool" - version = "1.0.0" + version = "2.2.0" -edition = "2024" +edition = "2021" diff --git a/debian/patches/0002-Lift-the-empty-body-string-outside-the-let-if.patch b/debian/patches/0002-Lift-the-empty-body-string-outside-the-let-if.patch new file mode 100644 index 0000000..2622584 --- /dev/null +++ b/debian/patches/0002-Lift-the-empty-body-string-outside-the-let-if.patch @@ -0,0 +1,39 @@ +From: Robert Garrett +Date: Fri, 4 Jul 2025 09:36:52 -0500 +Subject: Lift the empty-body string outside the let-if + +The if-else block that selects between the body of the Release or a +placeholder is returning references to variables that only exist +*inside* the body of the if-else blocks. Newer Rust versions seem to +understand the intent and do The Right Thing anyway (or they have some +other rule for how if-else block scopes work). + +Manually lifting the variable to an outer scope resolves the problem. +--- + src/structs/release.rs | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/structs/release.rs b/src/structs/release.rs +index 9ed537e..3c4a434 100644 +--- a/src/structs/release.rs ++++ b/src/structs/release.rs +@@ -1,3 +1,5 @@ ++use std::io::empty; ++ + use colored::Colorize; + use serde::{Deserialize, Serialize}; + +@@ -27,10 +29,11 @@ impl Release { + let published = "Published:".bright_green(); + let created = "Created:".green().dimmed(); + let author = "Author:".blue(); ++ let empty_body = String::from("(empty body)").dimmed(); + let body = if !self.body.is_empty() { +- &self.body.white() ++ self.body.white() + } else { +- &String::from("(empty body)").dimmed() ++ empty_body + }; + + format!( diff --git a/debian/patches/series b/debian/patches/series index f333570..22b326b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ 0001-Rust-edition-downgrade-to-2021.patch +0002-Lift-the-empty-body-string-outside-the-let-if.patch