0
0
mirror of https://github.com/renovatebot/renovate.git synced 2024-12-22 13:38:32 +00:00
renovatebot_renovate/lib/modules/datasource/python-version
2024-08-20 04:55:57 +00:00
..
__fixtures__ feat(datasource): Add python-version datasource (#27583) 2024-05-16 10:00:07 +00:00
common.ts feat(datasource): Add python-version datasource (#27583) 2024-05-16 10:00:07 +00:00
index.spec.ts feat(datasource): Add python-version datasource (#27583) 2024-05-16 10:00:07 +00:00
index.ts refactor: Rename EndoflifeDatePackagesource to EndoflifeDateDatasource (#30898) 2024-08-20 04:55:57 +00:00
readme.md feat(datasource): Add python-version datasource (#27583) 2024-05-16 10:00:07 +00:00
schema.ts feat(datasource): Add python-version datasource (#27583) 2024-05-16 10:00:07 +00:00

This datasource returns Python releases from the python.org API.

It also fetches deprecated versions from the Endoflife Date datasource.

Because Renovate depends on containerbase/python-prebuild it will also fetch releases from the GitHub API.

Example custom manager

Below is a custom regex manager to update the Python versions in a Dockerfile. Python versions sometimes drop the dot that separate the major and minor number: so 3.11 becomes 311. The example below handles this case.

ARG PYTHON_VERSION=311
FROM image-python${PYTHON_VERSION}-builder:1.0.0
{
  "customManagers": [
    {
      "customType": "regex",
      "fileMatch": ["^Dockerfile$"],
      "matchStringsStrategy": "any",
      "matchStrings": [
        "ARG PYTHON_VERSION=\"?(?<currentValue>3(?<minor>\\d+))\"?\\s"
      ],
      "autoReplaceStringTemplate": "ARG PYTHON_VERSION={{{replace '\\.' '' newValue}}}\n",
      "currentValueTemplate": "3.{{{minor}}}",
      "datasourceTemplate": "python-version",
      "versioningTemplate": "python",
      "depNameTemplate": "python"
    }
  ]
}