From 05bf839b04adc0320b1a598cdd513b09a0b9e168 Mon Sep 17 00:00:00 2001
From: Gabriel-Ladzaretti
 <97394622+Gabriel-Ladzaretti@users.noreply.github.com>
Date: Thu, 28 Apr 2022 17:27:30 +0300
Subject: [PATCH] fix(pep440): renovate downgrades when rangeStrategy=bump
 (#15358)

---
 lib/modules/versioning/pep440/index.spec.ts | 8 ++++++++
 lib/modules/versioning/pep440/range.ts      | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/lib/modules/versioning/pep440/index.spec.ts b/lib/modules/versioning/pep440/index.spec.ts
index b0b5c01fe6..eabcdf676d 100644
--- a/lib/modules/versioning/pep440/index.spec.ts
+++ b/lib/modules/versioning/pep440/index.spec.ts
@@ -168,6 +168,14 @@ describe('modules/versioning/pep440/index', () => {
     ${'==3.2.*,>=3.2.2'}    | ${'replace'}     | ${'3.2.2'}     | ${'4.1.1'}   | ${'==4.1.*'}
     ${'==3.2.*,>=3.2.2'}    | ${'replace'}     | ${'3.2.2'}     | ${'4.0.0'}   | ${'==4.0.*'}
     ${'>=1.0.0,<1.1.0'}     | ${'replace'}     | ${'1.0.0'}     | ${'1.2.0'}   | ${'>=1.2.0,<1.3.0'}
+    ${'<1.3.0'}             | ${'bump'}        | ${'1.3.0'}     | ${'0.9.2'}   | ${'<1.3.0'}
+    ${'<1.3.0'}             | ${'bump'}        | ${'0.9.0'}     | ${'0.9.2'}   | ${'<1.3.0'}
+    ${'<=1.3.0'}            | ${'bump'}        | ${'0.9.0'}     | ${'0.9.2'}   | ${'<=1.3.0'}
+    ${'<=1.3.0'}            | ${'bump'}        | ${'1.3.0'}     | ${'0.9.2'}   | ${'<=1.3.0'}
+    ${'<1.3.0'}             | ${'bump'}        | ${'1.3.0'}     | ${'1.6.0'}   | ${'<1.6.1'}
+    ${'<1.3.0'}             | ${'bump'}        | ${'0.9.0'}     | ${'1.6.0'}   | ${'<1.6.1'}
+    ${'<=1.3.0'}            | ${'bump'}        | ${'0.9.0'}     | ${'1.6.0'}   | ${'<=1.6.0'}
+    ${'<=1.3.0'}            | ${'bump'}        | ${'1.3.0'}     | ${'1.6.0'}   | ${'<=1.6.0'}
   `(
     'getNewValue("$currentValue", "$rangeStrategy", "$currentVersion", "$newVersion") === "$expected"',
     ({ currentValue, rangeStrategy, currentVersion, newVersion, expected }) => {
diff --git a/lib/modules/versioning/pep440/range.ts b/lib/modules/versioning/pep440/range.ts
index 1fd746b814..56920e731a 100644
--- a/lib/modules/versioning/pep440/range.ts
+++ b/lib/modules/versioning/pep440/range.ts
@@ -316,6 +316,9 @@ function updateRangeValue(
     return range.operator + newVersion;
   }
   if (['==', '<='].includes(range.operator)) {
+    if (lte(newVersion, range.version)) {
+      return range.operator + range.version;
+    }
     return range.operator + newVersion;
   }
 
-- 
GitLab