From 22f6b42afd092d73c833378a73482619e1c25698 Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Wed, 11 Jan 2023 16:03:28 -0500 Subject: [PATCH 1/8] fix(poetry): normalize package name --- lib/modules/manager/poetry/extract.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/poetry/extract.ts b/lib/modules/manager/poetry/extract.ts index aaf74be3aebb4e..f58a068a81b09d 100644 --- a/lib/modules/manager/poetry/extract.ts +++ b/lib/modules/manager/poetry/extract.ts @@ -54,6 +54,8 @@ function extractFromSection( continue; } + let pep503NormalizeRegex = /[-_.]+/g; + let depNameNormalized = str.replace(pep503NormalizeRegex, "-"); let skipReason: SkipReason | null = null; let currentValue = sectionContent[depName]; let nestedVersion = false; @@ -79,14 +81,14 @@ function extractFromSection( } } const dep: PackageDependency = { - depName, + depName: depNameNormalized, depType, currentValue, managerData: { nestedVersion }, datasource: PypiDatasource.id, }; - if (depName in poetryLockfile) { - dep.lockedVersion = poetryLockfile[depName]; + if (depNameNormalized in poetryLockfile) { + dep.lockedVersion = poetryLockfile[depNameNormalized]; } if (skipReason) { dep.skipReason = skipReason; From 6f6a34bda6d31a8b36990f8ddbe6019c8abe3a34 Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Thu, 12 Jan 2023 10:01:35 -0500 Subject: [PATCH 2/8] lowercase depName in normalization --- lib/modules/manager/poetry/extract.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modules/manager/poetry/extract.ts b/lib/modules/manager/poetry/extract.ts index f58a068a81b09d..0bc12c8794f9b0 100644 --- a/lib/modules/manager/poetry/extract.ts +++ b/lib/modules/manager/poetry/extract.ts @@ -55,7 +55,7 @@ function extractFromSection( } let pep503NormalizeRegex = /[-_.]+/g; - let depNameNormalized = str.replace(pep503NormalizeRegex, "-"); + let depNameNormalized = depName.toLowerCase().replace(pep503NormalizeRegex, "-"); let skipReason: SkipReason | null = null; let currentValue = sectionContent[depName]; let nestedVersion = false; From 68c8742422c7951fe3371026bd3dafc7de34cad8 Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Thu, 12 Jan 2023 15:23:53 -0500 Subject: [PATCH 3/8] set packageName to normalized name instead of depName --- lib/modules/manager/poetry/extract.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/modules/manager/poetry/extract.ts b/lib/modules/manager/poetry/extract.ts index 0bc12c8794f9b0..454e51f63cecc4 100644 --- a/lib/modules/manager/poetry/extract.ts +++ b/lib/modules/manager/poetry/extract.ts @@ -13,6 +13,7 @@ import * as poetryVersioning from '../../versioning/poetry'; import type { PackageDependency, PackageFile } from '../types'; import { extractLockFileEntries } from './locked-version'; import type { PoetryDependency, PoetryFile, PoetrySection } from './types'; +import { regEx } from '../../../util/regex'; function extractFromDependenciesSection( parsedFile: PoetryFile, @@ -54,8 +55,8 @@ function extractFromSection( continue; } - let pep503NormalizeRegex = /[-_.]+/g; - let depNameNormalized = depName.toLowerCase().replace(pep503NormalizeRegex, "-"); + let pep503NormalizeRegex = regEx(/[-_.]+/g); + let packageName = depName.toLowerCase().replace(pep503NormalizeRegex, "-"); let skipReason: SkipReason | null = null; let currentValue = sectionContent[depName]; let nestedVersion = false; @@ -81,14 +82,15 @@ function extractFromSection( } } const dep: PackageDependency = { - depName: depNameNormalized, + depName, depType, currentValue, managerData: { nestedVersion }, datasource: PypiDatasource.id, + packageName, }; - if (depNameNormalized in poetryLockfile) { - dep.lockedVersion = poetryLockfile[depNameNormalized]; + if (packageName in poetryLockfile) { + dep.lockedVersion = poetryLockfile[packageName]; } if (skipReason) { dep.skipReason = skipReason; From 71892abbaca8367ec5e34503dde4646ef902fac9 Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Fri, 13 Jan 2023 09:28:25 -0500 Subject: [PATCH 4/8] only set packageName if different from depName --- lib/modules/manager/poetry/extract.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/poetry/extract.ts b/lib/modules/manager/poetry/extract.ts index 454e51f63cecc4..f26f9e78ff8027 100644 --- a/lib/modules/manager/poetry/extract.ts +++ b/lib/modules/manager/poetry/extract.ts @@ -87,11 +87,13 @@ function extractFromSection( currentValue, managerData: { nestedVersion }, datasource: PypiDatasource.id, - packageName, }; if (packageName in poetryLockfile) { dep.lockedVersion = poetryLockfile[packageName]; } + if (depName !== packageName) { + dep.packageName = packageName; + } if (skipReason) { dep.skipReason = skipReason; } else if (pep440Versioning.isValid(currentValue)) { From da69e8f1911b7b786f1145a37fc15aeecc6571ec Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Fri, 13 Jan 2023 11:47:08 -0500 Subject: [PATCH 5/8] fix expected test output --- .../manager/poetry/__snapshots__/extract.spec.ts.snap | 9 +++++++++ lib/modules/manager/poetry/extract.spec.ts | 2 ++ 2 files changed, 11 insertions(+) diff --git a/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap index 7b215629568f70..b0951aa9e1243f 100644 --- a/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap @@ -401,6 +401,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "extra-dep1", }, { "currentValue": "^0.9.4", @@ -411,6 +412,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "extra-dep2", }, { "currentValue": "^0.4.0", @@ -421,6 +423,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "extra-dep3", }, ], "extractedConstraints": {}, @@ -439,6 +442,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "pep440", + "packageName": "dep1-", }, { "currentValue": "0.0.0", @@ -479,6 +483,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "dev-dep1", }, { "currentValue": "Invalid version.", @@ -489,6 +494,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "skipReason": "unknown-version", + "packageName": "dev-dep1", }, { "currentValue": "^0.8.3", @@ -499,6 +505,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "extra-dep1", }, { "currentValue": "^0.9.4", @@ -509,6 +516,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "extra-dep2", }, { "currentValue": "^0.4.0", @@ -519,6 +527,7 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "nestedVersion": false, }, "versioning": "poetry", + "packageName": "extra-dep3", }, ] `; diff --git a/lib/modules/manager/poetry/extract.spec.ts b/lib/modules/manager/poetry/extract.spec.ts index 423af4f6a301c5..a1a459499491b6 100644 --- a/lib/modules/manager/poetry/extract.spec.ts +++ b/lib/modules/manager/poetry/extract.spec.ts @@ -156,12 +156,14 @@ describe('modules/manager/poetry/extract', () => { datasource: 'pypi', depName: 'dev_dep', depType: 'dev', + packageName: 'dev-dep', }, { currentValue: '^4.0', datasource: 'pypi', depName: 'typing_dep', depType: 'typing', + packageName: 'typing-dep', }, ]); }); From e2ad1cff55153492401cd5f22a2b389465eacf89 Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Fri, 13 Jan 2023 12:25:53 -0500 Subject: [PATCH 6/8] fix order of expected test output --- .../poetry/__snapshots__/extract.spec.ts.snap | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap index b0951aa9e1243f..b42a6a577429b6 100644 --- a/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/poetry/__snapshots__/extract.spec.ts.snap @@ -400,8 +400,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "extra-dep1", + "versioning": "poetry", }, { "currentValue": "^0.9.4", @@ -411,8 +411,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "extra-dep2", + "versioning": "poetry", }, { "currentValue": "^0.4.0", @@ -422,8 +422,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "extra-dep3", + "versioning": "poetry", }, ], "extractedConstraints": {}, @@ -441,8 +441,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "pep440", "packageName": "dep1-", + "versioning": "pep440", }, { "currentValue": "0.0.0", @@ -482,8 +482,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "dev-dep1", + "versioning": "poetry", }, { "currentValue": "Invalid version.", @@ -493,8 +493,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, + "packageName": "dev-dep2", "skipReason": "unknown-version", - "packageName": "dev-dep1", }, { "currentValue": "^0.8.3", @@ -504,8 +504,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "extra-dep1", + "versioning": "poetry", }, { "currentValue": "^0.9.4", @@ -515,8 +515,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "extra-dep2", + "versioning": "poetry", }, { "currentValue": "^0.4.0", @@ -526,8 +526,8 @@ exports[`modules/manager/poetry/extract extractPackageFile() extracts multiple d "managerData": { "nestedVersion": false, }, - "versioning": "poetry", "packageName": "extra-dep3", + "versioning": "poetry", }, ] `; From 90252a35409aadcb50dfc538e5dafe756f3f901e Mon Sep 17 00:00:00 2001 From: Dave Powell Date: Fri, 13 Jan 2023 14:08:26 -0500 Subject: [PATCH 7/8] fix eslint errors --- lib/modules/manager/poetry/extract.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/poetry/extract.ts b/lib/modules/manager/poetry/extract.ts index f26f9e78ff8027..a83754021081b6 100644 --- a/lib/modules/manager/poetry/extract.ts +++ b/lib/modules/manager/poetry/extract.ts @@ -7,13 +7,13 @@ import { localPathExists, readLocalFile, } from '../../../util/fs'; +import { regEx } from '../../../util/regex'; import { PypiDatasource } from '../../datasource/pypi'; import * as pep440Versioning from '../../versioning/pep440'; import * as poetryVersioning from '../../versioning/poetry'; import type { PackageDependency, PackageFile } from '../types'; import { extractLockFileEntries } from './locked-version'; import type { PoetryDependency, PoetryFile, PoetrySection } from './types'; -import { regEx } from '../../../util/regex'; function extractFromDependenciesSection( parsedFile: PoetryFile, @@ -55,8 +55,8 @@ function extractFromSection( continue; } - let pep503NormalizeRegex = regEx(/[-_.]+/g); - let packageName = depName.toLowerCase().replace(pep503NormalizeRegex, "-"); + const pep503NormalizeRegex = regEx(/[-_.]+/g); + const packageName = depName.toLowerCase().replace(pep503NormalizeRegex, "-"); let skipReason: SkipReason | null = null; let currentValue = sectionContent[depName]; let nestedVersion = false; From 934e488045720955b657daedf2f81234a7e16eb9 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 14 Jan 2023 07:07:27 +0100 Subject: [PATCH 8/8] lint-fix --- lib/modules/manager/poetry/extract.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/poetry/extract.ts b/lib/modules/manager/poetry/extract.ts index a83754021081b6..535dc0208057a1 100644 --- a/lib/modules/manager/poetry/extract.ts +++ b/lib/modules/manager/poetry/extract.ts @@ -56,7 +56,9 @@ function extractFromSection( } const pep503NormalizeRegex = regEx(/[-_.]+/g); - const packageName = depName.toLowerCase().replace(pep503NormalizeRegex, "-"); + const packageName = depName + .toLowerCase() + .replace(pep503NormalizeRegex, '-'); let skipReason: SkipReason | null = null; let currentValue = sectionContent[depName]; let nestedVersion = false;