From 2f23c1461e0cd7e4c48e5aeb2dce4941f45666d7 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Fri, 26 May 2023 17:47:57 +0200 Subject: [PATCH] fix(manager/pdm): install python first (#22441) --- lib/modules/manager/pep621/artifacts.spec.ts | 6 ++++++ lib/modules/manager/pep621/processors/pdm.spec.ts | 14 ++++++++++++++ lib/modules/manager/pep621/processors/pdm.ts | 9 ++++++--- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/pep621/artifacts.spec.ts b/lib/modules/manager/pep621/artifacts.spec.ts index f104c7e51f..f48d42050a 100644 --- a/lib/modules/manager/pep621/artifacts.spec.ts +++ b/lib/modules/manager/pep621/artifacts.spec.ts @@ -42,6 +42,10 @@ describe('modules/manager/pep621/artifacts', () => { fs.getSiblingFileName.mockReturnValueOnce('pdm.lock'); fs.readLocalFile.mockResolvedValueOnce('old test content'); fs.readLocalFile.mockResolvedValueOnce('new test content'); + // python + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '3.11.1' }, { version: '3.11.2' }], + }); // pdm getPkgReleases.mockResolvedValueOnce({ releases: [{ version: 'v2.6.1' }, { version: 'v2.5.0' }], @@ -86,6 +90,8 @@ describe('modules/manager/pep621/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'containerbase/sidecar ' + 'bash -l -c "' + + 'install-tool python 3.11.2 ' + + '&& ' + 'install-tool pdm v2.5.0 ' + '&& ' + 'pdm update dep1' + diff --git a/lib/modules/manager/pep621/processors/pdm.spec.ts b/lib/modules/manager/pep621/processors/pdm.spec.ts index d455b0b722..b6a2801cbd 100644 --- a/lib/modules/manager/pep621/processors/pdm.spec.ts +++ b/lib/modules/manager/pep621/processors/pdm.spec.ts @@ -41,6 +41,10 @@ describe('modules/manager/pep621/processors/pdm', () => { fs.getSiblingFileName.mockReturnValueOnce('pdm.lock'); fs.readLocalFile.mockResolvedValueOnce('test content'); fs.readLocalFile.mockResolvedValueOnce('test content'); + // python + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '3.11.1' }, { version: '3.11.2' }], + }); // pdm getPkgReleases.mockResolvedValueOnce({ releases: [{ version: 'v2.6.1' }, { version: 'v2.5.0' }], @@ -71,6 +75,8 @@ describe('modules/manager/pep621/processors/pdm', () => { '-w "/tmp/github/some/repo" ' + 'containerbase/sidecar ' + 'bash -l -c "' + + 'install-tool python 3.11.2 ' + + '&& ' + 'install-tool pdm v2.5.0 ' + '&& ' + 'pdm update dep1' + @@ -106,6 +112,10 @@ describe('modules/manager/pep621/processors/pdm', () => { fs.getSiblingFileName.mockReturnValueOnce('pdm.lock'); fs.readLocalFile.mockResolvedValueOnce('test content'); fs.readLocalFile.mockResolvedValueOnce('changed test content'); + // python + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '3.11.1' }, { version: '3.11.2' }], + }); // pdm getPkgReleases.mockResolvedValueOnce({ releases: [{ version: 'v2.6.1' }, { version: 'v2.5.0' }], @@ -140,6 +150,10 @@ describe('modules/manager/pep621/processors/pdm', () => { fs.getSiblingFileName.mockReturnValueOnce('pdm.lock'); fs.readLocalFile.mockResolvedValueOnce('test content'); fs.readLocalFile.mockResolvedValueOnce('changed test content'); + // python + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '3.11.1' }, { version: '3.11.2' }], + }); // pdm getPkgReleases.mockResolvedValueOnce({ releases: [{ version: 'v2.6.1' }, { version: 'v2.5.0' }], diff --git a/lib/modules/manager/pep621/processors/pdm.ts b/lib/modules/manager/pep621/processors/pdm.ts index cf717b6dbf..bd21052cd3 100644 --- a/lib/modules/manager/pep621/processors/pdm.ts +++ b/lib/modules/manager/pep621/processors/pdm.ts @@ -64,15 +64,18 @@ export class PdmProcessor implements PyProjectProcessor { logger.debug('No pdm.lock found'); return null; } - - const toolConstraint: ToolConstraint = { + const pythonConstraint: ToolConstraint = { + toolName: 'python', + constraint: config.constraints?.python, + }; + const pdmConstraint: ToolConstraint = { toolName: 'pdm', constraint: config.constraints?.pdm, }; const execOptions: ExecOptions = { docker: {}, - toolConstraints: [toolConstraint], + toolConstraints: [pythonConstraint, pdmConstraint], }; // on lockFileMaintenance do not specify any packages and update the complete lock file -- GitLab