0
0
mirror of https://github.com/renovatebot/renovate.git synced 2024-12-22 21:48:32 +00:00
renovatebot_renovate/lib/modules/datasource/python-version/readme.md
Norbert Szulc c8aacc4c05
feat(datasource): Add python-version datasource (#27583)
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
Co-authored-by: Rhys Arkins <rhys@arkins.net>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2024-05-16 10:00:07 +00:00

37 lines
1.3 KiB
Markdown

This datasource returns Python releases from the [python.org API](https://www.python.org/api/v2/downloads/release/).
It also fetches deprecated versions from the [Endoflife Date datasource](../endoflife-date/index.md).
Because Renovate depends on [`containerbase/python-prebuild`](https://github.com/containerbase/python-prebuild/releases) it will also fetch releases from the GitHub API.
## Example custom manager
Below is a [custom regex manager](../../manager/regex/index.md) 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.
```dockerfile
ARG PYTHON_VERSION=311
FROM image-python${PYTHON_VERSION}-builder:1.0.0
```
```json
{
"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"
}
]
}
```