From patchwork Wed May 13 05:24:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChenQi X-Patchwork-Id: 87998 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2FE73CD4851 for ; Wed, 13 May 2026 05:24:53 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.902.1778649883787965963 for ; Tue, 12 May 2026 22:24:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=hT1ugXih; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=959349fd7a=qi.chen@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D3xm4B251624 for ; Tue, 12 May 2026 22:24:43 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :message-id:mime-version:subject:to; s=PPS06212021; bh=VIofwERzZ MzjzdqzVnByKR0XgdOpHiPMi1urP0wfR0I=; b=hT1ugXihx9rUZLw7Z5x3TyZV3 J+SDr3XjHgCU6snRuzPDZhPgJCjngvdczSe+uHeE3OuLT0wVakVAytDe8tf1S8rK awmGN2ZlK7ieDcB1bH3H+mhOzQQJIRZXbaN6OMTPDp53vN82Rdv5ToPCx+u0xUXi lvYLFbwv4pmUX4xbHZO7zsRJYd7oOajoebnIlNCqhvGuH6gI3reMreUv7Dwsswcj doBedNlyE/X010j1AYFfHgDVdJ1AWlioHJ2nPkgzBvW8BiyYU68uw7vKqumzA0dZ EYQx4LRIT+psPHfPu43JCdQkzkvKx6LKVvYh7vZWzqG2lJ5rF32zyAvX+Il7g== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013027.outbound.protection.outlook.com [40.93.201.27]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4e4ftb873e-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 12 May 2026 22:24:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kkxK16lzvZgBKo9C3kLMZ7uRNh1fcYb/sZeyqMou9Lz2VACqlshw0JUBZUDKTbyukmoSyIy9TzXkTWOycnbraCwh0uNZX4V7NEkQTOYBB7SBqsU60zvvzlxn4h+VXsuuNI1z9jSanE8pddKWBY+Ag6S5kE1jrAMFxFZMFo4k8EngMq/6sdv5MFV7MtMxHP6Ikwz2EItC4W9yd1D+BUUhmjrKu6B/LD65NI9/ra86Ub7jFlw2XJHbl8zihbZ98N8DJV6EbS2XXEPLCUzTZM87SF4fahHIzN6hvXT+OTe129Dc4s7G8Ob3Yz3nYpCujjM+9cxDkevpwpWBqndecg14Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VIofwERzZMzjzdqzVnByKR0XgdOpHiPMi1urP0wfR0I=; b=CpnhfoOQQ+M4xjGtlWd2MhQpIxZfWz7h8vdCAWzl266bwNlQbfaSP8F0Eva8f9PGjGyLUtmi1zBza+OkVEaXDkqPudlDFlS5SvIXA6Ppgx4V/VieyRA5Mcx4I1+HGtZ6rO36TefkTvWyahojfA6+lC/TNY0fUL8DSec4Pz3oTNA+y/PmPVOfkXMjp0NP2hl5i2z672wYco9vsFbt3hL5RIR5/fRcvSqpvPBM4eglPw67XsbvaBKqHC2So/WcA+uwedeMxgKRN5mpzYo0qtgtS6khxHfG9tFsiTEOTp13vWFCfVutXEQW6fNXa5Wdx8FHXKXDBk+QHbSVDSlYQhFpEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) by DS7PR11MB8855.namprd11.prod.outlook.com (2603:10b6:8:257::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 05:24:40 +0000 Received: from CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62]) by CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62%3]) with mapi id 15.20.9913.009; Wed, 13 May 2026 05:24:40 +0000 From: Qi.Chen@windriver.com To: bitbake-devel@lists.openembedded.org Cc: alex.kanavin@gmail.com, randy.macleod@windriver.com Subject: [bitbake-devel][PATCH V4 1/5] fetch2/git.py: add filter_regex parameter to latest_versionstring Date: Wed, 13 May 2026 13:24:20 +0800 Message-Id: <20260513052424.2271877-1-Qi.Chen@windriver.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: SG2PR01CA0179.apcprd01.prod.exchangelabs.com (2603:1096:4:28::35) To CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR11MB5602:EE_|DS7PR11MB8855:EE_ X-MS-Office365-Filtering-Correlation-Id: 289f9ea8-9066-42bd-a1ea-08deb0afeec1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|56012099003|3023799003|18002099003|38350700014|11063799003; X-Microsoft-Antispam-Message-Info: ddPh1fjkLgKwBlcWgRuPTdeXlO4gjfEYRuDgCP/VWmrys2K4VY4IJ2d3G2k+YI6xn4y6u1bJyoZZVhVm3w7An5d2KcMOGEY33sN6f+nCPnGcYBgGakKKzJ1dpbSlitzdnN39tHWqH/UUla/K9fCa/aO5zdm25zf2cqXeGvuTKuYhQ7KpVpDdH8pPX2qIse/WVieHaP5j6uEtlT6+zVYM/kcscMhzZQTb1HShc2HR1EPMD7V2OBpuW7syX76zCOUSO+nFjD2VGsk9X/p13Ov08GJtPjyIGut3W3c1sa9pPdbpTYK+ccRTaJzuWB71n1JsmEuxXE/TQATm3ZxUmJi61YGro0IjzoF4FZP6rlp+OvyU8QYqeh6cIx7lXytSWsXeA/PISXtkcpKLsJeZ4+g9No+LkvtKxMgwcbruuujtV3+6FSGfV79rcWWyN7xMI1+F1GkMzD2i37DAlH44KvkP4yR3lCagyKqGxAMbcawRSUFtpSzcw06X217nChm7kfS2Mk4mzs/wy9dlYalgzqKGMTiqHCI3wwV7N2j4EqN37vTZwA0NVb6/H8NffkSfRqG/0dvKxNJgdglSvBNcfGojaABrtzQeRyef53Lx6XyzAUNosJ0QmNW5glNIApR4vL4YkcAW3lcjVmDKzWggHo0Ne3dJqhGa6TFa8fEY+kzUA31nXXBnQQBmnahCr8aZOZ2bUVeXXiZD7htaTJ8orrfKckeiSGtRnO7zF5zqT8FeEz224MRxV3MaBMjGLIKJj/zx X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5602.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(1800799024)(56012099003)(3023799003)(18002099003)(38350700014)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I0vq9vXZV14gzcL0Enz59aCOjt5ShQvLBph7j5bzYCEwja9cqnIUyiKxJx2n7B7WV5NNYajBv4t96JvPIRFOmFYNR4L4d8b04om1cn0VMI2Qbfra6iqAx8L0S+xWEhYNzS13LF+OJ1EURGGsxj1AzEFuGH/laQgKt498eA1OVa8+8d4FYi9Kpbj/9HSqKQlyTPw+1M+fn9zVjN1jwufzE5I59wPAGZoGwJ70cjj0YcF+n51rRNwcmknETMtDeGSkxL7RvrGcGew/SwBeoshpqU8dChKqQyhEFYCVPgBrnga/F7mo6J9aO3obU4mls70NvbBKU9enB9UmKtwMfHTN3bX3Qh6ZFhBD6uFMGS1okClhO982lp0qUmT/1kipbkjFJ7/kmruHwKdeNpco198cVf/7ctqWpJkr5VHb6dGCSopdI22BIfPMTffk944NVijP00tmscEuE/dX8kNrbVeTP7JCVCAA8C6udtrkjfKXVYmELCxprR8MN0pO7dPreye613dK28EI2hA166Xen9hbnWNET3U/RiZyGFdRAlUAPUMqXaKlaqcbcrnxGBpuZHsf9WyHzqP3a4mCX9VsnTjHbItYPXJn8TKD43Z1m9MzASJFJBCi0G0jFVbwfyC49tVQ2fFjtouxFk1fobzUx332QeMNI4IpsoyD6Xo0q2qcsVuA1ZFT+ljzYE+eBLUaSpU11izP4uFMArdERMttbi8AZcRNNp34IHqPbrt5OT7WRj8QyejcKcZbDUlrw8PF5Z36tMWcAYRm6j3G6gUOdtu12gQKzNVqQi2CVZDZyfEdaIOmidoPHKx6M89l8txnm+liFkq7zHTRIuAe584ncF1FVmlAAyzE22Om97O/uwaxQXSv3pF3lxiVjNAiBWrF/T91k9JJJP8YkZ/BDHidtm++9lVDtQSPtcVU09IBEBKEvH4wTEQNGgcX2zImJIlL4WE2AjGgiEbKpALkjmZM2DsAI2sPOloTuunrs3OLEOZU+nu4gR6mklffSaIjfHBNg6WSqnRE49e2OLGUzzaemfGqOBJ5ycpQMftc/LSihzvk+xvzrivyd2CiCY8gGs7TvyPt8DgZSVNtNQ4OlUL+/TC6IIx4SwGok2zHecXKbmx0AUXD02L2SJW6hsojlrR/KW12uQ6Tel4D3h5QWEtvtJnG0J0t8p2RYKSlBBqDpaMHT3FoLHxB41qmkhvP8izEJlScvaBef8WQ00kicGlbKUs0FueNv01ayYQdm0Vxb3zPPEqFoMzABCUVkD+az878PWmYne18LU+19dVu8zkIZ4l1fhGDvFDZs9GqQIjMtq8wHRb192OouOtRTrMViM7FNiS644kEyYN1j7aAd4XSmBTsHiqNSCbvt1s/VuFyveziVr+H8LfxVA9FeTx9xy1+OHyxaCqxLqpHf5qige9ooz76353bxER82RJq9SNbzyzLSqFplLaPGrjrzCniWmjgWhoUTcRpfBxpnfQahLL3sjO6kKQVc1h4+txVYxZyIbJr25W0EeB5Omwi9+wc0oyN0BYf1TH4wAurptA1Y6aE5TZ4PUQ0kMJCAc5Iwr/M7yeGwtfqu3g9+IXVXc8x/tuTIpntjhHd/C6yTx5h0KEOc7yy0go/A/OaLSMOli5obeBzUAh/8zn9WjKgudSR0KzD+Q9EtXnO18ItiXM+2Mtaf87nJ2P7mm/LyMPQhQa7j3sRXSftS/n1vBSDc7pIlwtgrZxwum9Wz2+6UdXBveU9JiwqmQ== X-Exchange-RoutingPolicyChecked: Mqqyy6c7qyncdfc1WvooaRDmKRoPHDLo4SZjab7RdxZ4ttSW1XZmv080afuT7zl82W+jBobqeZwIoPl1WuQV9lZ8QQX2UzblqrJiLssBAzGnCbzK7tuc7es9QiR+GoLjFFSwdwbwH/SCM+bqcLouSrhjxYbZRn4CeXTPki3x4tcqIarHuZMGLShaLFSg9z1nzDGApV85zBDSqEE85IWfECeckTUF5DhqDPdP0rS68MYfgX6frIBBgykkfQeDRGEt5rbnkbjnLakGMGivz1v18IOG4HT/9g0pZs7QiY8Hai8aCOgE/28IzLyopN2FYik7/kThGEu33Q4hgYjwX7+Gdw== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 289f9ea8-9066-42bd-a1ea-08deb0afeec1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5602.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 05:24:40.7263 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: h8rTpVyp1TtiG/T4oTmeK3cJMYIbkLKdE187nv/UiV9Ey05o/88p3XRs/sOXkECf0hYzVMrTozwU0slmvIB7Pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB8855 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDA1MSBTYWx0ZWRfX5paIFe3KB0ur C3r3vYXpFQq/tudRrjsvCqmMy+vjjwe1BYOs9Y9E0MSo5HPe/7hpnWwzjXSh53CdsW0iy+tr749 fuxsQ8JofGHsNhRZdB2TMO1y5T9iPB/BbLdc2F2g2QB/EUztgPzoHMuJeS3TC07Vt0LF5Ifka2U zsZ5HxCPLqBzJcZ+8qQblOjYhgP9CHvbKrifI/8XKLHEcf3QK1YVCQ83DIh3bPwP5x9hYWBWgkO hxhjfRbOITKwgBIWeDqiTtM0xSws20W3jqxjN+hGzdLxiyui0xumSgz4Hdke8LltXjXBxchL+BV 9k1xpPdKfA/RAPnQ/r0wWubYWR5F9WKQ9otsQMr573jz7MBFd8L3dWe9WT5nfbwXHM9Aw0OGyMP /vvAC8Xf5IQzMnsqYzc+WbFiseK1V/waUDhaGGLp+a4Qo+9b2eBkG3H+G30YqqLizbP3Uz2Rg92 +POU0VYhi9f4TmmuM0A== X-Proofpoint-GUID: M5WG1ZNCCtPnzQ4swjdoSJUapl5OXWAU X-Authority-Analysis: v=2.4 cv=du/rzVg4 c=1 sm=1 tr=0 ts=6a040b1b cx=c_pps a=WwHAhc24fKszT02xmrP0gg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=rVcF9mjB7NWXllDnQBEA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: 7Lsyu52oiQ4luBYPa9_pVltLnG6qfE5H X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130051 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 13 May 2026 05:24:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19501 From: Chen Qi We want to be able to do stable version upgrade for recipes. For example, 1.0.0 -> 1.0.1 instead of 1.0.0 -> 1.1.0. To to this, we need an extra paramter to latest_versionstring so that we are able to filter out the versions we need. Using regex has the advantage of adapting to different version schemes. Signed-off-by: Chen Qi --- lib/bb/fetch2/git.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index 01bebb764..1e132c502 100644 --- a/lib/bb/fetch2/git.py +++ b/lib/bb/fetch2/git.py @@ -972,7 +972,7 @@ class Git(FetchMethod): raise bb.fetch2.FetchError("Unable to resolve '%s' in upstream git repository in git ls-remote output for %s" % \ (ud.unresolvedrev, ud.host+ud.path)) - def latest_versionstring(self, ud, d): + def latest_versionstring(self, ud, d, filter_regex=None): """ Compute the latest release name like "x.y.x" in "x.y.x+gitHASH" by searching through the tags output of ls-remote, comparing @@ -1012,6 +1012,10 @@ class Git(FetchMethod): pver = m.group('pver').replace("_", ".") + if filter_regex: + if not re.match(filter_regex, pver): + continue + if verstring and bb.utils.vercmp(("0", pver, ""), ("0", verstring, "")) < 0: continue From patchwork Wed May 13 05:24:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChenQi X-Patchwork-Id: 88000 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52394CD37B6 for ; Wed, 13 May 2026 05:24:53 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.907.1778649886424825330 for ; Tue, 12 May 2026 22:24:46 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=Y60JvDar; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=959349fd7a=qi.chen@windriver.com) Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D1c4jR010818 for ; Wed, 13 May 2026 05:24:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=3Msu7VGPBNSik7DqiP9QgBDdmBdMMdDKggXjzbsBbIs=; b= Y60JvDarb6ynC60XxoE+Nkmidqwbr2pzZDsDCxE6J7saXAhsfB/Dlf77LIyMMEgI UKrE1L/Kaa6s+b6KxXTLOT0uAojOzvAnS//JTwqrFQU7VdxT+f2UvZoyVecXqQjQ tvscjVxczCOk+tcoPBbo0aPRqiO8LziLXv3Ht5B2cC7eX4fRijdeKEJBfnsAWdgN h0UPxx9Q9GU3aFp3ci6YV/vuSh2zDcTuROHfZ+x8B5ql1OgS+Y4u+2/sKUFQuUWC Nhtk45pwJFUNaNzus3zTsCbAvdw1fMRcT0HGJmSTkYYtZt6kXJeiGEVE+BT1n3AF T4yC+NucSVnS+uPDjG4GjA== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013007.outbound.protection.outlook.com [40.93.201.7]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4e4ft787p1-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 05:24:44 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DdraJkHm+NjykHPisHRk6wX8JhlJu7VyIt8YWyOxfkzG5aHbP/Ctw2d8vjUWXjgQ+KzGzwxRRSRgX+Q1iOmujUWLNAd6ssyq7QJUHN7X5yXmGGET85QF9Xt5f9mtTstT7xr14QyzUkUGY/1/fyLJLSE+mQG7leWFbKXrZfh8zE3oerIZ/+HG8xZ2tZmuQyiTa6ImylHBoKRRl5BAN7QZluYaAuO2mR1gn+Gbl/qnTRJhOLrpYXcAAWM6cvyU6z6xShhkWyBbjarsNKg5QTjhCvMROgvA4XkgpPoHxftrgPQnz2dX/5sKqbVEjL8eygzM9TfANaBmsGxG1jW8FDxzTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3Msu7VGPBNSik7DqiP9QgBDdmBdMMdDKggXjzbsBbIs=; b=XuIbVVfMfeeNHIMvaOhrCDm9km40kIMlOtorpZgQIyaX8OPdSAzUh2ZbLrDKlmbhlFEECzzYe6HEjkEhk4Kp6ETg6o7xVoCDhDw2x45lp5Sxx2A3GgL37ONS8kqmP89MFVFdRNl3t+O06J9dkZSPgDB3pOO3qNBVrxu+A04ZP5ojKrDd/1LMY3pfNdPQn8JjyZrc/V7uXNQpgE6xPO+Gj7+m7iFuF/OAq3OjRgsZrgpreJjMwHfr0fUrZD21s6NliX8F/fibs1vAJFGAKEZJU6as+U+Mjf4pMig3cY92ViH0XFCav3qbDafRnCp0gyfeIZYvBWveBevoyp8Zy2vMQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) by DS7PR11MB8855.namprd11.prod.outlook.com (2603:10b6:8:257::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 05:24:43 +0000 Received: from CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62]) by CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62%3]) with mapi id 15.20.9913.009; Wed, 13 May 2026 05:24:43 +0000 From: Qi.Chen@windriver.com To: bitbake-devel@lists.openembedded.org Cc: alex.kanavin@gmail.com, randy.macleod@windriver.com Subject: [bitbake-devel][PATCH V4 2/5] fetch2/wget.py: add filter_regex parameter to latest_versionstring Date: Wed, 13 May 2026 13:24:21 +0800 Message-Id: <20260513052424.2271877-2-Qi.Chen@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513052424.2271877-1-Qi.Chen@windriver.com> References: <20260513052424.2271877-1-Qi.Chen@windriver.com> X-ClientProxiedBy: SG2PR01CA0179.apcprd01.prod.exchangelabs.com (2603:1096:4:28::35) To CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR11MB5602:EE_|DS7PR11MB8855:EE_ X-MS-Office365-Filtering-Correlation-Id: 45dbc384-a45b-4526-da2a-08deb0afefd1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|56012099003|22082099003|18002099003|38350700014|11063799003; X-Microsoft-Antispam-Message-Info: jcLczrUYoESAsiWu0xkelgog3GU3q8CtHSwAq1bJEDNLL43rKUgvgslxaoYzlOQkQ3/lcoKcNlAljbxT/hn8Gks3L/pQJ6e4aK+J+ZQZuKJcVy3z6dPaPshoZRpNYzFloukV6kGKY4RcSeYWI5iGsMYn6GqfBfrRbJYb9TJYdi7c9MRovCdHVj8GqnMLQCVggtGobykrMMCitrv0Yjg5BJOGxTgY9CKswEfX4SIqX6UQMnZjpFbupZ66KPtFch6Xkdfe30VmeXtq7opKoZLG4npTc+1qYHmH2KR2jpMZzNzABhXp6gQGv11HKPzQkOZ9N2kUiTF5KPZDzvHF7PJ2RQpcuE/TfIw+6Rrhy1mWsxLqeh9VSxqnQ3lCSRnx77r5eFH2AfHLVFo0J+yunutgWsuLs5obxrOf1Yu2iZDyYBPwl0kMVsvMWZzkmjARXNPfhjCSlVF7Aw0gw/2leCd85diTFYI6XP9Lhd8M9FRyhqabyyI1M1ea1g2Tzmjbni+NVRzrFQri2u22Kga/CkNCJYJ3Hps0BW4z/TP3DdJttctJcbCRhNFrSbQUVpmVHJBl01BTsdkZk2uwBUlc6NwERxdxqksRJWbcV/GjYY3M5Wb+U19jByxgu29DNn4a7Kakqxaq/bstZNiItD53HzR8EODOhfcvWjIq5OwnqqHK3Rp2TjzQqUooyt+c0fO+0yhGK03C6smaieTkIbaPAw40Hy9gw9OAaFCxFQY168AiuV9oGHW+Sz+ZMnTWJvV45gRQ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5602.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LCdtXr3mzU+LQj5sfpx577n4qmNAIE0HA1suGw2rmw+oA8lYlbQZA/zm4y/H6mu+AFOG4LPkaMCKARf5e6zHEhrjorsC09UXuANoNY3YpazhOy4yVtVf9BAS841aQkbRD5EN/N9r2Ns187GM4PxFaH9wpoNUMre8rfvheTXZjzycV5S5sTYTzDnIaeqDsGOHi6QnmUaymZNrmx8fc+vwX0PpgxFtN4LU6oS3D+XqV++BAu1yMIrqXRdDFnUQ+HXbsCUx8EsFPNU7TixPo0H5tB8Ds6PhCDFpmIrVOBhpDMYQsbjlVMIdmPmqIl/v5VkQiXbL81JUF5Biayg2nlCaqo0umpI3G2h7/Dq4bMGDvzh4f1zvmYpbgrayekDkB61HaAgu77/C99dLJb+g+Ric91MiZqsgkBFR7LYcSWP2L0PzXrbz3rd6soKf7oesV2QDMptlFz2Jcc05I8QMVz8GMrvBPZHHwMMbsMRRLDTi6jDGb6jFjoLmAeLXw4mKzwZJ5dH2N075gccJi0tUFcHsJVKJvVdxyBdwdcryboF3zAaVNGeYSy35QemgWcyThX1VGyK/ade4BnWjbO5BelJi6cPAgGzQzYZYQaUkGpn2sfRYBeDlWtUG4NuKyFZxsZnOgLVLrh2wEUezM/knesh6ufibsAjOh8lULHnJfssFKNDj67HebhR9OpZF82avdtnLnYknOYXe3FgfluS8pWT1JCe0zYcYCSCpnz1eX16AQhGctaW2kn4RhxbcP6Q6hwQ+PF5wQEQr4S3dvFwYVZoK7BQWxOeGt46v+ak68ULf4penu95bNQzPM+jxCNyLx1zCcmlJ0LuQSkWrYCeIGkjxCiwrUBHhmHCGdKMJT6Qu2/otvDTb9MntP+R09DQe/Jw8UxfRvXQK7TdqwSnIZ6o4ezLXaHswu/xyUqQTOnSnh686W8YVtUeCy8Fo9pUghU4QjXh+4QtT19BDD2B4r9aGUJEHDVDXTOjHsqGxyfViuQg0EadEOGdFJuyJAr9WXYWbFbLeZ9YPkVQ5zz4Ks1DcJfCTzoI4uxHuenMSyA67gAhwTrB/ccECt5yd0QUjFze44Nwp9kJCYaob3AXbW2a9eAGRF9iZOoVszm3mE+AsyZkoBb74eu3x3yVzg6apTejsMadBxxv6lb+0aPiikoyzkmveSzCybjW11sdax8KqUulBrnrxpfrJ1CftakoccwlbhCvIEK8Sj/dIvA3TMp+Op3mTWcGWx6BGALzua9E0hmo7vGy/kCjs7A0wRhPTAqt3Hao4KiXflcC4t31pHKCVc74A3hXQyMuyNqFXkAI8m2/WXteUVPEUrYPVg3OSXkOtwV6rwFPUMUnHMGXnMl0hNs657Zot2QuQpryyb01hJysel8VvnDfeOsAi7yi+Dl+9aB/WnFFHcJi1+rJ7IgV9dHxrZ4kaSlWfLDD1oeKbGnHRA6f1X5S3O6umd2GmAFZtOKCa47QugqSlV3WSeLVlXlVBdFHRXDicsICPquDgQGwwemQ5DyDY32xi0sb1xMzrCAWEJS35cU6BwGLxrFDcN5hTEWjdOgnOSGegOFP3rhh8ggp8uMaZ887AvIzmoABeYUnSxOqaxnxFrURAljbj+K4zsRjDUu6Rw3VCO8N772csuz/jszwnSS2FuCoIDDld/UpQD/awvp+0aNzriQ3cDYfQOzN87QlNf8JtI8MeG9ZnHfel/2yAb8MmWpGpJ8eeJv9ezgzyoV0GpYxFCyO/+g== X-Exchange-RoutingPolicyChecked: to2aJjcmWZc9RWnFNIU2wjz3L2/tklu+EpCa/J4+goaA6zIR2TcemtPlbMQrihSXRP46MXBnJL0lhv5tgJPtzbuPL5EWz5EnY653V015bguXrDZVvHbWwJInOSBSMDB0rMW/BN1tKCaj/iRKjE7TAR7OrQHhlaHqA+DIr0qgydYFuItZ9fo6BkUcrNd1uNmVNfr5Veo0OiJo0JIMkog788oROEtjetRZ1IDbkQTR5YPkWeo9h+ruknHXHK98FtAjzuaHSORwmMPLYfKkM1EQ/b+Qnu8UFxVC7QtT1hFARDClRBkyDJLCmY2ExrzbKjnNDhKLplcFzB2Cl0YFZ4G2eQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45dbc384-a45b-4526-da2a-08deb0afefd1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5602.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 05:24:42.8979 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: b/wefVhrtAW7LXAWoe5O5/GplHU0ykginwUV0zTKvF/oe9FJujZCIAsEkuFTs04KzRJpSKtosK+jGl/XDVBZJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB8855 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: jScP6kNdRbJqD5fKcAR6ty0VP7qUmrSc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDA1MSBTYWx0ZWRfX8fMYR1pCIsm3 ofSo6PWPA7qWe/gk8R43MIqdGUzDYvkKn7Uz1BH51MkNWJ+dkIxsw/i7PSLGTBKrlXr+7QaTDcW aC8JwikoP6Sk1jwlZ4aPI65/qc593LOaS3/5+zr52t5JeObX8QZ/QthZClR2ZR6M5duqvmZiIfJ ehzrYB6/+MNP78pFfvyvrpeFuInMTjdYeaprGqtKbshHMA94VOn+XPg7vecA1UznT1pPFrKK1QC uoaP+LkuH5i+LsRPfVnMqRbeQ80tVIFq695jNmp1NeKIBoXjHriq/hVFto25RhY5rjqngn4OWp6 J4SJI4f0EvFdJVT//fEz4Ltc/kZrAddyG/WGGSqvpI1UzQWRFVcZ/vO24TlApX8yXhs6YbXMMae Ck8iWzlk+k/Gu/32ZfbAcWQR93+aZE6Xh0KH9l5iUH29CgkGbz126BU74vBzl0HRZQ0MPZ6GuvM S9KYEwkEZ1ZAOgkFP3Q== X-Proofpoint-GUID: rerVAtGOHjOQfjzbwie1Pe6RsV9j4K7c X-Authority-Analysis: v=2.4 cv=G6As1dk5 c=1 sm=1 tr=0 ts=6a040b1d cx=c_pps a=PxTiP5NnQLoflLcDylFrfg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=klDOsUkWDRETUCZYPvoE:22 a=t7CeM3EgAAAA:8 a=zn5JUfJC_tOmDknYn7cA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130051 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 13 May 2026 05:24:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19502 From: Chen Qi We want to be able to do stable version upgrade for recipes. For example, 1.0.0 -> 1.0.1 instead of 1.0.0 -> 1.1.0. To to this, we need an extra paramter to latest_versionstring so that we are able to filter out the versions we need. Using regex has the advantage of adapting to different version schemes. Signed-off-by: Chen Qi --- lib/bb/fetch2/wget.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/bb/fetch2/wget.py b/lib/bb/fetch2/wget.py index 6ac4306c0..6e186e1ca 100644 --- a/lib/bb/fetch2/wget.py +++ b/lib/bb/fetch2/wget.py @@ -492,7 +492,7 @@ class Wget(FetchMethod): return fetchresult - def _check_latest_version(self, url, package, package_regex, current_version, ud, d): + def _check_latest_version(self, url, package, package_regex, current_version, ud, d, filter_regex=None): """ Return the latest version of a package inside a given directory path If error or no version, return "" @@ -515,6 +515,11 @@ class Wget(FetchMethod): newver = self._parse_path(package_regex, str(line)) if newver: + if filter_regex: + # filter_regex is derived from PV, and uses . as separator + # while upstream may be using _ as separator + if not re.match(filter_regex, re.sub('_', '.', newver[1])): + continue bb.debug(3, "Upstream version found: %s" % newver[1]) if valid == 0: version = newver @@ -532,7 +537,7 @@ class Wget(FetchMethod): return "" - def _check_latest_version_by_dir(self, dirver, package, package_regex, current_version, ud, d): + def _check_latest_version_by_dir(self, dirver, package, package_regex, current_version, ud, d, filter_regex=None): """ Scan every directory in order to get upstream version. """ @@ -576,7 +581,7 @@ class Wget(FetchMethod): ud.user, ud.pswd, {}]) pupver = self._check_latest_version(uri, - package, package_regex, current_version, ud, d) + package, package_regex, current_version, ud, d, filter_regex) if pupver: version[1] = pupver @@ -637,7 +642,7 @@ class Wget(FetchMethod): return package_custom_regex_comp - def latest_versionstring(self, ud, d): + def latest_versionstring(self, ud, d, filter_regex=None): """ Manipulate the URL and try to obtain the latest package version @@ -678,11 +683,11 @@ class Wget(FetchMethod): dirver_pn_regex = re.compile(r"%s\d?" % (re.escape(pn))) if not dirver_pn_regex.search(dirver): return (self._check_latest_version_by_dir(dirver, - package, package_regex, current_version, ud, d), '') + package, package_regex, current_version, ud, d, filter_regex), '') uri = bb.fetch.encodeurl([ud.type, ud.host, path, ud.user, ud.pswd, {}]) else: uri = regex_uri return (self._check_latest_version(uri, package, package_regex, - current_version, ud, d), '') + current_version, ud, d, filter_regex), '') From patchwork Wed May 13 05:24:22 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChenQi X-Patchwork-Id: 88001 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 609C6CD4F21 for ; Wed, 13 May 2026 05:24:53 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.903.1778649887854719076 for ; Tue, 12 May 2026 22:24:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=HOhnnjMR; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=959349fd7a=qi.chen@windriver.com) Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4nlbC299847 for ; Tue, 12 May 2026 22:24:47 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=I9m4m/vW7RlB59hDxSNOXHoOtkJ7Yv38NgNQAfoBrZA=; b= HOhnnjMRvr8+FhJhALUXrHl9wKrCkUZwn9YCn5khj5c0dsxGBDi0sQgl7TL7nNCT YHBj7BJ5i794cmAf6sbIfaSB/hyBb/EJRmEsIe6kbv0wE3xcNB2IovqlWhQjdwh3 nUahaCxEo5Ln2yayTOKouvpHVnUgPQRiHIDGEDceaeYgqPGqOlLVSHtDRVi1JOd3 a/JfY7xMOTeHSRtnXacsEsn2pZ/5ZwPZjxJZLYWO6e+SZaz05z6ZukS+ey7VquY1 2EpCtQldgA8DfSxSKV3WtnR467fh4Y8jLmrFM5RVW7Yxd+NE2xHN6uJ+XUmtkZZB rTVs5iJI+eQkMpMg+vdkJg== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013012.outbound.protection.outlook.com [40.93.201.12]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4e4g7g8625-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 12 May 2026 22:24:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Xx+qMJ5DIEb2MK3BrGJkIEiLFiHhyJtZlre/rwJPhYDbniBTi/nXJYP3uzqbKklhk2PbGNnD01DeW6d1hJMw8SHStWd8glNbj5s0CXDUliNAhW7V9/XM5uz4xcHle/QHdjVq7K6yE6RU8c3ft9bg4iNo54zkWZXQ5m1nXiDeTChVa0NICHBMSoAIrsxrOB77fdg2jV6cZcLwcUX4aACg9KaqXzOw0X+uOeBFKP+cdRouySm2iQtNpTbHFWm2tUCCFgDh+boRU4q2/i2Ju8pyltnjlORKs4ofpJS82ObMweZY4LO9C+X0Nb+WsRiFR1XYS3KzdMvRiX/OGD3AR8xxzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=I9m4m/vW7RlB59hDxSNOXHoOtkJ7Yv38NgNQAfoBrZA=; b=E0h3L+ok9R423f1Nmz6c5JJpvi7eK9zsR5ku3giHL1PCIfjB9Blrkqr43ToE2MEsPOCzpN7zqvlpQZxVDSCrIhvV5HeVMmFPFBCnLdfFJ/9ZPovjNMIeVmwTNr/01CxMD1zzSlw1rjlMp4Aezv/4E+pEpooTxU/A3yYJcE2WF/s7ywxLNywFSCcasuwvrxmA+okUlH33/DRf348rwPsAb61cKiTU4TVlqs1hT3s9KyodwWccUk695tHGon4U/mQZbh0QppKHY6l/beiMxoI5VH0CwRhRv+hr1tCBw9/NGBJnZHFZZE80rI214JrkMaazw/JXJFBsz++GjGhrA+/WrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) by DS7PR11MB8855.namprd11.prod.outlook.com (2603:10b6:8:257::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 05:24:45 +0000 Received: from CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62]) by CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62%3]) with mapi id 15.20.9913.009; Wed, 13 May 2026 05:24:44 +0000 From: Qi.Chen@windriver.com To: bitbake-devel@lists.openembedded.org Cc: alex.kanavin@gmail.com, randy.macleod@windriver.com Subject: [bitbake-devel][PATCH V4 3/5] fetch2/crate.py: add filter_regex parameter to latest_versionstring Date: Wed, 13 May 2026 13:24:22 +0800 Message-Id: <20260513052424.2271877-3-Qi.Chen@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513052424.2271877-1-Qi.Chen@windriver.com> References: <20260513052424.2271877-1-Qi.Chen@windriver.com> X-ClientProxiedBy: SG2PR01CA0179.apcprd01.prod.exchangelabs.com (2603:1096:4:28::35) To CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR11MB5602:EE_|DS7PR11MB8855:EE_ X-MS-Office365-Filtering-Correlation-Id: ec504881-0932-40af-4224-08deb0aff13e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|56012099003|22082099003|18002099003|38350700014|11063799003; X-Microsoft-Antispam-Message-Info: p7h58Zph/EbXt2XaIKq+SExpFzTvTH27bKzWnRYEx5EoXNyCPJrodr/2eAmVuzCk5Te+3l2eTrT54d+fra58aOEiMJkodIzdO2k1LuUA5GJFpeF5s/BcuIFWzgzXJPFgamSDGpwhyuQURH+0PNu77i4Y5ci4wAdjavoVYJQuM++LTU9mUQxBO9B7ik1gWffrPFUM0eZugvwBPnDYzSLhygNbcrOfUgH4xuzkbVVDQOf4UH/aauS8jI1OjwzQ8AbUhF3rLkdhn/bjKZbgM6jy+0dwoGURk0dWJ9zcG2rOUqlZjHcGWAw1bjLqT4nnSGUusjw1Lh9WKJ0vGtKtxp85UFSRIPHdJ55ZL/G9rHB3dMmWST8fI0BppN3Nl6wEy/TxDCLix9hmC6Etic0TFyadBhibeRs+6bSc6IyP+rOpqSSayirarbXokagC15batFcVLjPrgGgGj1u0xs3bZJ4fwiG0ioQtIEQJHac2l4em06WIglXVnpS5z+mMVwFANPkU/EBrX2uI0xq+y41zUz/bJnnyqXnryXGet6udb3d7QU8AuPrCWn40rzSF8IVhfFbofnducB4DP1jeV2YV+9b+lJaMrpWmzR1prP4Qkdz9hIMsjV9IC+7yJmg01/4PWoYP7KqzY52krJcfkBcEJBObaKOn9B89KgUIRcj445tI0JF1wSNni8gSC81xo+FZvt8Q X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5602.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e7GB1w9+twOfczhJfnO9KnidYGGslwuXgtb8FThwwbCAWRpsct5s+4aR6hOfIKGdXfeWPCEGcsFNP1OdD1oYIuw6kHSSBnrEXHxhQFbyZ2B5LAaji92+mbstwyUnMagvu7NKQoghgecdNHvYI8GBokeFk4woy+MT/zGaug4wJGUAXgGeK4HqIaOEkrg3l42PwFfL/dxrrAT+IkKwblsLdU4htnTMFQdMUYKniZHK9jORWA7e/rRRyiWAKd+z3hX+u1YeWQPl60xjsbDw5Wg1CKuWQBT/6H15omaYodakMyI8FhK5V5DzDGNj+ysk33Hq/V2Ps8YEr9+XkyBJ75MMcn2+4S6PaGDAX9gmkzDxlNol9iGYHXaraBrmuw3d9KIrkHW5knrZtFrug5EC6R4fHaJMVJeD7eF9RrDfcyQLJmMWpNFkW1nP8lADX+2Tv63yD8EPkRMc98kylH3dXrUo6sDy939P6101RGujXWZ+/7a7glvnqlYaGsz1bngtdXrhyzyvnJ8DhkC0Mvwt2UhX2EHoFeHPbTOZVRfpjsVdJMCqg+T62pvHSRMDAQYW9+X2m6bu71ocMVhAeCxLHKK9i8aaqIehgCxRmOqib+wDK21ndTKNu47IhT8liyCR+8ne/4U+wWAft/MOphV/BbeSQgMYzfz2gbeRkJPGNQikFoEFnZnF6g0aomDjkpP+kg1oVOo7UfWbHG5n5hy0Ms58phrpmpXNtdRppuEIpMGwZynfb/e8sn+JulCJ6dsXUnbPjeArQtV5UuhbOsZjElLILyoth6NVumX4hhJGc67phffcoGpzUnKLNLGeaIu7YDrsRvnnigbaVrS8q7LeLQODC7V+0THZsPAG8Ze9SbGx6gmjieL56OsOlpNbGznrlsWXVjKXZFt7jBfAd+6Tb+hwgmV9o76dLVhSp9OFsoi0hPYiGpVq8hYmn+1ERh3BiS5k2E2ulQ4//dyaRImyVq7Kg5cwoUh+gS18u18cbGZeqqvlETASNnz+/DR6pEpGQk+rvZtXu/7ZMReHREG/rZD2OnzyYLIdylakl1K4qCfdg1WaPHSjbIIRSUVWfJ0N+wrwrs69r1/p/8jvJMe6F6RxaCcYaQFKy+jMNN8nALUhZe27BHl9mdUM0SmKFZhs0gaImAXMPPzDYZPI8rHGq7lu4FIy8b2rYQHx+XE1CWXPfSlojJAUkMDJZk5Aw821P+opzHCfI8ONqb0ovI+7pgZ4BsMoq/ReFzJPYCzAFQDyd+BK1ht+Za5NeWne/URsvLEYXZAVB1uMfaghfod+XDoGob+q9a3qnDMfouGRvCN04hH7umMeWeuUWFo08Z9OJA4krQ7+7ikTbOeKDS4bteGIlf/f04mtCnTIrl5UQFCfxWaFqNY2YlC6B7YE1xM7Qi7+k9STieANDbSq8pKtDtmfC5CcNnq8UI9c/NUNOIsUw7sjvFepLSsOGVxJASSVz9RCgt93c8mpZBazCN9cTrErOBOCxyQh5YR7oFOWRsHIEq/KKDjLDcr79wtptF0vZvvyFLMpJsA3rX58+4xumvPuIBcu/KuW41FEhOJHQ67/fetyeeD3r5ZVXkwpamyIBZDzzqN/dK185vGi2+qOL6fVsEuKlPN2KuH4nFM4EyweHKTrV5kXoVFrFGYucglpyMpIv49IC2rwlFzwrg8etC+iKeJkR/8/2LQFrra8Ap2OZPNtBuLpvtkJcp0qkYMKtEdPw7TFL9O2NjI42/TS0kCzVQ== X-Exchange-RoutingPolicyChecked: e322VAnbE8iwubBZAehlWBX6U1Zf1AT0JMBFzrxiLDn2VQNiMSasi204QtMBnmveSCyYqGTjTBcwGwVCch5yuPSoISxsMl5xzTevFAVeVA2kRewccBQX7nNVuymiyVe50p/WZSBPGuY8Bz8Jo+tsx5FA3BsKL1XFiUmRbojNfadsQbOI4EOyepXT7Lb2cO195HAQLfPbG1AUGU0emFexhYTlDJmQU0G/+5ZE5vX6vIfQp98clc0t3hBHQk7C2iVsscQzpZCIS2s+biNfwLUm2zJST/8hu6paGYrnpuFdDA/kBpBb+lV48IF4osV8u6OTleRWE0hkXouk/9H2ScFmmA== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec504881-0932-40af-4224-08deb0aff13e X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5602.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 05:24:44.8412 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fvY51052cmkFqsdlre9iC0ANyQE5WE6H0WZ6M/A2zNF+hJA0Coe5fnj8iAeLP+zVlLxLBI1H3h45qdg0wRIYCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB8855 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDA1MSBTYWx0ZWRfX5FV7SK2YgQdG 7TahceDI8wlpYx6XJFdD3mfCoI8FWkAjiIb1aEDfSZE0lp9b8oALbAW+BquQE2FwHAHQ0uk894J h42LzA7dWJuuzudTgLdMQiBxnWAk5PjZsXLpM4QfgTUukallfegytAal3lJyH4xhXcyBkaUcMIe iqiPUTfWqv+Yvg17Rwz/3LpT8Sv8wjRn+vyeOwf6aVZmUVPtpc+HjZj47y4qX5R/gYkCp+wt2Oi YLR1K9kNpAal86OVNjKh+52cU31Xzp1lSc1TNouM3ozwR13FSyVetXULxBDLb46XwN9koiv7IrZ SEeM4v1IlznwLHY8sbR4Mn0FAX5ZY+rPkWa/a5uy0gQ6UucZqgTkvfUpzZpjNE1Qrtk2qJTrHak EI03Sxxi1QuEWM4Y0voOE6YE5kOV7YZgH7Be5ZngaWx0W/aAtdHtVeZzpaq/dvr/6lE0k8Z7Bpt bxVPbz2w9EU9d1zawiQ== X-Proofpoint-ORIG-GUID: xquF-Y3-GiMwrdbQYOrxeXQciWgKlaCg X-Proofpoint-GUID: lJBnmszRg2yEUE91715HjXToK25YAj4H X-Authority-Analysis: v=2.4 cv=Q7jiJY2a c=1 sm=1 tr=0 ts=6a040b1f cx=c_pps a=4PCWzz9QFLYZoRw/GV/NtA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=OcE5tU-iAAAA:8 a=ei4SEBeUAAAA:8 a=t7CeM3EgAAAA:8 a=hIPOLQWK0ZafnOV6iRwA:9 a=qwkNQZnGtIHGNKTLT1RO:22 a=8zIOOLb7Ym0NljyPXbuS:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130051 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 13 May 2026 05:24:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19503 From: Chen Qi We want to be able to do stable version upgrade for recipes. For example, 1.0.0 -> 1.0.1 instead of 1.0.0 -> 1.1.0. To to this, we need an extra paramter to latest_versionstring so that we are able to filter out the versions we need. Using regex has the advantage of adapting to different version schemes. Signed-off-by: Chen Qi --- lib/bb/fetch2/crate.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/bb/fetch2/crate.py b/lib/bb/fetch2/crate.py index bb12f4e9b..8f928ea6b 100644 --- a/lib/bb/fetch2/crate.py +++ b/lib/bb/fetch2/crate.py @@ -14,6 +14,7 @@ import hashlib import json import os import subprocess +import re from functools import cmp_to_key import bb from bb.fetch2 import logger, subprocess_setup, UnpackError @@ -155,26 +156,27 @@ class Crate(Wget): with open(mdpath, "w") as f: json.dump(metadata, f) - def latest_versionstring(self, ud, d): + def latest_versionstring(self, ud, d, filter_regex=None): """ Return the latest upstream version, dispatching to the appropriate parser based on the versionsurl format. """ if ud.versionsurl.startswith('https://index.crates.io/'): - return self._latest_versionstring_from_index(ud, d) - return self._latest_versionstring_from_api(ud, d) + return self._latest_versionstring_from_index(ud, d, filter_regex) + return self._latest_versionstring_from_api(ud, d, filter_regex) - def _latest_versionstring_from_api(self, ud, d): + def _latest_versionstring_from_api(self, ud, d, filter_regex=None): """ Parse the latest version from a [name]/versions JSON API response. """ json_data = json.loads(self._fetch_index(ud.versionsurl, ud, d)) versions = [(0, i["num"], "") for i in json_data["versions"]] + if filter_regex: + versions = [v for v in versions if re.match(filter_regex, v[1])] versions = sorted(versions, key=cmp_to_key(bb.utils.vercmp)) - return (versions[-1][1], "") if versions else ("", "") - def _latest_versionstring_from_index(self, ud, d): + def _latest_versionstring_from_index(self, ud, d, filter_regex=None): """ Parse the latest version from a Cargo sparse index file (NDJSON). https://doc.rust-lang.org/cargo/reference/registry-index.html#index-files @@ -186,5 +188,8 @@ class Crate(Wget): if not data.get("yanked", False): versions.append((0, data["vers"], "")) + if filter_regex: + versions = [v for v in versions if re.match(filter_regex, v[1])] + versions = sorted(versions, key=cmp_to_key(bb.utils.vercmp)) return (versions[-1][1], "") if versions else ("", "") From patchwork Wed May 13 05:24:23 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChenQi X-Patchwork-Id: 87999 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DEECCD4F25 for ; Wed, 13 May 2026 05:24:53 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.904.1778649890087794905 for ; Tue, 12 May 2026 22:24:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=bu0D372m; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=959349fd7a=qi.chen@windriver.com) Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D5F6TI388089 for ; Wed, 13 May 2026 05:24:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=MfCY/d2kNcpoELJZ5YijNEriGfAryY5nxSoLQcGLd9Q=; b= bu0D372myHMzp4vf4tVfW3jhWitRm3GYB8qWvlenZV4VvaspdBZVcw38C8obuxRh wLkDNUJ6Ha0bU68KZ49lCdwGRybSnW8aI/TOxENKe3XznnSCKwEvp5/e4fV+jVH8 XpbEHNNa9+R6UBZ9j21ZsmSNSZPmzqAQf8Toeh0rUVTSyByagGPGGuEkKSQnR3df 8eQMkYiKDK+mXDb61u/d3MdyDSVYrVN0hjJdGYajozBSad9u8JUagypp19tszN6B M9DWYAPz+WWTKnif0UYuieoaSPKhvgzPU7GT9E5KyvDPyxC3KMFwhLcEK9vDXg3q oHu+uINsXpqfB3tYxSGFGg== Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013013.outbound.protection.outlook.com [40.107.201.13]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4e4ft787p5-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 05:24:48 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sz+T4RsDF3aKTNIFA1nuUwVJoumAv39m7AbVX7GotdbcI+8rKdV4wTUt8yD19D1d5OWva350OjnBS1Tly43aK1VjjYUsaWFiNW+ACWBeySVecGfAr/zVHL7Vd6JBYUr/YDk6GVbyvSfJxYKU7v8ilRSW0wqRlr11RqAZxIojhIJGX51tCmUt742k4GZPBpzZNbt1oHZkZAdoM3lwQ+0E/RMjIOcI5YoJ4yghzsQ8FFjrjOOVAG8t3r6ANJmhv+WLgdx0PgLsF4jZpGUbRvuPbhsIKNUrQtG4xO1m8evxKtZlHEcGH98f4NpM9skEuU3l5xuHPfaMu+2XlomxelMviQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MfCY/d2kNcpoELJZ5YijNEriGfAryY5nxSoLQcGLd9Q=; b=BghDodv1zwn4LvzMhp+85LpYsVLdr+QYlMVh/SO2sfCgOME4QExbGgZ/qnS+ra9/WcQ6gU/Es+6zawqreuuCuU226B6Ba4cy/psI9W/zM2UlbdbHnYNTb/QO+NUw0g88cJkhBLwgMKNWI6RSPjXe9QzMwgggEW9HqqxW3LZ8b1Ndl8M8tWTHuDW/MliRnC2WjrqJMKviD36LExoold+R0qeSvTZsHR2oUuJHAWN60aG0EOhdM3jlogq8WwL17jVbayBJFqC0GmbB0ByqVvV/2F6ZH36Vom85Ng6UPHv6SpMnSPinBQNf+OeNDocslHJIvqw64TIPkfNRnuaQ4FuEbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) by DS7PR11MB8855.namprd11.prod.outlook.com (2603:10b6:8:257::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 05:24:46 +0000 Received: from CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62]) by CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62%3]) with mapi id 15.20.9913.009; Wed, 13 May 2026 05:24:46 +0000 From: Qi.Chen@windriver.com To: bitbake-devel@lists.openembedded.org Cc: alex.kanavin@gmail.com, randy.macleod@windriver.com Subject: [bitbake-devel][PATCH V4 4/5] fetch2/__init__.py: add filter_regex to default latest_versionstring Date: Wed, 13 May 2026 13:24:23 +0800 Message-Id: <20260513052424.2271877-4-Qi.Chen@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513052424.2271877-1-Qi.Chen@windriver.com> References: <20260513052424.2271877-1-Qi.Chen@windriver.com> X-ClientProxiedBy: SG2PR01CA0179.apcprd01.prod.exchangelabs.com (2603:1096:4:28::35) To CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR11MB5602:EE_|DS7PR11MB8855:EE_ X-MS-Office365-Filtering-Correlation-Id: 065d5c18-1394-4630-3a6f-08deb0aff244 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|56012099003|22082099003|3023799003|18002099003|38350700014|11063799003; X-Microsoft-Antispam-Message-Info: oFEeHxGx+JDeXJtisQOhWwsiEQLgWxNnxOi12f19eKFI7piOpk69fvbxFuzaK3zp38c8PmCuopRFFft++9J1g3xIEdiNjXwpIXbaBE7vQGr+G68dNQFjU8v717sVPN883Vi1vrJT0VXwGuoryuYemiqaBF5KMi5PbUns5PsSjbA/X0OKY4wK8jXTREQwY42INaf4pl1JARKfn3/w66tU53A9Dd/M1YX6GWH5NP8LiwHoRRryRBVT3KI1MhdQnkcAMQpabfAzIb0qLWYMrlqTfzBylNwePntfpmSpSdC44ef+ywliwMp7t8nx38K6mbBHJdRfaOwPi7n6VX6u4MLb2R2STCwcxn/hmLSqDbgguUcqrsP4spcJz+cWK8yDMM87PSTZtSG8qtOnVMP3qWD/9fGoo74YFYXOvQcQkFsFSi9n3FH9GW8X9HXGEMALyde7cn+hNn3H9ua466FOf4XPMwPmoesvy0zHkSGd8Bbs8e5yhtXz6ESRGD4wCJpRtIpiT7zVNtTDDC+ECuGwxiiISs9VCctg27nhl/Y8rI2+3Jv2TUjlH3wyF/iHAjx5GPIDOQb2XmZMV/wMSucqRY/JaySwl3wGw7eI5fl2lGf2QZh3z9vTr0dSFUNAMCIfVJP/N68Djz74AaNjCfWmstILnp9ZsKAyueFfPTLF2RoVBTir0+Dft4olB4sDxSNZJHuZhezAUUoZWmpmKKsQevT3Lh9HS/ez7Acz57ErcLy3vzcoQxnsjM6wwYn+NPt9nepP X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5602.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(1800799024)(56012099003)(22082099003)(3023799003)(18002099003)(38350700014)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZVsDn2m8aL9PQUx89PZn/GD188lxcfuALaoe8EMf2pGY+i7HQaEM5tUaGf/gFyVR1Y9IrcqMxz7GrC4G25RB6wWn08tPbf0wHUNQy+VigMa5SdsmFbZC0r2vn88eopCxGnM1IkpxMWe84eec3jr8V902anZRNvYvAVA73DShTR2DemijrxBz70jVS1wc/XI8Jv9PvfKcd/W4OTy2jVlfHPLJsURpRDz2GEzQeRNuAjZNO4h6tWuS2iJsPezcL6CDMGfqkktRdhyFQmqqQGHlj7hbZv5pYJatxc59BxyDJIeRFX06haKg/y6kV+wTZ1e/mKhWqb4SsMpVGxc1egr4g8JKGqiWOIqtQClDcoI6mw8EDUyzdFYBhiWfP6etA/WjL1LSTZDmMhBdpnQgJmSFPb1ChBARg6WUkYywz1qSJTT586517ny96yCmwUYw4inVrXKLRK4tZOGoDvM4/jqt/NuDtUqz0TN2h+8LitN0VxRtwJfaJYt/W+45q/JncpKgUMZECWG4khqTheeUam5oJdSrm4K9I6s8a37UZB+5DE4QGYJbRFNxMPy2BnP4Ort/Gdu3Vwjt8k5DPGt8JXBCP9eqQ7TIfgMm6RnJnV9PICVr1Hov7qO1WOjrbOs+HUjyXaB+b0FfT2IBRSwL5Y7RZ09MvBb40F4uVeBcl77XY5uM2ndJbD94kLFZcjSdAxS1mla+y9gAkowDja6a41wI0UIiomYc3L5SmqzTQdHFaO4WxBD030fBgzmr1tzLdmAmCnbzB9eTjnEbEgOtPodai48b+IVMot3HwI9ndVvXx66Jo9DkPpCn7dQGLjF++zcxbEs1uXOD469uQIHG330SPYm15+3NGHfBteLzzFsRAV+7aRgERfKVUABRbLP45eQGK6pEt85bnAYCBbZw5zI4RhH7q85rtbtLIZqYWbnJfFqtkg7IbWR2OkQ/qCFiqwuJJ1nFyJLD32D0X9epwUyS03hTaLC+q6KhoTmiW/HwJe5Rmzw+vZKenhkySU3bqGjxm5s3sbyhIIjyDggqChJaH8QedafcV/yVcUgKY0W1yGNSLSl9tEzvV1ZSOix5lTDjZiG6rNIIZp2bXG959Carvkuq0F/eAU2YZrw+di0VpakDJ2S0disNxt0NbNRhJdKQbXoZ7Kcjtut/yFV1wsuYsAt0RfeNC1/hGAoUm0f0ug3s2D31CwdvNBe4aMw4yG3zJyCIFA7o+liNEU6gw4v2tjY9Z0MtccAVxIl9n9z1/r7d7P/5bs8Hs/8PVWG/NWOqGgfIHCa8ZQpyKrNyNjgf0R1Qa9CRjXjFJs6QuOTYE9hbC9a7j/q1LKnMyIhb0oNwq0ZEhg/IpuvvrFj0xJb8PDkXMA0h3+Is6LdiFCy4HQjqpE6h4/OUBo6REgn20dM2LzpCBg5zmxq9H6eJ0qKeNWfmZDjUy0GgFAoOCxqEaD3CDhR7tZlNJqs+8nzgcnJjZlO4q8F94mzMva7+uArm/VGT4Koo3L0FSqhvTFT3VcDyltxcwq6E1uiV2d/3ZUKg0c98Ukpq2V6FsRTepDe7ZHHrBM0a3j8HE9bA1qi7rJ61jjsN4tuSLpnGjizsIe8ucB8ugLtpWOWMN6h9d++vhJzXQI7TDcid3FB0C4s7Qi/JHkfN3/RFoy/lROj2jWKArbAWnJ/GnhOzz22/jeyAv3tJW2ROqeobSgFTmTtT3s5YxaUBpo+u8oAJ0U0Sb/uWQH0HWwqzl5rqSMWrjQMbFA== X-Exchange-RoutingPolicyChecked: hJaJagaGTduvOT9yPPBMYhdGCrbXkBYhNBXK3hHDdea0Ey1nge6mFgMwhGJwx3tK2wUroMfhHY37dEZpmYAShFHZLvva6dQ4pLAOVzMw5dxX01l4uGQtNEWG48O/HT17K7YmhC0Y5W26aqgtAVtxdXtXK1SpqQdnhsXZFnkYKZLWnPx6dvZ3175b5y/+mMiSeAWW3YzzP1z2RRRkOxgs32PzK8adG/Wc2twzLRa23L9JMS2QNGVl8Jf4sOz2h7onuFjygh7bVPzuE2QtB5W6H2CRXAnzdBvo22HflLxEE1Cc4YbmkJOF5qukDK7qRnV1etC8cStZ7NpwoPjRIC8Msw== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 065d5c18-1394-4630-3a6f-08deb0aff244 X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5602.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 05:24:46.6654 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4kTEr1SkM2TupYrEB4m3l9JO7Q8h1njFFtJ17jlUrC9Om7TVYelQe0OBMv2Za/GZBZfo4C1hs5sMfjIXRevrrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB8855 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: sdg8eTwvttLAPXuxmQmcJfUSBk-7ApJQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDA1MSBTYWx0ZWRfX9cfvKNGnEcR7 HquKrCiKGuxydTZWtj7rNycPpLNiGnCxZElvezxSap4xCHPzV6/Jk01u8wHl8wThGzqzSOeMEm/ EmIrqznjh/iX+MY7XDEtyQmTY8YUuQikwitIN8DWZHS3hOozWQS4WiTE5uKc/oiiMLdtE5KmmeP IwH6pOyje9Fs1gMKHU/hHqDIzE7xYAEJlsfK1JAGmjSJVaoDzuQrdlp8T1JlToqzPQO06JhMLWi 8eMctQexxx1jk+3QudwF3rG0U+voveu6iUrpSz0lpqwwfVT1lWoZrJDaYJgyiDomu+HNnQSdJiS VWOY3NXd2s3NSr1DzzSrhgsjDjdInyItn9HkbX7hso/q3FjYIRDrlVAIstqRWISW+218bP8g0WN rXNslGWZ18ukm/PxkD/DhhyFIm+lPPiiwSkKWeABgkHczyzfWtmavy9XfA8siBlEBEznJ2mLPsl uHvUKuAqsZ+qJz4ASKQ== X-Proofpoint-GUID: TVDjHyTbfxrsRJQ0kcgebocL1TEUY2jE X-Authority-Analysis: v=2.4 cv=G6As1dk5 c=1 sm=1 tr=0 ts=6a040b21 cx=c_pps a=WlOtikQjNqa04qC7x4SRFg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=klDOsUkWDRETUCZYPvoE:22 a=t7CeM3EgAAAA:8 a=emewfCi5w9IOduBEDPoA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130051 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 13 May 2026 05:24:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19504 From: Chen Qi Add filter_regex parameter to the default latest_versionstring function so that fetchers that do not implement this function can also take the filter_regex parameter. Signed-off-by: Chen Qi --- lib/bb/fetch2/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index f7d5dfe9a..5c01b9a88 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -1724,7 +1724,7 @@ class FetchMethod(object): def generate_revision_key(self, ud, d, name): return self._revision_key(ud, d, name) - def latest_versionstring(self, ud, d): + def latest_versionstring(self, ud, d, filter_regex=None): """ Compute the latest release name like "x.y.x" in "x.y.x+gitHASH" by searching through the tags output of ls-remote, comparing From patchwork Wed May 13 05:24:24 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChenQi X-Patchwork-Id: 87997 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EA29CD484C for ; Wed, 13 May 2026 05:24:53 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.905.1778649891739278369 for ; Tue, 12 May 2026 22:24:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=Vkd4476u; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=959349fd7a=qi.chen@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D1cW2u011026 for ; Tue, 12 May 2026 22:24:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=RiYpszMLZUccCFfBv2TasOUCkouSI/Yrpn+KSLPaKs8=; b= Vkd4476u4nvwVBHB6WU8o2khbj0nHZ+vwE4if4GAgYf01DigekRMz9996cI8tx4r DEcoXll+0Z/pmb9PrSZ3ex1Qwm8mlrQBajpMCJxqRK3LTiP1JE1D4hplRnQsL3DA J6gDhW77NNkmyYVj7QRXvi7L3JOKLqi/Z1o06lrBCRCD54k+xKhdPCgdlp6saeC0 7o7ty3NP9mF5lihruW+Y1VFDEyIR7BMNAcsQkjmJ2WEF79LT/QbHVc+KbNFlyKOO xbWU5WVkbJ62twwh2vEdKoU837rfTigubsXmArw5i54dWWsBwbjArUEJ/X90/6Z1 C0Ge2cfE9ooBEX1DasbqWg== Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013071.outbound.protection.outlook.com [40.107.201.71]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4e4ftb873y-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 12 May 2026 22:24:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FkiqXq+nd3lo5YHQLsB6D3FblCkR5xwTOj2pGIoU+Q4KriXu2BvM7RHYQ+YTZGXZjD98an1a3KwtxsVdBCjzLKqCB6YNx9xIfiye6XuoFQT6U+Ib/hp5F8xkrijxB5E8/sKSagS0MHPyBEctPwaGap0NtED2GCyOHvVrdRyJE3Uu7o18DrFYvBJvf1uvOvcAAnHpvzPb+npJXPLgGaU3TU/44ZxLFqCi4KCcVCbWvs16ixm9RRdXl8T+FA/51lUZhO+1MqDXUN8r9rd3aSz8bxswTCPxPsuohS7V7zMZ3UtoNwTCiFtit9gE1Wc/Fi+JRABQ2yUaJU6pdSoQo74t0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RiYpszMLZUccCFfBv2TasOUCkouSI/Yrpn+KSLPaKs8=; b=hYHsqxKrZxeap/3chJJopKfL0/Ry/9CqvmobzhKURxKQOxW4IqdXwwOPUwToBk2O6eJYDjnekYUtHgMWi0uquLVkl2nZXa7gsOodxHKN1tPUCdY3URmo1Mnljmr0eGQKSkUuVUklCQ1t3U/+UfU9Kd7vTdCpsicnGD+k55EoQxkpB3ZQwBoUnQhqYfvOxkbPeh4Hy2qrWyi0/FNXe8Mwl9KBMT0BfNZQUfVpKu9YM2ou7qtpQZY4QnaP/r1y7BhP/dp0ZX5VSo6FO2pkiWwLTTZLbT0GL2gF1O4PuCeG/OpoZcJbN5i+8Vwd3GRSatQp4QV0cTvPtHlQgLA4dxaTlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) by DS7PR11MB8855.namprd11.prod.outlook.com (2603:10b6:8:257::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 05:24:48 +0000 Received: from CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62]) by CO6PR11MB5602.namprd11.prod.outlook.com ([fe80::5ad6:8f90:b01d:2c62%3]) with mapi id 15.20.9913.009; Wed, 13 May 2026 05:24:48 +0000 From: Qi.Chen@windriver.com To: bitbake-devel@lists.openembedded.org Cc: alex.kanavin@gmail.com, randy.macleod@windriver.com Subject: [bitbake-devel][PATCH V4 5/5] bb/tests/fetch.py: add case for filter_regex parameter in latest_versionstring Date: Wed, 13 May 2026 13:24:24 +0800 Message-Id: <20260513052424.2271877-5-Qi.Chen@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513052424.2271877-1-Qi.Chen@windriver.com> References: <20260513052424.2271877-1-Qi.Chen@windriver.com> X-ClientProxiedBy: SG2PR01CA0179.apcprd01.prod.exchangelabs.com (2603:1096:4:28::35) To CO6PR11MB5602.namprd11.prod.outlook.com (2603:10b6:303:13a::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR11MB5602:EE_|DS7PR11MB8855:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e910b8a-704c-4b73-223a-08deb0aff35b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|56012099003|22082099003|3023799003|18002099003|38350700014|11063799003; X-Microsoft-Antispam-Message-Info: C3AQvUZEefCijJmc3KPyh8oJA4vwHbQAcw2seHI4w8M5C6GSxbeCldpblVhlH0f5e/8E4sOzqaVzD3I4H4W75e/1ixtr1+oMStIzG3D6ZVedSxCqh/M0YCqYYbDhZfD9duVXaAFrCKHqnLV/WWrhzodFuiBK+V9uJa+Iiquwxu3uqoH1veyvWxdZGyrq3ClItkiC8h2zgdqxBNLpCTu9lik2GCg5MVuPdcFqcK0ksEh/6cQmZobtf9RGYuqv3uQ29IBIOdD9gX9GAjaCz5OglrGCJf0qCMBxUGPTGgP50uaHqC2k7LVdtt07UEimNjNSn+gBxSJF3PGjGxIheVIgZQLdCqqIEdS4s2FBL8UBL1RpMUYWQSKzf/A+2vHsP8FPRttY0grQhCrbUdR0L3wx1SQlzPsHqbnq94jwGnqytRbJupyAH5Gy+k3891Qh0yqHN2NxXtKZFj/TrMzWfDpPVJr8q/abSaOU0mzCz5A3zoMTu2FgzfsRrhwHGTOlmjIHw0nfTyLD0MjJIOCSajVBvqcxYRNyH8wEqkyKMU+Y2fhbHPvqiV/tKzpxgD7zh3doewHGDqdtZC8f/7tRhc4beVaIOaOjsP4nyrvkpMxaNUI1Ifqe4uMcBaZ7AdJQzb2p88DA/Kx+xTosPQmJrdf/zPxfs+y51rvGZtFt3SMqKPydZhggywa24SD4DMGwMiuREiSOs2g4685KmJ+aEKqCQg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5602.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(1800799024)(56012099003)(22082099003)(3023799003)(18002099003)(38350700014)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 74r0D3WlJQoBQotjd/jj+1EssPkV53lxmYkb1BDetMr4n5ziX6LZKIonN0wgP5kg5PHZ4FXWYbsDv6frycF84418aYYQUJl7yT9OydEWDcZmOkeGgZKjHa+vZnDwnEPqpFog2sW+HaFvmQ7ij6jdkI9CZB2EBkHW7CkyX+1kNmTRkW+WH5X4utRduYEXdSY06r6GM45Sl7pvdZXw/BVU5/I6jzRyqQsUg6LcvnqsrvPKlem8dhnfhPrUzcDgvqxK1/J9DsnRgSnj7WrPkg9DMeKMQCNmBXkHyW/8FdfR8veZyF8tY7sahOcSF3bhnc04Oz46bCVR2+APsuA5mRqJsOHvf1sVq0P3NdqVrZ9kimNd6lVOf9pLAWd7TMerYfKVgjab1syobqHIBFo7j5gVNDC7kuxyvll6r4xsGJIdhm59KLYGANTMQ2AzcGxIurSnaZIaDm/6zQgP/z/StDpdO7GA3zODidk5QS126b82LN58oBjeolNOB8dsg22OaQBB2w1dI+zmr6DRyUIMAwZToOwO7eAKzmuGrEX5xVhUj3ZB77YEA7UQbsnv2X2MNqCEGepYysEoq/3Zp1IUwxEjMNG+5dnHJMntO3PExMlZxVS09YCKbmI6V8PBRdlrWkvLs4s8TpBUVQQTTE3ChY5oaI5XZW5159iuDynMMr9dwNMCj8+O+h63iP4bctv3uzURVlNnzBaGbHUGuFR5oh2XXGG3d7qPk18K2ptsbpWFDXrwoFG4ctM9OP2GgPs/JIHQGOG369EBM+srDdKlvr1jNoff8DpJnSoIHG+enbnK7TpDwGZMt6MnMI/CS+s5PeibW4ch7PzC8N+pe/7O63AZdw4mhQ+aKCunCbXZ2s2IFvFhbF2hniwtcA0vPwdHRZK7hDmik1PdboF5HKau19EsGMad2Fr2EC7tKSVuLj0xTDj9Nw3gYcVumP59VRYrRdbAxX/4tDv0Ymlim9YNUMYPIPrmVCersY0lUhACf9/MSV2TDDz7Uac1CqGcozi46UWjlzosbkN23I+5zJzegOl7pQFgy2Wp748T3cUmcrIUQGGc4PxEwF/Xl9nBbEcy5fX9fqxdqCGpTuiPJAsP86u9CBObmNb4aiB+aH4smLYv7+I4O68DrGstmHLzBkM61mjPF807jmbF30cXOxprI+ryZgWeaCDI4M1kMuSv8SfbndAO2Lf3neUw2oRCWQzaHvCVY9ogJ2FqHMavsNDaOTQTQHDWRKsD6mDnRMwwuon826FeLFOQvY1Aqg0KVHJIx0iNReli4BUj26l6/k28JnUa3zjMtqf1qO/2APoBKZn8aSe+wGElvxfzX5wNc//akKCJRCzoj2GZZFDRKV2K7iFH+a7nfLwbbSDDcSIpFfC4wGs8dtEzy5nbqFDLaTz3oIOj+rOPyoKuS00xEQWPQWLu7zBqqiRxmj8PPoAbhM129iMIZ6MAqLLBbx/ozUqmoxH6fiGRiv0oYsyEOuBI3wHMjX5uUsbyqZkNVPyJ3y3ejMfOj4EBY9x9cv8LZ24nfYOQveEJYivK4SXZdzSAcgi9LZcKi7CEeEgM05FSd9SqmSIE+4UhL1k5hB2Eomxrz9aQdetHlhRPAkP23lCkWCGFq4zFjpXhFFAFIo1a5edfd7s7z5KhzLVh5Kyt7in/HtC2rdUyChaCq9oxS9RdU1JngbkfTnt0HiLtTNUpYdzlrxpDfkGVFpwD8HaZElhj7NL0ugsYxTDW/+mMlPSI89c9gw== X-Exchange-RoutingPolicyChecked: J4liT31yoEhq+1C7Skvklaj61xSzE+uM7ASHqveJOl1PcVRaBUptGxvrqMmKskEQrYFSJi5OEkXn5NpzyfPclYOfilkQwK8tXYMsaRxKK2QiTaq5A+jxlHD8BXZq2FD1Guy3LuQlorqt/gYK9CT0mpsRk/pbwRxc2so3alP6zIWcmyhyerxY2V8gh3sBxF6s12pg2b0uc/7XVB7ygQRY5vLVzyZgtyMSU2AgpSz2wA3gvaLHabKliYVj8zB6J1EgQnbVM4t90CDmbedcOWKrg9yMY+aYl4THTcAD51eJzRPDfWYrfk4whaZoGhYQk/pNFpTAGEUTaqnnRvSOo5sVjg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e910b8a-704c-4b73-223a-08deb0aff35b X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5602.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 05:24:48.4780 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: d2Ym3lGSbN29ULnWZ6RVixsMP41+/w1uxLspyRkDwjkXKJtf+pgoofl28f0BfcWbifyK8zdtBDcsOX8X2NRriQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB8855 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDA1MSBTYWx0ZWRfX8j7kYFBc6Fn3 oaw4BkHNOhiEg7qACpfqjFoZY5tqK/NFUlCr3E+H7ih2hVbCuBNKWY2fEK42plMhz7NfiSLZv2F 9bAH+1fSbOuItMeAYoThtOBi36ITFDZFavFNV1My5f6At4sOn0hUARB1674O+MMKnfRuPkkQ4b9 Tbn3wOeefyFgTx17KGF3AUT/WssUPNeVrBp4FNOZjkR8UHbehhufe8SeIDzTdcueqhjFeePs4bN y0QH6C2zD4tfDhH4twb/Z+m18g/9ovPP8Adlx0WtwrFICT43DvkpOKyIydZdkGxInfwj2sV/i+k nF/qE3sBTH4C7LPIjfPFtJ7YNaZLk9CInLacMEiuJSgZQo8PefmrtmMlWvkkzXhme+bhX11VvFN u6Ooevq2Ngt9P9AvHommOQFNVJO+BR75rqM+lgNui5yasuVMf6dcPv46aSEKzZBmcPH+2eOtPvX HF7omQpDSB1jqZeZuEQ== X-Proofpoint-GUID: JlNlK5W8rEorx56EqIzQDngIyJpQ38P7 X-Authority-Analysis: v=2.4 cv=du/rzVg4 c=1 sm=1 tr=0 ts=6a040b23 cx=c_pps a=eHfeAi0ej4loD7KcX6Y+qw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=3tcz3bTJAAAA:8 a=iGHA9ds3AAAA:8 a=t7CeM3EgAAAA:8 a=NEAV23lmAAAA:8 a=yBcSI8iXaKTbtWxE768A:9 a=4EbjBm0RLgFgoQzmu6QD:22 a=nM-MV4yxpKKO9kiQg6Ot:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: JOuj3gV0uOrN_4trjsU-8c9XbpcMXUoZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130051 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 13 May 2026 05:24:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19505 From: Chen Qi Add bitbake selftest case for fitler_regex parameter in latest_versionstring to ensure no regression. Signed-off-by: Chen Qi --- lib/bb/tests/fetch.py | 78 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py index 86dd92992..702664578 100644 --- a/lib/bb/tests/fetch.py +++ b/lib/bb/tests/fetch.py @@ -1512,7 +1512,24 @@ class FetchLatestVersionTest(FetcherTest): # basic example; version pattern "A.B.C+cargo-D.E.F" ("cargo-c", "crate://crates.io/cargo-c/0.9.18+cargo-0.69") : "0.9.29" - } + } + + test_git_stable_uris = { + ("dtc", "git://git.yoctoproject.org/bbfetchtests-dtc.git;branch=master;protocol=https", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "", r"^1\.4\.\d+$") + : ("1.4.0", "1.5.0"), + ("systemd", "git://github.com/systemd/systemd.git;protocol=https;branch=stable/v259-stable", "b3d8fc43e9cb531d958c17ef2cd93b374bc14e8a", "", r"^259\.\d+$") + : ("259.5", "260") + } + + test_wget_stable_uris = { + ("openssh", "https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.2p1.tar.gz", "10.2p1", "", "", r"^10\.2p\d+$") + : ("10.2p1", "10.3") + } + + test_crate_stable_uris = { + ("cargo-c", "crate://crates.io/cargo-c/0.9.18+cargo-0.69", r"^0\.9\.\d+") + : ("0.9.29", "0.10.0") + } @skipIfNoNetwork() def test_git_latest_versionstring(self): @@ -1569,6 +1586,65 @@ class FetchLatestVersionTest(FetcherTest): r = bb.utils.vercmp_string(v, verstring) self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring)) + @skipIfNoNetwork() + def test_git_latest_versionstring_stable(self): + for k, v in self.test_git_stable_uris.items(): + with self.subTest(pn=k[0]): + self.d.setVar("PN", k[0]) + self.d.setVar("SRCREV", k[2]) + self.d.setVar("UPSTREAM_CHECK_GITTAGREGEX", k[3]) + filter_regex = k[4] + ud = bb.fetch2.FetchData(k[1], self.d) + pupver= ud.method.latest_versionstring(ud, self.d, filter_regex=filter_regex) + verstring = pupver[0] + self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0]) + v_less_or_equal = v[0] + v_larger = v[1] + r = bb.utils.vercmp_string(v_less_or_equal, verstring) + self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s < %s" % (k[0], v_less_or_equal, verstring)) + r = bb.utils.vercmp_string(verstring, v_larger) + self.assertTrue(r == -1, msg="Package %s, version: %s <= %s" % (k[0], v_larger, verstring)) + + @skipIfNoNetwork() + def test_wget_latest_versionstring_stable(self): + for k, v in self.test_wget_stable_uris.items(): + with self.subTest(pn=k[0]): + self.d.setVar("PN", k[0]) + url = k[1] + self.d.setVar("PV", k[2]) + if k[3]: + self.d.setVar("UPSTREAM_CHECK_URI", k[3]) + if k[4]: + self.d.setVar("UPSTREAM_CHECK_REGEX", k[4]) + filter_regex = k[5] + ud = bb.fetch2.FetchData(url, self.d) + pupver= ud.method.latest_versionstring(ud, self.d, filter_regex=filter_regex) + verstring = pupver[0] + self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0]) + v_less_or_equal = v[0] + v_larger = v[1] + r = bb.utils.vercmp_string(v_less_or_equal, verstring) + self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s < %s" % (k[0], v_less_or_equal, verstring)) + r = bb.utils.vercmp_string(verstring, v_larger) + self.assertTrue(r == -1, msg="Package %s, version: %s <= %s" % (k[0], v_larger, verstring)) + + @skipIfNoNetwork() + def test_crate_latest_versionstring_stable(self): + for k, v in self.test_crate_stable_uris.items(): + with self.subTest(pn=k[0]): + self.d.setVar("PN", k[0]) + ud = bb.fetch2.FetchData(k[1], self.d) + filter_regex = k[2] + pupver = ud.method.latest_versionstring(ud, self.d, filter_regex=filter_regex) + verstring = pupver[0] + self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0]) + v_less_or_equal = v[0] + v_larger = v[1] + r = bb.utils.vercmp_string(v_less_or_equal, verstring) + self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s < %s" % (k[0], v_less_or_equal, verstring)) + r = bb.utils.vercmp_string(verstring, v_larger) + self.assertTrue(r == -1, msg="Package %s, version: %s <= %s" % (k[0], v_larger, verstring)) + class FetchCheckStatusTest(FetcherTest): test_wget_uris = ["https://downloads.yoctoproject.org/releases/sato/sato-engine-0.1.tar.gz", "https://downloads.yoctoproject.org/releases/sato/sato-engine-0.2.tar.gz",