SeldonIO / seldon-core

An MLOps framework to package, deploy, monitor and manage thousands of production machine learning models
https://www.seldon.io/tech/products/core/
Other
4.25k stars 825 forks source link

Update Protobuf Dependency #5605

Open sjoerdvandenbos-prodrive opened 2 weeks ago

sjoerdvandenbos-prodrive commented 2 weeks ago

seldon-core sets an upper limit of its dependency of protobuf to < 4.0.0. Inspection of pipdeptree -p seldon-core shows that there is no subdependency that is causing this.

In order to improve developer experience I would like to generate type stubs for protobuf objects, however this is only possible starting from major version 4.

Is it possible to lift this restriction to for example protobuf < 5.0.0?

pipdeptree output:

seldon-core==1.18.1
├── click [required: >=8.0.0a1,<8.1, installed: 8.0.4]
│   └── colorama [required: Any, installed: 0.4.6]
├── cryptography [required: >=39.0.1,<41.1, installed: 41.0.7]      
│   └── cffi [required: >=1.12, installed: 1.16.0]
│       └── pycparser [required: Any, installed: 2.22]
├── Flask [required: >=2.0.0,<3.0.0, installed: 2.2.5]
│   ├── click [required: >=8.0, installed: 8.0.4]
│   │   └── colorama [required: Any, installed: 0.4.6]
│   ├── importlib_metadata [required: >=3.6.0, installed: 7.1.0]    
│   │   └── zipp [required: >=0.5, installed: 3.18.1]
│   ├── itsdangerous [required: >=2.0, installed: 2.2.0]
│   ├── Jinja2 [required: >=3.0, installed: 3.1.4]
│   │   └── MarkupSafe [required: >=2.0, installed: 2.1.5]
│   └── Werkzeug [required: >=2.2.2, installed: 2.2.3]
│       └── MarkupSafe [required: >=2.1.1, installed: 2.1.5]        
├── Flask-Cors [required: <4.0.0, installed: 3.0.10]
│   ├── Flask [required: >=0.9, installed: 2.2.5]
│   │   ├── click [required: >=8.0, installed: 8.0.4]
│   │   │   └── colorama [required: Any, installed: 0.4.6]
│   │   ├── importlib_metadata [required: >=3.6.0, installed: 7.1.0]
│   │   │   └── zipp [required: >=0.5, installed: 3.18.1]
│   │   ├── itsdangerous [required: >=2.0, installed: 2.2.0]
│   │   ├── Jinja2 [required: >=3.0, installed: 3.1.4]
│   │   │   └── MarkupSafe [required: >=2.0, installed: 2.1.5]
│   │   └── Werkzeug [required: >=2.2.2, installed: 2.2.3]
│   │       └── MarkupSafe [required: >=2.1.1, installed: 2.1.5]
│   └── six [required: Any, installed: 1.16.0]
├── Flask-OpenTracing [required: >=1.1.0,<1.2.0, installed: 1.1.0]
│   ├── Flask [required: Any, installed: 2.2.5]
│   │   ├── click [required: >=8.0, installed: 8.0.4]
│   │   │   └── colorama [required: Any, installed: 0.4.6]
│   │   ├── importlib_metadata [required: >=3.6.0, installed: 7.1.0]
│   │   │   └── zipp [required: >=0.5, installed: 3.18.1]
│   │   ├── itsdangerous [required: >=2.0, installed: 2.2.0]
│   │   ├── Jinja2 [required: >=3.0, installed: 3.1.4]
│   │   │   └── MarkupSafe [required: >=2.0, installed: 2.1.5]
│   │   └── Werkzeug [required: >=2.2.2, installed: 2.2.3]
│   │       └── MarkupSafe [required: >=2.1.1, installed: 2.1.5]
│   └── opentracing [required: >=2.0,<3, installed: 2.4.0]
├── grpcio [required: <2.0.0, installed: 1.63.0]
├── grpcio-opentracing [required: >=1.1.4,<1.2.0, installed: 1.1.4]
│   ├── grpcio [required: >=1.1.3,<2.0, installed: 1.63.0]
│   ├── opentracing [required: >=1.2.2, installed: 2.4.0]
│   └── six [required: >=1.10, installed: 1.16.0]
├── grpcio-reflection [required: <2.0.0, installed: 1.48.2]
│   ├── grpcio [required: >=1.48.2, installed: 1.63.0]
│   └── protobuf [required: >=3.12.0, installed: 3.20.3]
├── gunicorn [required: >=19.9.0,<20.2.0, installed: 20.1.0]
│   └── setuptools [required: >=3.0, installed: 69.5.1]
├── jaeger-client [required: >=4.1.0,<4.5.0, installed: 4.4.0]
│   ├── opentracing [required: >=2.1,<3.0, installed: 2.4.0]
│   ├── threadloop [required: >=1,<2, installed: 1.0.2]
│   │   └── tornado [required: Any, installed: 6.4]
│   ├── thrift [required: Any, installed: 0.20.0]
│   │   └── six [required: >=1.7.2, installed: 1.16.0]
│   └── tornado [required: >=4.3, installed: 6.4]
├── jsonschema [required: <4.0.0, installed: 3.2.0]
│   ├── attrs [required: >=17.4.0, installed: 23.2.0]
│   ├── pyrsistent [required: >=0.14.0, installed: 0.20.0]
│   ├── setuptools [required: Any, installed: 69.5.1]
│   └── six [required: >=1.11.0, installed: 1.16.0]
├── numpy [required: <2.0.0, installed: 1.24.4]
├── opentracing [required: >=2.2.0,<2.5.0, installed: 2.4.0]
├── prometheus-client [required: >=0.7.1,<0.9.0, installed: 0.8.0]
├── protobuf [required: >=3.20.2,<4.0.0, installed: 3.20.3]
├── PyYAML [required: >=5.4,<=6.0.1, installed: 5.4.1]
├── requests [required: <3.0.0, installed: 2.31.0]
│   ├── certifi [required: >=2017.4.17, installed: 2024.2.2]
│   ├── charset-normalizer [required: >=2,<4, installed: 3.3.2]
│   ├── idna [required: >=2.5,<4, installed: 3.7]
│   └── urllib3 [required: >=1.21.1,<3, installed: 1.26.18]
├── setuptools [required: >=65.5.1, installed: 69.5.1]
├── urllib3 [required: >=1.26.5,<1.27, installed: 1.26.18]
└── Werkzeug [required: >=2.1.1,<2.3, installed: 2.2.3]
    └── MarkupSafe [required: >=2.1.1, installed: 2.1.5]
sakoush commented 2 weeks ago

@sjoerdvandenbos-prodrive many thanks for your reporting this issue. We also do welcome contributions to fix it.