[ https://issues.apache.org/jira/browse/TINKERPOP-2810?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17624763#comment-17624763 ]
ASF GitHub Bot commented on TINKERPOP-2810: ------------------------------------------- jared-schreibman-cdisc commented on PR #1839: URL: https://github.com/apache/tinkerpop/pull/1839#issuecomment-1292662839 I came here to support this change. There is a bug currently when attempting to build gremlin within a docker image. **Describe the bug** Using docker, when installing latest gremlin, downstream dependency `aiohttp` when building wheel due to bug in earlier version: https://github.com/aio-libs/aiohttp/issues/6600 **To Reproduce** Create docker image with: ``` FROM python:3 RUN pip install gremlinpython ``` It's also seen with: ``` FROM python:3 RUN pip install aiohttp==3.8.1 ``` **Expected behavior** Wheel builds successfully **Logs/tracebacks** ``` [2/2] RUN pip install gremlinpython: #4 1.115 Collecting gremlinpython #4 1.196 Downloading gremlinpython-3.6.1-py2.py3-none-any.whl (73 kB) #4 1.222 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.3/73.3 kB 2.6 MB/s eta 0:00:00 #4 1.285 Collecting nest-asyncio #4 1.301 Downloading nest_asyncio-1.5.6-py3-none-any.whl (5.2 kB) #4 1.488 Collecting aiohttp<=3.8.1,>=3.8.0 #4 1.509 Downloading aiohttp-3.8.1.tar.gz (7.3 MB) #4 2.187 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.3/7.3 MB 10.8 MB/s eta 0:00:00 #4 2.340 Installing build dependencies: started #4 3.451 Installing build dependencies: finished with status 'done' #4 3.452 Getting requirements to build wheel: started #4 3.604 Getting requirements to build wheel: finished with status 'done' #4 3.605 Installing backend dependencies: started #4 3.994 Installing backend dependencies: finished with status 'done' #4 3.994 Preparing metadata (pyproject.toml): started #4 4.142 Preparing metadata (pyproject.toml): finished with status 'done' #4 4.178 Collecting aenum<4.0.0,>=1.4.5 #4 4.192 Downloading aenum-3.1.11-py3-none-any.whl (131 kB) #4 4.211 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.5/131.5 kB 8.4 MB/s eta 0:00:00 #4 4.232 Collecting isodate<1.0.0,>=0.6.0 #4 4.246 Downloading isodate-0.6.1-py2.py3-none-any.whl (41 kB) #4 4.252 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.7/41.7 kB 8.9 MB/s eta 0:00:00 #4 4.282 Collecting attrs>=17.3.0 #4 4.298 Downloading attrs-22.1.0-py2.py3-none-any.whl (58 kB) #4 4.307 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.8/58.8 kB 7.5 MB/s eta 0:00:00 #4 4.358 Collecting charset-normalizer<3.0,>=2.0 #4 4.375 Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB) #4 4.519 Collecting multidict<7.0,>=4.5 #4 4.536 Downloading multidict-6.0.2.tar.gz (50 kB) #4 4.545 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.3/50.3 kB 5.3 MB/s eta 0:00:00 #4 4.556 Installing build dependencies: started #4 5.277 Installing build dependencies: finished with status 'done' #4 5.279 Getting requirements to build wheel: started #4 5.403 Getting requirements to build wheel: finished with status 'done' #4 5.404 Preparing metadata (pyproject.toml): started #4 5.535 Preparing metadata (pyproject.toml): finished with status 'done' #4 5.557 Collecting async-timeout<5.0,>=4.0.0a3 #4 5.573 Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB) #4 5.660 Collecting yarl<2.0,>=1.0 #4 5.686 Downloading yarl-1.8.1.tar.gz (172 kB) #4 5.702 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.3/172.3 kB 11.5 MB/s eta 0:00:00 #4 5.716 Installing build dependencies: started #4 6.445 Installing build dependencies: finished with status 'done' #4 6.448 Getting requirements to build wheel: started #4 6.571 Getting requirements to build wheel: finished with status 'done' #4 6.572 Preparing metadata (pyproject.toml): started #4 6.699 Preparing metadata (pyproject.toml): finished with status 'done' #4 6.750 Collecting frozenlist>=1.1.1 #4 6.768 Downloading frozenlist-1.3.1.tar.gz (66 kB) #4 6.774 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.4/66.4 kB 10.8 MB/s eta 0:00:00 #4 6.782 Installing build dependencies: started #4 7.512 Installing build dependencies: finished with status 'done' #4 7.512 Getting requirements to build wheel: started #4 7.641 Getting requirements to build wheel: finished with status 'done' #4 7.643 Preparing metadata (pyproject.toml): started #4 7.770 Preparing metadata (pyproject.toml): finished with status 'done' #4 7.794 Collecting aiosignal>=1.1.2 #4 7.809 Downloading aiosignal-1.2.0-py3-none-any.whl (8.2 kB) #4 7.836 Collecting six #4 7.852 Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) #4 7.907 Collecting idna>=2.0 #4 7.925 Downloading idna-3.4-py3-none-any.whl (61 kB) #4 7.930 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 15.0 MB/s eta 0:00:00 #4 7.934 Building wheels for collected packages: aiohttp, frozenlist, multidict, yarl #4 7.934 Building wheel for aiohttp (pyproject.toml): started #4 8.131 Building wheel for aiohttp (pyproject.toml): finished with status 'error' #4 8.135 error: subprocess-exited-with-error #4 8.135 #4 8.135 × Building wheel for aiohttp (pyproject.toml) did not run successfully. #4 8.135 │ exit code: 1 #4 8.135 ╰─> [107 lines of output] #4 8.135 ********************* #4 8.135 * Accelerated build * #4 8.135 ********************* #4 8.135 running bdist_wheel #4 8.135 running build #4 8.135 running build_py #4 8.135 creating build #4 8.135 creating build/lib.linux-aarch64-cpython-311 #4 8.135 creating build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_routedef.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/client_ws.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/payload.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_request.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_ws.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/helpers.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/cookiejar.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/http.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/worker.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/client_exceptions.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/http_websocket.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/abc.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/tcp_helpers.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/hdrs.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/client_proto.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_exceptions.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/http_writer.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_protocol.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/formdata.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/tracing.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/locks.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_server.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/client.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_urldispatcher.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/connector.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/resolver.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/streams.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_response.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/typedefs.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/log.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/test_utils.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/pytest_plugin.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/http_parser.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/__init__.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_fileresponse.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/payload_streamer.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_app.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/client_reqrep.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/base_protocol.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_log.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_middlewares.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/multipart.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/web_runner.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/http_exceptions.py -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 running egg_info #4 8.135 writing aiohttp.egg-info/PKG-INFO #4 8.135 writing dependency_links to aiohttp.egg-info/dependency_links.txt #4 8.135 writing requirements to aiohttp.egg-info/requires.txt #4 8.135 writing top-level names to aiohttp.egg-info/top_level.txt #4 8.135 reading manifest file 'aiohttp.egg-info/SOURCES.txt' #4 8.135 reading manifest template 'MANIFEST.in' #4 8.135 warning: no files found matching 'aiohttp' anywhere in distribution #4 8.135 warning: no previously-included files matching '*.pyc' found anywhere in distribution #4 8.135 warning: no previously-included files matching '*.pyd' found anywhere in distribution #4 8.135 warning: no previously-included files matching '*.so' found anywhere in distribution #4 8.135 warning: no previously-included files matching '*.lib' found anywhere in distribution #4 8.135 warning: no previously-included files matching '*.dll' found anywhere in distribution #4 8.135 warning: no previously-included files matching '*.a' found anywhere in distribution #4 8.135 warning: no previously-included files matching '*.obj' found anywhere in distribution #4 8.135 warning: no previously-included files found matching 'aiohttp/*.html' #4 8.135 no previously-included directories found matching 'docs/_build' #4 8.135 adding license file 'LICENSE.txt' #4 8.135 writing manifest file 'aiohttp.egg-info/SOURCES.txt' #4 8.135 copying aiohttp/_cparser.pxd -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_find_header.c -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_find_header.h -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_find_header.pxd -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_headers.pxi -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_helpers.c -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_helpers.pyi -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_helpers.pyx -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_http_parser.c -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_http_parser.pyx -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_http_writer.c -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_http_writer.pyx -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_websocket.c -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/_websocket.pyx -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 copying aiohttp/py.typed -> build/lib.linux-aarch64-cpython-311/aiohttp #4 8.135 creating build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_cparser.pxd.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_find_header.pxd.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_helpers.pyi.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_helpers.pyx.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_http_parser.pyx.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_http_writer.pyx.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/_websocket.pyx.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 copying aiohttp/.hash/hdrs.py.hash -> build/lib.linux-aarch64-cpython-311/aiohttp/.hash #4 8.135 running build_ext #4 8.135 building 'aiohttp._websocket' extension #4 8.135 creating build/temp.linux-aarch64-cpython-311 #4 8.135 creating build/temp.linux-aarch64-cpython-311/aiohttp #4 8.135 gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.11 -c aiohttp/_websocket.c -o build/temp.linux-aarch64-cpython-311/aiohttp/_websocket.o #4 8.135 aiohttp/_websocket.c:198:12: fatal error: longintrepr.h: No such file or directory #4 8.135 198 | #include "longintrepr.h" #4 8.135 | ^~~~~~~~~~~~~~~ #4 8.135 compilation terminated. #4 8.135 error: command '/usr/bin/gcc' failed with exit code 1 #4 8.135 [end of output] #4 8.135 #4 8.135 note: This error originates from a subprocess, and is likely not a problem with pip. #4 8.136 ERROR: Failed building wheel for aiohttp #4 8.137 Building wheel for frozenlist (pyproject.toml): started #4 9.115 Building wheel for frozenlist (pyproject.toml): finished with status 'done' #4 9.115 Created wheel for frozenlist: filename=frozenlist-1.3.1-cp311-cp311-linux_aarch64.whl size=152878 sha256=144c31f2c56a53b9dd755f12869d37bc383b235ea704c3d101bd7173d352a030 #4 9.115 Stored in directory: /root/.cache/pip/wheels/dd/ff/59/33d53277b012a9778a407f112dde27d418298fee9114052e91 #4 9.117 Building wheel for multidict (pyproject.toml): started #4 9.877 Building wheel for multidict (pyproject.toml): finished with status 'done' #4 9.878 Created wheel for multidict: filename=multidict-6.0.2-cp311-cp311-linux_aarch64.whl size=119089 sha256=f3fcfd50f695cf1aaadbbd04ef8b03abfe181fd28339827863e12be85a77f98d #4 9.879 Stored in directory: /root/.cache/pip/wheels/bb/18/4e/b073a52aef8b5c6f46950894ee61b705f922cbc5ee1331771c #4 9.881 Building wheel for yarl (pyproject.toml): started #4 11.61 Building wheel for yarl (pyproject.toml): finished with status 'done' #4 11.61 Created wheel for yarl: filename=yarl-1.8.1-cp311-cp311-linux_aarch64.whl size=273833 sha256=b51db15a08a64dbf4b2480a06a586a5cae3b413a2129a51f57dd8dd4a8a9fedc #4 11.61 Stored in directory: /root/.cache/pip/wheels/bc/b0/1c/df8ff385943c6989a1bf3ec78cbbe295bf14c35db10aaa0e3d #4 11.61 Successfully built frozenlist multidict yarl #4 11.61 Failed to build aiohttp #4 11.61 ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects ``` **Python Version** 3 **aiohttp Version** <3.8.2 **Additional context** When updating the version to at least 3.8.2, this error goes away. > gremlinpython aiohttp dependency requirement too strict > ------------------------------------------------------- > > Key: TINKERPOP-2810 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2810 > Project: TinkerPop > Issue Type: Bug > Components: python > Affects Versions: 3.6.1 > Reporter: Gunther Vogel > Priority: Major > > Currently, the requirements specify aiohttp >= 3.8.0, <= 3.8.1, disallowing > newer bugfix releases of aiohttp (current version is 3.8.3). Following the > general semantic versioning rules, the upper bound should be <4.0.0 (disallow > breaking changes). > The current requirements are the result of TINKERPOP-2668 which only had the > goal of avoiding the bug contained in versions <= 3.7.4. > Fixing aiohttp at a non-current bugfix release step increases the maintenance > effort needed to get an error-free overall library setup; in my case, > gremlinpython is not even used directly, but just pulled in by awswrangler. -- This message was sent by Atlassian Jira (v8.20.10#820010)