-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Update Python dependencies to eliminate version conflicts #6122
Conversation
Nope, it wasn't dql directly causing that. Got it fixed anyway though. |
af6975f
to
4842a65
Compare
k, that looks like an initial minimum set of updates to get the dependencies working together without problems. Next step is to clean it up, and see if any of the temporarily removed dependencies can be re-added. Firebolt is pretty clearly out (for now) though, due to direct incompatibility with other things. |
Bumps [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) from 2.1.3 to 3.0.2. - [Release notes](https://github.com/snowflakedb/snowflake-connector-python/releases) - [Commits](snowflakedb/snowflake-connector-python@v2.1.3...v3.0.2) --- updated-dependencies: - dependency-name: snowflake-connector-python dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
This was the warning the upgrade is for: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 40 from C header, got 144 from PyObject
4842a65
to
b63fcbd
Compare
@wlach Would you be ok to cast an eye over this review-wise to ensure it seems sane to you? |
It turns out those are false warnings. They're just due to the different process not actually looking at all the requirements*.txt files properly. So, this is fine to review and potentially merge after all. 😄 |
@getredash/maintainers Anyone up for reviewing this PR? It only touches the Python backend part of things though, and doesn't have any front end changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Thanks heaps @junnplus. 😄 |
* commit 'ee601ec20676b0705e352bfb9b6726a0e53e3b12': Fix `FEATURE_POLICY` to initialize from `REDASH_FEATURE_POLICY` envvar, not `REDASH_REFERRER_POLICY` (getredash#5822) Update to latest in yarn 1.22.x series (getredash#6140) Use precompiled psycopg2-binary package instead of psycopg2 (getredash#6137) Pymongo version upgrade changes (getredash#5970) Bump jinja2 from 2.10.3 to 2.11.3 (getredash#5431) Update Python dependencies to eliminate version conflicts (getredash#6122) Upgrade Python version to 3.8 (getredash#6130) Try fixing cypress in a more correct way (getredash#6117) ci: Attempt to fix restyled.io test (getredash#6116) fix pivot table style error (getredash#6112) dependencies: pystache==0.6.0 (getredash#6091) ci: migrate to github workflow ci (getredash#6008) Update Simba ODBC driver (getredash#6110)
Now that we've largely updated our Python dependencies, we could probably check if that Firebolt code we removed in f7aa5b4 could be added back. |
@justinclift I noticed that redash/query_runner/dynamodb_sql.py and some query runners were removed in this PR. However, the issue regarding DynamoDB was added this week 😅 Will these query_runners be unsupported from the next release? Or are there any plans to revive them? |
From my perspective, I reckon it depends on what state their Python libaries are in. Looking at the https://pypi.org/project/dynamodb/#history The source code repository shows the same lack of continued development: https://github.com/AllanKT/python-dynamo That GitHub repository also shows no forks at all. 😦 So, for that one specific Python library I'd personally be ok with not including it with the next release. Which of course is going to be lousy for anyone currently using it. There are several of other results when searching for "dynamodb" on PyPi: https://pypi.org/search/?q=dynamodb So, maybe it'll be possible to switch to a different Python library instead without too much effort? It'd need someone to investigate things a bit better, and potentially do some experimenting / updating of the old DynamoDB query runner code to get it working again. |
@justinclift Thank you for your reply. Indeed, this python-dynamo has not been updated. In addition, Python version is only listed up to 3.7, so it is certainly not a good idea to keep using this library. Is the fundamental problem dependency hell? I'm concerned that Redash is loading libraries for all datasources. I think it is very hard to keep dependencies. Introducing new datasources can also be difficult. Are there any plans to address this issue? |
Some rough ideas for fixing the problem have been talked about before, but we've not really investigated and committed to a clearly defined plan yet. |
…6122) * Remove DynamoDB as a data source for now, due to dependency incompatibilities * Remove Firebolt as a data source for now, due to dependency incompatibilities * Remove pymapd / pyomnisci / heavyai, due to dependency incompatibilities * Remove pycrypto, upgrade cryptography * Remove pyarrow (for now), which we no longer need * Require an (older) version of black, to avoid test failures with more recent click library * Upgrade gevent to 21.12.0 * Upgrade greenlet to 1.1.2 * Upgrade httpli2 to 0.18.1 * Upgrade requests to 2.31.0 * Upgrade snowflake-connector-python to 3.0.4 * Upgrade urllib3 to 1.25.11 Note, the warning message caused by the older versions of gevent and greenlet was: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 40 from C header, got 144 from PyObject
What type of PR is this?
Description
This PR gets all of the Python backend dependencies to work together without version mismatch errors during their
pip install
.How is this tested?
Only tested using the basic "docker build" step, as it's a work in progress. It'll be useful to see if the CI tests are happy with it though, especially after the dql code is gone (not yet done).