Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

[REQUEST] Update commitizen to support Jinja2's latest version for flaskv2.  #391

Closed
@rlam3

Description

@rlam3

Description

Steps to reproduce

  1. Install flask.
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions