elastic / connectors

Source code for all Elastic connectors, developed by the Search team at Elastic, and home of our Python connector development framework
https://www.elastic.co/guide/en/enterprise-search/master/index.html
Other
71 stars 126 forks source link

Forcefully downgrade pyasn1 to 0.6.0 #2817

Closed artem-shelkovnikov closed 2 weeks ago

artem-shelkovnikov commented 2 weeks ago

CI started failing overnight.

This happened because of release of pyasn1 0.6.1 version: https://github.com/pyasn1/pyasn1/pull/75/files. Runtime deprecation happened that affected other libraries that use this package - we only use pyasn1 as a transitive dependency.

This PR enforces usage of previous version for now until the libraries that we use ever support new version.

Pre-Review Checklist

github-actions[bot] commented 2 weeks ago

💚 Backport PR(s) successfully created

Status Branch Result
✅ 8.x https://github.com/elastic/connectors/pull/2819
✅ 8.15 https://github.com/elastic/connectors/pull/2820

The backport PRs will be merged automatically after passing CI.

artem-shelkovnikov commented 2 weeks ago

why < instead of pinning an exact version? Honestly this was feeling better in my head "< X" - version X is the first version that has breaking changes for us.

is this a transitive from a framework dep, or a transitive from tests? If tests, should this go in a different requirements file? No, it's a transitive dependency from framework deps:

.venv/bin/pipdeptree| grep pyasn1 -B5
------------------------------------------------------------------------
│   │       ├── idna [required: >=2.0, installed: 3.8]
│   │       └── multidict [required: >=4.0, installed: 6.1.0]
│   ├── async-timeout [required: Any, installed: 4.0.3]
│   ├── google-auth [required: Any, installed: 2.22.0]
│   │   ├── cachetools [required: >=2.0.0,<6.0, installed: 5.5.0]
│   │   ├── pyasn1_modules [required: >=0.2.1, installed: 0.4.1]
│   │   │   └── pyasn1 [required: >=0.4.6,<0.7.0, installed: 0.6.0]
│   │   ├── rsa [required: >=3.1.4,<5, installed: 4.9]
│   │   │   └── pyasn1 [required: >=0.1.3, installed: 0.6.0]
--
│   └── pyspnego [required: >=0.3, installed: 0.11.1]
│       └── cryptography [required: Any, installed: 42.0.8]
│           └── cffi [required: >=1.12, installed: 1.16.0]
│               └── pycparser [required: Any, installed: 2.22]
├── ldap3 [required: Any, installed: 2.9.1]
│   └── pyasn1 [required: >=0.4.6, installed: 0.6.0]
--
│       └── sniffio [required: Any, installed: 1.3.1]
├── oracledb [required: Any, installed: 2.3.0]
│   └── cryptography [required: >=3.2.1, installed: 42.0.8]
│       └── cffi [required: >=1.12, installed: 1.16.0]
│           └── pycparser [required: Any, installed: 2.22]
├── pyasn1 [required: <0.6.1, installed: 0.6.0]
--
    └── six [required: >=1.5, installed: 1.16.0]
google-cloud-storage==2.10.0
├── google-api-core [required: >=1.31.5,<3.0.0dev,!=2.3.0,!=2.2.*,!=2.1.*,!=2.0.*, installed: 2.19.2]
│   ├── google-auth [required: >=2.14.1,<3.0.dev0, installed: 2.22.0]
│   │   ├── cachetools [required: >=2.0.0,<6.0, installed: 5.5.0]
│   │   ├── pyasn1_modules [required: >=0.2.1, installed: 0.4.1]
│   │   │   └── pyasn1 [required: >=0.4.6,<0.7.0, installed: 0.6.0]
│   │   ├── rsa [required: >=3.1.4,<5, installed: 4.9]
│   │   │   └── pyasn1 [required: >=0.1.3, installed: 0.6.0]
--
│       ├── charset-normalizer [required: >=2,<4, installed: 3.3.2]
│       ├── idna [required: >=2.5,<4, installed: 3.8]
│       └── urllib3 [required: >=1.21.1,<3, installed: 1.26.20]
├── google-auth [required: >=1.25.0,<3.0dev, installed: 2.22.0]
│   ├── cachetools [required: >=2.0.0,<6.0, installed: 5.5.0]
│   ├── pyasn1_modules [required: >=0.2.1, installed: 0.4.1]
│   │   └── pyasn1 [required: >=0.4.6,<0.7.0, installed: 0.6.0]
│   ├── rsa [required: >=3.1.4,<5, installed: 4.9]
│   │   └── pyasn1 [required: >=0.1.3, installed: 0.6.0]
--
│   └── urllib3 [required: <2.0, installed: 1.26.20]
├── google-cloud-core [required: >=2.3.0,<3.0dev, installed: 2.4.1]
│   ├── google-api-core [required: >=1.31.6,<3.0.0dev,!=2.3.0,!=2.2.*,!=2.1.*,!=2.0.*, installed: 2.19.2]
│   │   ├── google-auth [required: >=2.14.1,<3.0.dev0, installed: 2.22.0]
│   │   │   ├── cachetools [required: >=2.0.0,<6.0, installed: 5.5.0]
│   │   │   ├── pyasn1_modules [required: >=0.2.1, installed: 0.4.1]
│   │   │   │   └── pyasn1 [required: >=0.4.6,<0.7.0, installed: 0.6.0]
│   │   │   ├── rsa [required: >=3.1.4,<5, installed: 4.9]
│   │   │   │   └── pyasn1 [required: >=0.1.3, installed: 0.6.0]
--
│   │       ├── charset-normalizer [required: >=2,<4, installed: 3.3.2]
│   │       ├── idna [required: >=2.5,<4, installed: 3.8]
│   │       └── urllib3 [required: >=1.21.1,<3, installed: 1.26.20]
│   └── google-auth [required: >=1.25.0,<3.0dev, installed: 2.22.0]
│       ├── cachetools [required: >=2.0.0,<6.0, installed: 5.5.0]
│       ├── pyasn1_modules [required: >=0.2.1, installed: 0.4.1]
│       │   └── pyasn1 [required: >=0.4.6,<0.7.0, installed: 0.6.0]
│       ├── rsa [required: >=3.1.4,<5, installed: 4.9]
│       │   └── pyasn1 [required: >=0.1.3, installed: 0.6.0]