From dbfa6b26780e5c8f049c403ad2b35b767790793a Mon Sep 17 00:00:00 2001
From: Casey <casey.duquette@snapchat.com>
Date: Fri, 15 Nov 2024 23:14:13 -0800
Subject: [PATCH] feat(manager/conan): Conan 1 package name compatibility
 (#32425)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
---
 lib/modules/datasource/conan/common.ts               | 2 +-
 lib/modules/manager/conan/__fixtures__/conanfile.txt | 1 +
 lib/modules/manager/conan/extract.spec.ts            | 7 +++++++
 lib/modules/manager/conan/extract.ts                 | 2 +-
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/modules/datasource/conan/common.ts b/lib/modules/datasource/conan/common.ts
index e0dfa211dd..c17062a599 100644
--- a/lib/modules/datasource/conan/common.ts
+++ b/lib/modules/datasource/conan/common.ts
@@ -6,7 +6,7 @@ export const defaultRegistryUrl = 'https://center.conan.io/';
 export const datasource = 'conan';
 
 export const conanDatasourceRegex = regEx(
-  /(?<name>[a-z\-_0-9]+)\/(?<version>[^@/\n]+)(?<userChannel>@\S+\/\S+)/gim,
+  /(?<name>[a-zA-Z\-_0-9]+)\/(?<version>[^@/\n]+)(?<userChannel>@\S+\/\S+)/gim,
 );
 
 export function getConanPackage(packageName: string): ConanPackage {
diff --git a/lib/modules/manager/conan/__fixtures__/conanfile.txt b/lib/modules/manager/conan/__fixtures__/conanfile.txt
index fb8a66eab4..b3efed1210 100644
--- a/lib/modules/manager/conan/__fixtures__/conanfile.txt
+++ b/lib/modules/manager/conan/__fixtures__/conanfile.txt
@@ -4,6 +4,7 @@ zlib/[~1.2.3, loose=False]
 fake/8.62.134@test/dev
 cairo/1.17.2#aff2d03608351db075ec1348a3afc9ff
 cairo/1.17.2@_/_#aff2d03608351db075ec1348a3afc9ff
+Fake/8.62.134@
 
 [build_requires]
 7zip/[>1.1 <2.1, include_prerelease=True]
diff --git a/lib/modules/manager/conan/extract.spec.ts b/lib/modules/manager/conan/extract.spec.ts
index b0df8a12a5..783c74fbdc 100644
--- a/lib/modules/manager/conan/extract.spec.ts
+++ b/lib/modules/manager/conan/extract.spec.ts
@@ -55,6 +55,13 @@ describe('modules/manager/conan/extract', () => {
           packageName: 'cairo/1.17.2@_/_',
           replaceString: 'cairo/1.17.2@_/_#aff2d03608351db075ec1348a3afc9ff',
         },
+        {
+          currentValue: '8.62.134',
+          depName: 'Fake',
+          depType: 'requires',
+          packageName: 'Fake/8.62.134@_/_',
+          replaceString: 'Fake/8.62.134',
+        },
         {
           currentValue: '[>1.1 <2.1, include_prerelease=True]',
           depName: '7zip',
diff --git a/lib/modules/manager/conan/extract.ts b/lib/modules/manager/conan/extract.ts
index e4fab9f502..fb869dad2f 100644
--- a/lib/modules/manager/conan/extract.ts
+++ b/lib/modules/manager/conan/extract.ts
@@ -4,7 +4,7 @@ import type { PackageDependency, PackageFileContent } from '../types';
 import { isComment } from './common';
 
 const regex = regEx(
-  `(?<name>[-_a-z0-9]+)/(?<version>[^@#\n{*"']+)(?<userChannel>@[-_a-zA-Z0-9]+(?:/[^#\n.{*"' ]+|))?#?(?<revision>[-_a-f0-9]+[^\n{*"'])?`,
+  `(?<name>[-_a-zA-Z0-9]+)/(?<version>[^@#\n{*"']+)(?<userChannel>@[-_a-zA-Z0-9]+(?:/[^#\n.{*"' ]+|))?#?(?<revision>[-_a-f0-9]+[^\n{*"'])?`,
 );
 
 function setDepType(content: string, originalType: string): string {
-- 
GitLab