Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible with mysql-connector-python 8.1.0 #914

Closed
carlcsaposs-canonical opened this issue Jul 18, 2023 · 26 comments
Closed

Incompatible with mysql-connector-python 8.1.0 #914

carlcsaposs-canonical opened this issue Jul 18, 2023 · 26 comments
Labels
hint/2.9 going on 2.9 branch

Comments

@carlcsaposs-canonical
Copy link

python-libjuju is incompatible with mysql-connector-python 8.1.0 since python-libjuju depends on macaroonbakery, which hasn't been updated since Feb 2020 and depends on protobuf<4

mysql-connector-python depends on protobuf>=4.21.1

Details
Because no versions of macaroonbakery match >1.1,<1.1.2 || >1.1.2,<1.1.3 || >1.1.3,<1.1.4 || >1.1.4,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<2.0
 and macaroonbakery (1.1.0) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.1.2 || >1.1.2,<1.1.3 || >1.1.3,<1.1.4 || >1.1.4,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.1.2) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.1.3) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.1.4 || >1.1.4,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.1.4) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.1.5) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.2.0) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.2.1) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.2.2) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.2.3) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.3.0) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.3.1) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    Because no versions of mysql-connector-python match >8.1.0,<9.0.0
 and mysql-connector-python (8.1.0) depends on protobuf (>=4.21.1,<=4.21.12), mysql-connector-python (>=8.1.0,<9.0.0) requires protobuf (>=4.21.1,<=4.21.12).
(1) Thus, mysql-connector-python (>=8.1.0,<9.0.0) is incompatible with macaroonbakery (>=1.1,<2.0).

    Because no versions of juju match >=2,<2.6.0 || >2.6.0,<2.6.1 || >2.6.1,<2.6.2 || >2.6.2,<2.6.3 || >2.6.3,<2.7.0 || >2.7.0,<2.7.1 || >2.7.1,<2.8.0 || >2.8.0,<2.8.1 || >2.8.1,<2.8.2 || >2.8.2,<2.8.3 || >2.8.3,<2.8.4 || >2.8.4,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0
 and juju (2.6.0) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.6.1 || >2.6.1,<2.6.2 || >2.6.2,<2.6.3 || >2.6.3,<2.7.0 || >2.7.0,<2.7.1 || >2.7.1,<2.8.0 || >2.8.0,<2.8.1 || >2.8.1,<2.8.2 || >2.8.2,<2.8.3 || >2.8.3,<2.8.4 || >2.8.4,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.6.1) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.6.2) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.6.3 || >2.6.3,<2.7.0 || >2.7.0,<2.7.1 || >2.7.1,<2.8.0 || >2.8.0,<2.8.1 || >2.8.1,<2.8.2 || >2.8.2,<2.8.3 || >2.8.3,<2.8.4 || >2.8.4,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.6.3) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.7.0) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.7.1 || >2.7.1,<2.8.0 || >2.8.0,<2.8.1 || >2.8.1,<2.8.2 || >2.8.2,<2.8.3 || >2.8.3,<2.8.4 || >2.8.4,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.7.1) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.8.0) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.8.1 || >2.8.1,<2.8.2 || >2.8.2,<2.8.3 || >2.8.3,<2.8.4 || >2.8.4,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.8.1) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.8.2) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.8.3 || >2.8.3,<2.8.4 || >2.8.4,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.8.3) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.8.4) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.8.5 || >2.8.5,<2.8.6 || >2.8.6,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.8.5) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.8.6) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.0) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.1) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.2 || >2.9.2,<2.9.3 || >2.9.3,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.2) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.3) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.4 || >2.9.4,<2.9.5 || >2.9.5,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.4) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.5) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.6 || >2.9.6,<2.9.7 || >2.9.7,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.6) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.7) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.8 || >2.9.8,<2.9.9 || >2.9.9,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.8) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.9) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.10 || >2.9.10,<2.9.11 || >2.9.11,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.10) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.11) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.38.1 || >2.9.38.1,<2.9.42.1 || >2.9.42.1,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.38.1) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.42.1) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.42.2 || >2.9.42.2,<2.9.42.3 || >2.9.42.3,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.42.2) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.42.3) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<2.9.42.4 || >2.9.42.4,<2.9.43.0 || >2.9.43.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (2.9.42.4) depends on macaroonbakery (>=1.1,<2.0)
 and juju (2.9.43.0) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (3.0.0) depends on macaroonbakery (>=1.1,<2.0)
 and juju (3.0.1) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (3.0.2) depends on macaroonbakery (>=1.1,<2.0)
 and juju (3.0.3) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<3.0.4 || >3.0.4,<3.1.0.1 || >3.1.0.1,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (3.0.4) depends on macaroonbakery (>=1.1,<2.0)
 and juju (3.1.0.1) depends on macaroonbakery (>=1.1,<2.0), juju (>=2,<3.1.2.0 || >3.1.2.0,<3.2.0.0 || >3.2.0.0) requires macaroonbakery (>=1.1,<2.0).
    And because juju (3.1.2.0) depends on macaroonbakery (>=1.1,<2.0)
 and juju (3.2.0.0) depends on macaroonbakery (>=1.1,<2.0), juju (>=2) requires macaroonbakery (>=1.1,<2.0).
    And because mysql-connector-python (>=8.1.0,<9.0.0) is incompatible with macaroonbakery (>=1.1,<2.0) (1), mysql-connector-python (>=8.1.0,<9.0.0) is incompatible with juju (>=2)
    So, because foo1 depends on both juju (>=2) and mysql-connector-python (^8.1.0), version solving failed.

Steps to reproduce:

  1. Install poetry (e.g. pipx install poetry)
  2. poetry new foo
  3. cd foo
  4. poetry add mysql-connector-python^8.1.0
  5. poetry add juju>=2
@github-actions
Copy link

This issue is marked as incomplete because it has been open 30 days with no activity. Please remove incomplete label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the state/incomplete need more information label Aug 20, 2023
@carlcsaposs-canonical
Copy link
Author

Still an issue

@jnsgruk
Copy link
Member

jnsgruk commented Sep 12, 2023

@cderici would be interesting to run an experiment with a fork of py-macaroon-bakery with the constraint relaxed and see how things change. We could always submit a PR upstream and run on a forked dep until then?

@cderici
Copy link
Contributor

cderici commented Sep 12, 2023

@jnsgruk yeah that's what I was thinking as well, addressing this soon 👍

@cderici
Copy link
Contributor

cderici commented Oct 5, 2023

@carlcsaposs-canonical could you please try out the #956 and confirm that it fixes this? Thanks!

@carlcsaposs-canonical
Copy link
Author

@carlcsaposs-canonical could you please try out the #956 and confirm that it fixes this? Thanks!

Sorry for the delay, still seeing issues:

Because juju (3.2.2.0) @ git+https://github.com/cderici/python-libjuju/@use-local-fork-for-macaroonbakery depends on macaroonbakery (1.3.1) @ git+https://github.com/cderici/py-macaroon-bakery@relax-protobuf-version
 and macaroonbakery (1.3.1) @ git+https://github.com/cderici/py-macaroon-bakery@relax-protobuf-version depends on protobuf (>=3.0.0,<4.0), juju (3.2.2.0) @ git+https://github.com/cderici/python-libjuju/@use-local-fork-for-macaroonbakery requires protobuf (>=3.0.0,<4.0).
And because mysql-connector-python (8.1.0) depends on protobuf (>=4.21.1,<=4.21.12)
 and no versions of mysql-connector-python match >8.1.0,<8.2.0, juju (3.2.2.0) @ git+https://github.com/cderici/python-libjuju/@use-local-fork-for-macaroonbakery is incompatible with mysql-connector-python (>=8.1.0,<8.2.0).
So, because charm depends on both juju (3.2.2.0) @ git+https://github.com/cderici/python-libjuju/@use-local-fork-for-macaroonbakery and mysql-connector-python (~8.1.0), version solving failed.

Reproducible with canonical/mysql-operator#337 and poetry lock --no-update

or:

  1. Install poetry (e.g. pipx install poetry)
  2. poetry new foo
  3. cd foo
  4. poetry add mysql-connector-python^8.1.0
  5. poetry add git+https://github.com/cderici/python-libjuju@use-local-fork-for-macaroonbakery

petrutlucian94 added a commit to petrutlucian94/py-macaroon-bakery that referenced this issue Oct 24, 2023
py-macaroon-bakery currently requires an old protobuf version,
which is incompatible with other projects such as
python-mysql-connector [1] or the Openstack global requirements [2].

Since the project is compatible with recent protobuf versions
(4.24.x), we'll update the protobuf dependency to >=3.4,<5.0.

[1] juju/python-libjuju#914
[2] https://github.com/openstack/requirements/blob/e54dc19f590bd0ea74fd2d7ada3d0d1b3321260b/upper-constraints.txt#L377C1-L377C18
Copy link

This issue is marked as incomplete because it has been open 30 days with no activity. Please remove incomplete label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the state/incomplete need more information label Nov 11, 2023
@carlcsaposs-canonical
Copy link
Author

Still an issue

@cderici cderici added work-in-progress and removed state/incomplete need more information labels Nov 13, 2023
@cderici
Copy link
Contributor

cderici commented Dec 6, 2023

The ceiling for protobuf dependency has been removed in the macaroonbakery by go-macaroon-bakery/py-macaroon-bakery#90 and released on pypi https://pypi.org/project/macaroonbakery/1.3.2/, so this incompatibility should be resolved now.

@carlcsaposs-canonical could you please confirm? Thanks!

@carlcsaposs-canonical
Copy link
Author

@cderici what versions do you want me to test with?

carlcsaposs@laptop:~$ poetry new foo4
Created package foo4 in foo4
carlcsaposs@laptop:~$ cd foo4
carlcsaposs@laptop:~/foo4$ poetry add mysql-connector-python^8.1.0
Creating virtualenv foo4-4WLpIJhu-py3.10 in /home/carlcsaposs/.cache/pypoetry/virtualenvs

Updating dependencies
Resolving dependencies... (60.3s)

Package operations: 2 installs, 0 updates, 0 removals

  • Installing protobuf (4.21.12)
  • Installing mysql-connector-python (8.2.0)

Writing lock file
carlcsaposs@laptop:~/foo4$ poetry add juju
Using version ^3.3.0.0 for juju

Updating dependencies
Resolving dependencies... Downloading https://files.pythonhosted.org/packages/ed/eb/969660d216a5ea0c01c40046dff95211a6d4ad06dd798c42dc77f1eabbbb/macaroonbakery-Resolving dependencies... Downloading https://files.pythonhosted.org/packages/44/c9/1d5824fd56fe591fc3c2cb2bc6cc49ee0ed96e656e2909ea715ad3846b7f/macaroonbakery-Resolving dependencies... (80.1s)

    Because macaroonbakery (1.1.0) depends on protobuf (>=3.0.0,<4.0)
 and no versions of macaroonbakery match >1.1,<1.1.2 || >1.1.2,<1.1.3 || >1.1.3,<1.1.4 || >1.1.4,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0, macaroonbakery (>=1.1,<1.1.2 || >1.1.2,<1.1.3 || >1.1.3,<1.1.4 || >1.1.4,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.1.2) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.1.3 || >1.1.3,<1.1.4 || >1.1.4,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.1.3) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.1.4) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.1.5 || >1.1.5,<1.2.0 || >1.2.0,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.1.5) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.2.0) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.2.1 || >1.2.1,<1.2.2 || >1.2.2,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.2.1) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.2.2) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.2.3 || >1.2.3,<1.3.0 || >1.3.0,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.2.3) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.3.0) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<1.3.1 || >1.3.1,<1.3.2 || >1.3.2,<2.0) requires protobuf (>=3.0.0,<4.0).
    And because macaroonbakery (1.3.1) depends on protobuf (>=3.0.0,<4.0)
 and macaroonbakery (1.3.2) depends on protobuf (>=3.0.0,<4.0), macaroonbakery (>=1.1,<2.0) requires protobuf (>=3.0.0,<4.0).
    Because no versions of juju match >3.3.0.0,<4.0.0.0
 and juju (3.3.0.0) depends on macaroonbakery (>=1.1,<2.0), juju (>=3.3.0.0,<4.0.0.0) requires macaroonbakery (>=1.1,<2.0).
(1) Thus, juju (>=3.3.0.0,<4.0.0.0) requires protobuf (>=3.0.0,<4.0).

    Because no versions of mysql-connector-python match >8.1.0,<8.2.0 || >8.2.0,<9.0.0
 and mysql-connector-python (8.1.0) depends on protobuf (>=4.21.1,<=4.21.12), mysql-connector-python (>=8.1.0,<8.2.0 || >8.2.0,<9.0.0) requires protobuf (>=4.21.1,<=4.21.12).
    And because mysql-connector-python (8.2.0) depends on protobuf (>=4.21.1,<=4.21.12), mysql-connector-python (>=8.1.0,<9.0.0) requires protobuf (>=4.21.1,<=4.21.12).
    And because juju (>=3.3.0.0,<4.0.0.0) requires protobuf (>=3.0.0,<4.0) (1), juju (>=3.3.0.0,<4.0.0.0) is incompatible with mysql-connector-python (>=8.1.0,<9.0.0)
    So, because foo4 depends on both mysql-connector-python (^8.1.0) and juju (^3.3.0.0), version solving failed.

if you want to test yourself, here are steps to reproduce: #914 (comment) or #914 (comment)

@cderici
Copy link
Contributor

cderici commented Dec 7, 2023

@carlcsaposs-canonical Thanks for looking at this again, it was working for me, not sure what I've missed there in my local setup. It appears that I forgot to change the setup.py along with the requirements in my initial protobuf PR, a new PR is open go-macaroon-bakery/py-macaroon-bakery#92 to fix this, once that lands and pushed into pypi, I'll try again with a clean setup. I might ping you again @carlcsaposs-canonical to double confirm, thanks again for your time 👍

@carlcsaposs-canonical
Copy link
Author

@cderici fyi it's also possible to test a branch with something like this poetry add git+https://github.com/cderici/python-libjuju@use-local-fork-for-macaroonbakery or create a venv & pip install git+https://github.com/cderici/python-libjuju@use-local-fork-for-macaroonbakery

@cderici
Copy link
Contributor

cderici commented Dec 7, 2023

@carlcsaposs-canonical Yeah I usually work with venv, didn't know how to do it with poetry, thanks for showing. Note that that branch is no longer needed since the upstream changed the protobuf requirements.

go-macaroon-bakery/py-macaroon-bakery#92 is also landed and published on pypi. I tried again your steps and I'm able to install both mysql-connector-python^8.1.0 and juju. It would help if you could check and confirm the fix 👍 Thanks!

@carlcsaposs-canonical
Copy link
Author

looks like it's working in the simple reproduction

also testing here with the charm: https://github.com/canonical/mysql-operator/actions/runs/7131287248?pr=337

thank you!

@gboutry
Copy link
Contributor

gboutry commented Dec 7, 2023

Jumping in, we noticed that after macaroonbakery 1.3.3 has been published ,all of our CI tests have been failing in sunbeam.

Such as https://github.com/canonical/snap-openstack/actions/runs/7131094652/job/19418941480?pr=65

Any pointers on how to resolve it since you seem to have them working ?

@cderici
Copy link
Contributor

cderici commented Dec 7, 2023

So I tested pylibjuju with 1.3.2 as well as 1.3.3 (with some charms from charmhub) and it generally worked just fine. However, this is concerning, not sure what's going on there.

@fabricematrat can you please take look at the error that @gboutry mentioned above, is this something that needs to be fixed on the macaroonbakery? as the error mentions that some re-generation is needed:

If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.

@gboutry mentioned that pinning the protobuf to 4.21 made it work, so we might need to create a ceiling on macaroonbakery if we can't find a better solution.

@cderici
Copy link
Contributor

cderici commented Dec 7, 2023

@gboutry
Copy link
Contributor

gboutry commented Dec 7, 2023

It's not working with protobuf 4.21.7, a bad refresh of my venv led me to believe this

@cderici
Copy link
Contributor

cderici commented Dec 7, 2023

Just for reference, reported this on the macaroonbakery repo go-macaroon-bakery/py-macaroon-bakery#92 (comment)

@gboutry
Copy link
Contributor

gboutry commented Dec 7, 2023

I also raised this issue: go-macaroon-bakery/py-macaroon-bakery#94

@gabrielcocenza
Copy link

Hi @cderici
Our CI started failing and it seems that is related with libjuju (we are using juju<3.0):

unit create: /home/cocenza/Documents/canonical/charmed-openstack-upgrader-1/.tox/unit
unit installdeps: .[unittests]
unit installed: aioconsole==0.6.2,aiounittest==1.4.2,bcrypt==4.1.1,cachetools==5.3.2,certifi==2023.11.17,cffi==1.16.0,charmed-openstack-upgrader==0.0.dev105,charset-normalizer==3.3.2,colorama==0.4.6,coverage==7.3.2,cryptography==41.0.7,debtcollector==2.5.0,exceptiongroup==1.2.0,gevent==23.9.1,google-auth==2.25.1,greenlet==3.0.1,halo==0.0.31,idna==3.6,iniconfig==2.0.0,juju==2.9.46.0,jujubundlelib==0.5.7,kubernetes==28.1.0,log-symbols==0.0.14,macaroonbakery==1.3.3,mypy-extensions==1.0.0,netaddr==0.9.0,oauthlib==3.2.2,oslo.config==9.2.0,oslo.i18n==6.2.0,packaging==23.2,paramiko==2.12.0,pbr==6.0.0,pluggy==1.3.0,protobuf==4.25.1,pyasn1==0.5.1,pyasn1-modules==0.3.0,pycparser==2.21,pymacaroons==0.13.0,PyNaCl==1.5.0,pyRFC3339==1.1,pytest==7.4.3,pytest-asyncio==0.23.2,pytest-cov==4.1.0,pytest-mock==3.12.0,python-dateutil==2.8.2,pytz==2023.3.post1,PyYAML==6.0.1,requests==2.31.0,requests-oauthlib==1.3.1,rfc3986==2.0.0,rsa==4.9,ruamel.yaml==0.18.5,ruamel.yaml.clib==0.2.8,six==1.16.0,spinners==0.0.24,stevedore==5.1.0,termcolor==2.4.0,theblues==0.5.2,tomli==2.0.1,toposort==1.10,typing-inspect==0.9.0,typing_extensions==4.8.0,urllib3==1.26.18,websocket-client==1.7.0,websockets==12.0,wrapt==1.16.0,zope.event==5.0,zope.interface==6.1
unit run-test-pre: PYTHONHASHSEED='2170810859'
unit run-test: commands[0] | pytest /home/cocenza/Documents/canonical/charmed-openstack-upgrader-1/tests/unit -v --cov --cov-report=term-missing --cov-report=html --cov-report=xml
ImportError while loading conftest '/home/cocenza/Documents/canonical/charmed-openstack-upgrader-1/tests/unit/conftest.py'.
tests/unit/conftest.py:23: in <module>
    from cou.apps.auxiliary import OpenStackAuxiliaryApplication
cou/__init__.py:15: in <module>
    from cou.__main__ import main
cou/__main__.py:16: in <module>
    from cou.cli import entrypoint
cou/cli.py:28: in <module>
    from cou.exceptions import COUException, HighestReleaseAchieved, TimeoutException
cou/exceptions.py:17: in <module>
    from juju.action import Action
.tox/unit/lib/python3.10/site-packages/juju/action.py:4: in <module>
    from . import model
.tox/unit/lib/python3.10/site-packages/juju/model.py:29: in <module>
    from .charmstore import CharmStore
.tox/unit/lib/python3.10/site-packages/juju/charmstore.py:9: in <module>
    import theblues.charmstore
.tox/unit/lib/python3.10/site-packages/theblues/charmstore.py:7: in <module>
    from macaroonbakery import httpbakery
.tox/unit/lib/python3.10/site-packages/macaroonbakery/httpbakery/__init__.py:3: in <module>
    from ._client import (
.tox/unit/lib/python3.10/site-packages/macaroonbakery/httpbakery/_client.py:7: in <module>
    import macaroonbakery.bakery as bakery
.tox/unit/lib/python3.10/site-packages/macaroonbakery/bakery/__init__.py:75: in <module>
    from ._oven import (
.tox/unit/lib/python3.10/site-packages/macaroonbakery/bakery/_oven.py:29: in <module>
    from ._internal import id_pb2
.tox/unit/lib/python3.10/site-packages/macaroonbakery/bakery/_internal/id_pb2.py:35: in <module>
    _descriptor.FieldDescriptor(
.tox/unit/lib/python3.10/site-packages/google/protobuf/descriptor.py:553: in __new__
    _message.Message._CheckCalledFromGeneratedFile()
E   TypeError: Descriptors cannot be created directly.
E   If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
E   If you cannot immediately regenerate your protos, some other possible workarounds are:
E    1. Downgrade the protobuf package to 3.20.x or lower.
E    2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
E
E   More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
ERROR: InvocationError for command /home/cocenza/Documents/canonical/charmed-openstack-upgrader-1/.tox/unit/bin/pytest tests/unit -v --cov --cov-report=term-missing --cov-report=html --cov-report=xml (exited with code 4)
___________________________________________________________________________________________ summary ____________________________________________________________________________________________
ERROR:   unit: commands failed

I've checked and when it used to pass the protobuf==3.20.3.

@cderici
Copy link
Contributor

cderici commented Dec 13, 2023

I got multiple teams confirming that this problem is resolved after go-macaroon-bakery/py-macaroon-bakery#95 landed, @gabrielcocenza can you also confirm?

@carlcsaposs-canonical It would also help if you can check this once again just to make sure since we had another release pushed for the macaroonbakery with that PR. Thanks!

@gabrielcocenza
Copy link

@cderici I confirm that the issue is solved. Thanks!

@carlcsaposs-canonical
Copy link
Author

@cderici which version/branch of libjuju do you want me to test with?

@cderici
Copy link
Contributor

cderici commented Dec 14, 2023

@carlcsaposs-canonical Version of libjuju doesn't matter as both 2.9 and 3.x tracks have the same range for the macaroonbakery, but regardless, I don't observe this incompatibility (with mysql-connector-python) anymore in my tests (that get the latest macaroonbakery 1.3.4 that's released yesterday), so I'm gonna close this issue. Feel free to reopen if it persists.

@cderici cderici closed this as completed Dec 14, 2023
@carlcsaposs-canonical
Copy link
Author

Appears to be passing on our end. Couple failing tests, but they look unrelated at first glance

https://github.com/canonical/mysql-operator/actions/runs/7208377297?pr=337

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hint/2.9 going on 2.9 branch
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants