Conflicting constraints in Airflow constraint file - airflow

For setting up AWS MWAA with snowflake, as per the AWS documentation here, I created a requirements.txt file with following content:
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.2.2/constraints-3.7.txt"
apache-airflow[snowflake]
This worked successfully. Next I wanted to add dbt to my eco-system and updated my constraint file to:
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.2.2/constraints-3.7.txt"
apache-airflow[snowflake]
dbt-core==1.1.1
dbt-snowflake==1.1.0
Now this is where things start breaking. I get the following error when I build this-
ERROR: Cannot install snowflake-connector-python[secure-local-storage]==2.7.0 because these package versions have conflicting dependencies.
The conflict is caused by:
snowflake-connector-python[secure-local-storage] 2.7.0 depends on keyring!=16.1.0 and <22.0.0; extra == "secure-local-storage"
The user requested (constraint) keyring==23.2.1
This seems really weird since both versions: snowflake-connector-python 2.7.0 and keyring==23.2.1 are enforced in the airflow constraint file itself: https://raw.githubusercontent.com/apache/airflow/constraints-2.2.2/constraints-3.7.txt
It is highly unlikely that airflow constraint file is incorrect. Am I missing something here?

Yes, I guess there are some inconsistencies and version conflicts. What I ended up doing is copying all libraries from constraints.txt to requirements.txt, removing unused libraries and run ./mwaa-local-env test-requirements to check for inconsistencies.
Then I manually changed versions of all version conflicts.

Related

Warnings about unsupported RETURNING clause in Node SQLite3 client

I'm using a SQLite3 database for tests in Strapi with the node-sqlite3 client. When running the tests, I'm getting the following warnings:
console.log
node-sqlite3 does not currently support RETURNING clause
at Logger._log (node_modules/knex/lib/logger.js:42:13)
Initially, I thought that it is caused by an outdated SQLite version, since RETURNING support was added in SQLite 3.35. However, I've verified that the Node client version that I'm using (5.1.4) includes a newer release of SQLite:
sqlite3#^5.1.4:
version "5.1.4"
resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.4.tgz#35f83d368963168b324ad2f0fffce09f3b8723a7"
integrity sha512-i0UlWAzPlzX3B5XP2cYuhWQJsTtlMD6obOa1PgeEQ4DHEXUuyJkgv50I3isqZAP5oFc2T8OFvakmDh2W6I+YpA==
dependencies:
"#mapbox/node-pre-gyp" "^1.0.0"
node-addon-api "^4.2.0"
tar "^6.1.11"
optionalDependencies:
node-gyp "8.x"
To verify the SQLite version, I've ran the following query:
await strapi.db.connection.context.raw("select sqlite_version()")
As expected, it yields {'sqlite_version()': '3.40.0'}, which should support the RETURNING clause.
For the record, my locally installed version of sqlite3 (3.38.2) also supposedly supports RETURNING, but I can also confirm it is not the source of the issue: the same warnings are also displayed when the tests are ran via Docker, and the local installation does not seem to be used either way based on the sqlite_version() result.
Are these warnings something that I should be worried about, or is it just Knex warning about a possibly unsupported feature?

Bit.dev error creating a component dur to package mismatch

I have an issue and it wont let me create a component because of mismatch versions, I tried deleting vue-loader, vue-template-compiler node modules. Deleting #vue/compiler-sf an reinstalling etc and i always get the same message.
new components
(use "bit tag --all [version]" to lock a version with all your changes)
> test-test ... issues found
error found while parsing the file (edit the file and fix the parsing error):
src/components/testTest.vue ->
Vue packages version mismatch:
vue#3.2.31 (C:\Users\Alex 2019\AppData\Roaming\npm\node_modules\vue\index.js)
vue-template-compiler#2.7.13 (C:\Users\Alex 2019\AppData\Roaming\npm\node_modules\bit-bin\node_modules\vue-template-compiler\package.json)
This may cause things to work incorrectly. Make sure to use the same version for both.
If you are using vue-loader#>=10.0, simply update vue-template-compiler.
If you are using vue-loader#<10.0 or vueify, re-installing vue-loader/vueify should bump vue-template-compiler to the latest.

Airflow v2 warning No module named 'airflow.providers.mysql' despite not using this module

We recently upgraded from Airflow v1 to v2 and are currently debugging the new issues that come with such an upgrade. Currently we're getting the following warning message:
webserver_1 | [2021-08-21 18:13:45,565] {providers_manager.py:299} WARNING - Exception
when importing 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLHook' from
'apache-airflow-providers-google' package: No module named 'airflow.providers.mysql'
I text-searched our entire project, and there are zero references of CloudSQLHook, zero references of apache-airflow-providers-google, and zero references of mysql... Because of this, we're not sure where to start with eliminating this warning message. How can we resolve this?
The Google provider has optional dependency on mysql (due to Cloud SQL using mysql as a backend). The easiest way to get rid of the warning is to install apache-airflow-providers-mysql package or use [mysql] extra when installing airflow. I also believe newer versions of airflow (quite sure 2.1+) will not log this as a warning.

nbsphinx causes build to fail when building Jupyter Notebooks

Details
I am getting a build failure of my read-the-docs that I don't understand. The assertion of "verbatim" in line 2151 of nbsphinx.py is causing the build failure. So the build fails when I try to include the Jupyter Notebook tutorials I created. I compared current versions of the tutorials to previous versions which had not caused the build to fail, and I can't find a difference that could account for the current failure.
Read the Docs project URL: lofti_gaia
Build URL: https://github.com/logan-pearce/lofti_gaia
Read the Docs username: logan-pearce
Expected Result
A passing build including *.ipynb files
Actual Result
Build failed at line 2151 of nbsphinx.py due to assertion of 'Verbatim' failing.
Terminal output:
Running Sphinx v4.1.2
loading translations [en]... done
making output directory... done
WARNING: html_static_path entry '_static' does not exist
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [latex]: all documents
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
processing lofti_gaia.tex... index installation tutorials/QuickStart tutorials/Tutorial api lofti loftitools
resolving references...
done
writing... failed
Exception occurred:
File "/home/docs/checkouts/readthedocs.org/user_builds/lofti-gaia/conda/latest/lib/python3.7/site-packages/nbsphinx.py", line 2151, in depart_codearea_latex
assert 'Verbatim' in lines[0]
AssertionError
The full traceback has been saved in /tmp/sphinx-err-x1h83s3m.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
According to the github issue 584 for nbsphinx (https://github.com/spatialaudio/nbsphinx/issues/584), this is due to a compatibility issue with sphinx 4.1.0. It can be gotten around by requiring sphinx version 4.0.2.
So in my requirements.txt file, I included sphinx==4.0.2, after which the build passes. So now my requirements.txt file looks like:
numpy
matplotlib
astropy>=4.0.1.post1
astroquery>=0.4
sphinx==4.0.2
ipython==7.19.0
nbsphinx>=0.8.6
and the build passes.
I have encountered the same issue. I did not solve it with .ipynb format, but converting the jupyter notebook to .rst format works.
May it helps

New version of OpenSSL causes Plone/Zope to not start

Today's (1 Mar 2016) OpenSSL release has caused the following error when running Plone/Zope
.buildout/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/persistent/cPersistence.so: undefined symbol: SSLv2_method
It's hard to see what's going on since it's a binary file. I also tried updating to ZODB3 3.11.0 which yields the following traceback
.buildout/eggs/ZConfig-2.9.0-py2.7.egg/ZConfig/loader.py", line 217, in schemaComponentSource
package=package)
ZConfig.SchemaResourceError: could not load package ZServer:
.buildout/eggs/zope.security-3.7.4-py2.7-linux-x86_64.egg/zope/security/_proxy.so: undefined symbol: SSLv2_method
Package name: 'ZServer'
File name: 'component.xml'
Package path: None
Is there any workaround for this other than reverting OpenSSL?
zope security is a compiled egg, like all the ones ending with -py2.7-linux-x86_64.egg.
As the traceback says, it cannot find anymore a symbol.
Probably you have to recompile it with the new openssl-dev.
I would try (on a development server first):
backup your compiled egg (mkdir eggs-backup && mv `eggs/zope.security-3.7.4-py2.7-linux-x86_64.egg eggs-backup/)
rerun buildout
This will recompile your missing egg.
Hopefully it works and hopefully it is the only one linked to that library.
Anyway, dependending on the way you patched openssl you may have a lot of other issues (I am thinking about Python, urllib*, curl, wget, ...)
OpenSSL 1.0.2g by default doesn't build with SSLv2 (because of the recent DROWN attack). You may need to manually build it without OPENSSL_NO_SSL2 flag.
(but in fact you shouldn't do this if you're doing some server-related stuff, there is a serious security reason because of which it was disabled, see https://drownattack.com)
I was able to resolve this by upgrading python to 2.7.10+, and then upgrading Pillow and lxml.

Resources