renovate/lib/modules/manager/pip-compile
Michael Kriese ec4b17b8b6
feat(config)!: default dockerImagePrefix to containerbase (#20150)
Sidecar containers will now use `containerbase/` prefix instead of `renovate/` prefix.

BREAKING CHANGE: containerbase/ account used for sidecar containers instead of renovate/
2023-03-10 09:34:40 +01:00
..
__fixtures__ feat(manager/pip-compile): handle --resolver argument (#18489) 2022-10-27 16:12:05 +00:00
artifacts.spec.ts feat(config)!: default dockerImagePrefix to containerbase (#20150) 2023-03-10 09:34:40 +01:00
artifacts.ts feat(core): centralize sidecar image usage (#19545) 2022-12-23 09:45:15 +00:00
index.ts refactor: convert ProgrammingLanguage to union type (#18748) 2022-11-05 08:49:57 +00:00
readme.md docs: Use a PEP440-compliant version constraint in pip-compile documentation (#19855) 2023-01-16 11:58:27 +01:00

Due to limited functionality, the pip-compile manager should be considered in an "alpha" stage, which means it's not ready for production use for the majority of end users. We welcome feedback and bug reports!

The current implementation has some limitations. Read the full document before you start using the pip-compile manager.

Non-configured fileMatch

The pip-compile manager has an empty array for default fileMatch, meaning it won't match any files ever by default. You can "activate" the manager by specifying a fileMatch pattern such as:

{
  "pip-compile": {
    "fileMatch": ["(^|/)requirements\\.in$"]
  }
}

Assumption of .in/.txt

If Renovate matches/extracts a file, it assumes that the corresponding output file is found by swapping the .in for .txt. e.g. requirements.in => requirements.txt It will not work if files are in separate directories, including input/requirements.in and output/requirements.txt.

If no .in suffix is found, then a .txt suffix is appended for the output file, e.g. foo.file would look for a corresponding foo.file.txt.

We intend to make the mapping configurable in future iterations.

Configuration of Python version

By default Renovate uses the latest version of Python. To get Renovate to use another version of Python, add a constraints` rule to the Renovate config:

{
  "constraints": {
    "python": "==3.7"
  }
}

pip-compile arguments

Renovate reads the requirements.txt file and extracts these pip-compile arguments:

  • --generate-hashes
  • --allow-unsafe
  • --no-emit-index-url
  • --strip-extras
  • --resolver