Closed
Description
Description
Steps to reproduce
- Install flask.
- Install commitizen.
Commitizen with poetry breaks dependencies because commitizen requires Jinja2 lower than v3. Flaskv2 requires us to use of Jinja2 v3.
Current behavior downgrading commitizen does not seem to be working.
❯ poetry add commitizen@2.17.0 --dev
Updating dependencies
Resolving dependencies... (1.8s)
SolverProblemError
Because commitizen (2.17.0) depends on jinja2 (>=2.10.3,<3.0.0)
and flask (2.0.1) depends on Jinja2 (>=3.0), commitizen (2.17.0) is incompatible with flask (2.0.1).
And because no versions of flask match >2.0.1,<3.0.0, commitizen (2.17.0) is incompatible with Flask (>=2.0.1,<3.0.0).
So, because XXX depends on both Flask (^2.0.1) and commitizen (2.17.0), version solving failed.
at ~/.poetry/lib/poetry/puzzle/solver.py:241 in _solve
237│ packages = result.packages
238│ except OverrideNeeded as e:
239│ return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
240│ except SolveFailure as e:
→ 241│ raise SolverProblemError(e)
242│
243│ results = dict(
244│ depth_first_search(
245│ PackageNode(self._package, packages), aggregate_package_nodes
❯ poetry add commitizen@2.16.0 --dev
Updating dependencies
Resolving dependencies... (0.3s)
SolverProblemError
Because commitizen (2.16.0) depends on jinja2 (>=2.10.3,<3.0.0)
and flask (2.0.1) depends on Jinja2 (>=3.0), commitizen (2.16.0) is incompatible with flask (2.0.1).
And because no versions of flask match >2.0.1,<3.0.0, commitizen (2.16.0) is incompatible with Flask (>=2.0.1,<3.0.0).
So, because XXX depends on both Flask (^2.0.1) and commitizen (2.16.0), version solving failed.
at ~/.poetry/lib/poetry/puzzle/solver.py:241 in _solve
237│ packages = result.packages
238│ except OverrideNeeded as e:
239│ return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
240│ except SolveFailure as e:
→ 241│ raise SolverProblemError(e)
242│
243│ results = dict(
244│ depth_first_search(
245│ PackageNode(self._package, packages), aggregate_package_nodes
❯ poetry add commitizen@2.15.0 --dev
Updating dependencies
Resolving dependencies... (0.9s)
SolverProblemError
Because commitizen (2.15.0) depends on jinja2 (>=2.10.3,<3.0.0)
and flask (2.0.1) depends on Jinja2 (>=3.0), commitizen (2.15.0) is incompatible with flask (2.0.1).
And because no versions of flask match >2.0.1,<3.0.0, commitizen (2.15.0) is incompatible with Flask (>=2.0.1,<3.0.0).
So, because XXX depends on both Flask (^2.0.1) and commitizen (2.15.0), version solving failed.
at ~/.poetry/lib/poetry/puzzle/solver.py:241 in _solve
237│ packages = result.packages
238│ except OverrideNeeded as e:
239│ return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
240│ except SolveFailure as e:
→ 241│ raise SolverProblemError(e)
242│
243│ results = dict(
244│ depth_first_search(
245│ PackageNode(self._package, packages), aggregate_package_nodes
❯ poetry add commitizen@2.10.0 --dev
Updating dependencies
Resolving dependencies... (0.4s)
SolverProblemError
Because commitizen (2.10.0) depends on jinja2 (>=2.10.3,<3.0.0)
and flask (2.0.1) depends on Jinja2 (>=3.0), commitizen (2.10.0) is incompatible with flask (2.0.1).
And because no versions of flask match >2.0.1,<3.0.0, commitizen (2.10.0) is incompatible with Flask (>=2.0.1,<3.0.0).
So, because XXX depends on both Flask (^2.0.1) and commitizen (2.10.0), version solving failed.
at ~/.poetry/lib/poetry/puzzle/solver.py:241 in _solve
237│ packages = result.packages
238│ except OverrideNeeded as e:
239│ return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
240│ except SolveFailure as e:
→ 241│ raise SolverProblemError(e)
242│
243│ results = dict(
244│ depth_first_search(
245│ PackageNode(self._package, packages), aggregate_package_nodes
❯ poetry add commitizen@2.0 --dev
Updating dependencies
Resolving dependencies... (0.5s)
SolverProblemError
Because commitizen (2.0.0) depends on jinja2 (>=2.10.3,<3.0.0)
and flask (2.0.1) depends on Jinja2 (>=3.0), commitizen (2.0.0) is incompatible with flask (2.0.1).
And because no versions of flask match >2.0.1,<3.0.0, commitizen (2.0.0) is incompatible with Flask (>=2.0.1,<3.0.0).
So, because XXX depends on both Flask (^2.0.1) and commitizen (2.0), version solving failed.
at ~/.poetry/lib/poetry/puzzle/solver.py:241 in _solve
237│ packages = result.packages
238│ except OverrideNeeded as e:
239│ return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
240│ except SolveFailure as e:
→ 241│ raise SolverProblemError(e)
242│
243│ results = dict(
244│ depth_first_search(
245│ PackageNode(self._package, packages), aggregate_package_nodes
Desired behavior
We should be able to use commitizen with any version of flask or jinja2.
Environment
Currently, the only workaround is to remove flask and install commitizen before installing flask.
This would result in use up using flask v1.1.4 instead of v2.0.1.
- commitizen version:
❯ cz version
2.17.9 - python version:
❯ python -V
Python 3.9.4 - operating system:
❯ python3 -c "import platform; print(platform.system())"
Darwin