From 5c386948b44922db2d165d20e54926ded115d95b Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Thu, 29 Feb 2024 08:06:29 +0100
Subject: [PATCH] chore(yarn): improve logging for version detection (#27629)

---
 lib/modules/manager/npm/extract/yarn.ts      | 15 ++++++++++++++-
 lib/modules/manager/npm/post-update/utils.ts | 13 +++++++++++--
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/lib/modules/manager/npm/extract/yarn.ts b/lib/modules/manager/npm/extract/yarn.ts
index 0e13e39207..cee4f15776 100644
--- a/lib/modules/manager/npm/extract/yarn.ts
+++ b/lib/modules/manager/npm/extract/yarn.ts
@@ -21,6 +21,9 @@ export async function getYarnLock(filePath: string): Promise<LockFile> {
       if (key === '__metadata') {
         // yarn 2
         lockfileVersion = parseInt(val.cacheKey, 10);
+        logger.once.debug(
+          `yarn.lock ${filePath} has __metadata.cacheKey=${lockfileVersion}`,
+        );
       } else {
         for (const entry of key.split(', ')) {
           try {
@@ -39,8 +42,18 @@ export async function getYarnLock(filePath: string): Promise<LockFile> {
         }
       }
     }
+    const isYarn1 = !('__metadata' in parsed);
+    if (isYarn1) {
+      logger.once.debug(
+        `yarn.lock ${filePath} is has no __metadata so is yarn 1`,
+      );
+    } else {
+      logger.once.debug(
+        `yarn.lock ${filePath} is has __metadata so is yarn 2+`,
+      );
+    }
     return {
-      isYarn1: !('__metadata' in parsed),
+      isYarn1,
       lockfileVersion,
       lockedVersions,
     };
diff --git a/lib/modules/manager/npm/post-update/utils.ts b/lib/modules/manager/npm/post-update/utils.ts
index a38da9ee45..e799e31652 100644
--- a/lib/modules/manager/npm/post-update/utils.ts
+++ b/lib/modules/manager/npm/post-update/utils.ts
@@ -1,4 +1,5 @@
 import upath from 'upath';
+import { logger } from '../../../../logger';
 import { readLocalFile } from '../../../../util/fs';
 import { Lazy } from '../../../../util/lazy';
 import { PackageJson, PackageJsonSchema } from '../schema';
@@ -30,10 +31,18 @@ export function getPackageManagerVersion(
   pkg: PackageJsonSchema,
 ): string | null {
   if (pkg.packageManager?.name === name) {
-    return pkg.packageManager.version;
+    const version = pkg.packageManager.version;
+    logger.debug(
+      `Found ${name} constraint in package.json packageManager: ${version}`,
+    );
+    return version;
   }
   if (pkg.engines?.[name]) {
-    return pkg.engines[name];
+    const version = pkg.engines[name];
+    logger.debug(
+      `Found ${name} constraint in package.json engines: ${version}`,
+    );
+    return version;
   }
   return null;
 }
-- 
GitLab