-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Describe the issue
This is a duplicate of #7071, which was automatically closed for being stale despite some activity.
The boto3 dependency for checkov is pinned to version 1.35.49 - this creates issues for implementing projects that want to specify checkov as a Python package dependency and want to use a later version of boto3 (or use another tool with a different version - see this comment).
Instead of pinning, can we use a flexible constraint? There has been some back-and-forth on this - the dependency was most recently pinned in #7270, citing a Jenkins issue.
Examples
This is a minimal example using a Poetry build:
[build-system]
requires = ["poetry-core>=2.0.0, <3.0.0"]
build-backend = "poetry.core.masonry.api"
[project]
name = "boto-conflict"
version = "0.0.1"
requires-python = ">=3.13"
dependencies = [
"boto3==1.40.43",
]
[tool.poetry.group.dev.dependencies]
checkov = "==3.2.485"Running poetry lock yields the following:
> poetry lock
Updating dependencies
Resolving dependencies... (0.2s)
Because checkov (3.2.485) depends on boto3 (1.35.49)
and boto-conflict depends on boto3 (1.40.43), checkov is forbidden.
So, because boto-conflict depends on checkov (==3.2.485), version solving failed.
Version (please complete the following information):
- Checkov Version 3.2.485
Additional context
The recommended usage of checkov is as a CLI tool, not as a package dependency (see comment). While using as a CLI bypasses the dependency conflict, this issue is requesting compatibility for both usage methods.