From 0b3b56adb555ae993a8f89ea721c5dfa36c4b259 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20K=C3=B6rner?=
 <20133276+dazze1812@users.noreply.github.com>
Date: Thu, 11 Jan 2024 09:19:14 +0100
Subject: [PATCH] fix(conan): Allow include_prerelease without argument
 (#26588)

---
 lib/modules/manager/conan/__fixtures__/conanfile.py | 1 +
 lib/modules/manager/conan/extract.spec.ts           | 7 +++++++
 lib/modules/versioning/conan/common.ts              | 9 +++++++--
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/lib/modules/manager/conan/__fixtures__/conanfile.py b/lib/modules/manager/conan/__fixtures__/conanfile.py
index 7c2db16df9..6f5a7ecadf 100644
--- a/lib/modules/manager/conan/__fixtures__/conanfile.py
+++ b/lib/modules/manager/conan/__fixtures__/conanfile.py
@@ -12,6 +12,7 @@ class Pkg(ConanFile):
    requires = (("req_c/1.0@user/stable", "private"), )
    requires = ("req_f/1.0@user/stable", ("req_h/3.0@other/beta", "override"))
    requires = "req_g/[>1.0 <1.8]@user/stable"
+   requires = "req_z/[>1.0 <1.8, include_prerelease]@user/stable"
 #  requires = "commentedout/[>1.0 <1.8]@user/stable"
    #  requires = "commentedout2/[>1.0 <1.8]@user/stable"
    requires = (("req_l/1.0@user/stable#bc592346b33fd19c1fbffce25d1e4236", "private"), )
diff --git a/lib/modules/manager/conan/extract.spec.ts b/lib/modules/manager/conan/extract.spec.ts
index ec20d05de2..8513b874ea 100644
--- a/lib/modules/manager/conan/extract.spec.ts
+++ b/lib/modules/manager/conan/extract.spec.ts
@@ -201,6 +201,13 @@ describe('modules/manager/conan/extract', () => {
           packageName: 'req_g/[>1.0 <1.8]@user/stable',
           replaceString: 'req_g/[>1.0 <1.8]@user/stable',
         },
+        {
+          currentValue: '[>1.0 <1.8, include_prerelease]',
+          depName: 'req_z',
+          depType: 'requires',
+          packageName: 'req_z/[>1.0 <1.8, include_prerelease]@user/stable',
+          replaceString: 'req_z/[>1.0 <1.8, include_prerelease]@user/stable',
+        },
         {
           autoReplaceStringTemplate:
             '{{depName}}/{{newValue}}@user/stable{{#if newDigest}}#{{newDigest}}{{/if}}',
diff --git a/lib/modules/versioning/conan/common.ts b/lib/modules/versioning/conan/common.ts
index 3b5bdb4df0..9497d96fc2 100644
--- a/lib/modules/versioning/conan/common.ts
+++ b/lib/modules/versioning/conan/common.ts
@@ -30,7 +30,12 @@ export function makeVersion(
 export function cleanVersion(version: string): string {
   if (version) {
     return version
-      .replace(regEx(/,|\[|\]|"|include_prerelease=|loose=|True|False/g), '')
+      .replace(
+        regEx(
+          /,|\[|\]|"|include_prerelease=|include_prerelease|loose=|True|False/g,
+        ),
+        '',
+      )
       .trim();
   }
   return version;
@@ -44,7 +49,7 @@ export function getOptions(input: string): {
   let loose = true;
   if (input) {
     includePrerelease =
-      input.includes('include_prerelease=True') &&
+      input.includes('include_prerelease') &&
       !input.includes('include_prerelease=False');
     loose = input.includes('loose=True') || !input.includes('loose=False');
   }
-- 
GitLab