From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <f.ebner@proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 6E057937FF
 for <pve-devel@lists.proxmox.com>; Tue,  6 Feb 2024 09:30:05 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 4566A30AF1
 for <pve-devel@lists.proxmox.com>; Tue,  6 Feb 2024 09:29:35 +0100 (CET)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [94.136.29.106])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for <pve-devel@lists.proxmox.com>; Tue,  6 Feb 2024 09:29:34 +0100 (CET)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 0AD0244509
 for <pve-devel@lists.proxmox.com>; Tue,  6 Feb 2024 09:29:34 +0100 (CET)
Message-ID: <362b0156-16d4-40d6-9eb0-6bea947e7092@proxmox.com>
Date: Tue, 6 Feb 2024 09:29:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
 Christian Ebner <c.ebner@proxmox.com>
References: <20240205170827.340962-1-c.ebner@proxmox.com>
From: Fiona Ebner <f.ebner@proxmox.com>
In-Reply-To: <20240205170827.340962-1-c.ebner@proxmox.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.072 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [release.rs, file.rs]
Subject: Re: [pve-devel] [PATCH proxmox master stable-2 1/2] apt: repos:
 extend `Codename` by `Unknown` variant
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Tue, 06 Feb 2024 08:30:05 -0000

Am 05.02.24 um 18:08 schrieb Christian Ebner:
> Instead of returning an Option for the Codename variant, with None for
> unknowns, extend the enum by an Unknown variant with additional internal
> type to avoid misuse of this variant.
> 
> Co-authored-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
> Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
> ---
>  proxmox-apt/src/repositories/file.rs    | 12 +++--
>  proxmox-apt/src/repositories/release.rs | 61 +++++++++++++++----------
>  2 files changed, 46 insertions(+), 27 deletions(-)
> 
> diff --git a/proxmox-apt/src/repositories/file.rs b/proxmox-apt/src/repositories/file.rs
> index b4c6b08..b8a2c7f 100644
> --- a/proxmox-apt/src/repositories/file.rs
> +++ b/proxmox-apt/src/repositories/file.rs
> @@ -405,10 +405,14 @@ impl APTRepositoryFile {
>                      add_info("warning", message_old(base_suite));
>                  }
>  
> -                if Some(codename) == current_codename.next() {
> -                    add_info("ignore-pre-upgrade-warning", message_new(base_suite));
> -                } else if codename > current_codename {
> -                    add_info("warning", message_new(base_suite));
> +                match current_codename.next() {
> +                    name if name == codename => {
> +                        add_info("ignore-pre-upgrade-warning", message_new(base_suite));
> +                    }
> +                    DebianCodename::Unknown(_, _) if codename > current_codename => {
> +                        add_info("warning", message_new(base_suite));
> +                    }
> +                    _ => {}

Like this, the warning is lost when we match a known codename that is
newer than the current one. What is the issue with the current code you
are trying to address?

As for the match, you could pull in the case where the suite is older
(the if block just above this code) and rather do an exhaustive match.