SDK-based package installation failing due to `simpleeval` dependency
Summary
SDK-based packages installation fails due to an update to setuptools
and the fact that some dependencies (simpleeval
) use a deprecated setuptools
feature, namely use_2to3
.
Steps to reproduce
Have an SDK-based tap or target package (that depends on singer_sdk>=0.3.0
), try a clean install and it will fail.
What is the current bug behavior?
SDK-based packages depending on singer_sdk>=0.3.0
can't be installed.
-
setuptools
issue that prompted the break: https://github.com/pypa/setuptools/issues/2769 -
use_2to3
insimpleeval
: https://github.com/danthedeckie/simpleeval/blob/master/setup.py#L18
What is the expected correct behavior?
SDK-based packages can be installed with a recent SDK version.
Relevant logs and/or screenshots
ERROR: Command errored out with exit status 1:
command: python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2gndxsb2/simpleeval_e3114a9e022648278480d5c79e60486d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2gndxsb2/simpleeval_e3114a9e022648278480d5c79e60486d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-37r23s8l
cwd: /tmp/pip-install-2gndxsb2/simpleeval_e3114a9e022648278480d5c79e60486d/
Complete output (1 lines):
error in simpleeval setup command: use_2to3 is invalid.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/62/25/aec98426834844b70b7ab24b4cce8655d31e654f58e1fa9861533f5f2af1/simpleeval-0.9.10.tar.gz#sha256=692055488c2864637f6c2edb5fa48175978a2a07318009e7cf03c9790ca17bea (from https://pypi.org/simple/simpleeval/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement simpleeval<0.10.0,>=0.9.10 (from singer-sdk) (from versions: 0.8.1.linux-x86_64, 0.9.0.linux-x86_64, 0.9.1.linux-x86_64, 0.8.1, 0.8.2, 0.8.5, 0.8.6, 0.8.7, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 0.9.10)
ERROR: No matching distribution found for simpleeval<0.10.0,>=0.9.10
Possible fixes
Remove dependency on simpleeval
(last released Nov 2019) and replace with an alternative that doesn't break installation.
Temporary workaround:
Users can pin setuptools
to <58.0.0
in their system Python and/or virtualenv
s.