saghul / pycares

Python interface for c-ares
https://pypi.org/project/pycares/
MIT License
163 stars 74 forks source link

Support python 3.10 #134

Closed davfsa closed 2 years ago

davfsa commented 3 years ago

With python 3.10 already in alpha, I started adding it to the pipelines of a project I'm maintaining. But unfortunately, the build seems to fail in this dependency.

Hope this is fixed :smile:

# Logs:

saghul commented 3 years ago

master is now in better shape. You're welcome to create a PR that tests Python 3.10. We're now using GH actions on all platforms, so it's hopefully easier to do.

Hanaasagi commented 3 years ago

Hi, aiohttp is trying to add support for Python 3.10 experimental builds. Maybe I can do something for this.

Link: PR https://github.com/aio-libs/aiohttp/pull/5927 and issue https://github.com/aio-libs/aiohttp/issues/5905

Hanaasagi commented 2 years ago

Is there any release plan for Python 3.10?

saghul commented 2 years ago

This package is ready as of https://github.com/saghul/pycares/commit/4e6e36f839255ebef05e0682b98cbee1533805ce

It's a matter of making the release.

When will 3.10 be out?

Hanaasagi commented 2 years ago

According to the PEP-619, 3.10.0 final is 2021-10-04.

saghul commented 2 years ago

I'll take a look next week, maybe we can release wheels already.

pratyushmittal commented 2 years ago

Hey, the pip install seems to be giving errors on Python 3.10. It gives the error No matching distribution found for pycares==4.0.0.

I am not sure if the problem error is related to this. Pasting the error logs below:

command: /opt/hostedtoolcache/Python/3.10.0/x64/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2yau9wry/pycares_b8e938f971d0495ebb6e7336403d39e4/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2yau9wry/pycares_b8e938f971d0495ebb6e7336403d39e4/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-ht9t57ju
238
       cwd: /tmp/pip-install-2yau9wry/pycares_b8e938f971d0495ebb6e7336403d39e4/
239
  Complete output (44 lines):
240
  WARNING: The wheel package is not available.
241
    ERROR: Command errored out with exit status 1:
242
     command: /opt/hostedtoolcache/Python/3.10.0/x64/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-nff547xn/cffi_bce031234f754680a30d002ade901430/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-nff547xn/cffi_bce031234f754680a30d002ade901430/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'"'"'))' bdist_wheel -d /tmp/pip-wheel-ebwvzqm_
243
         cwd: /tmp/pip-wheel-nff547xn/cffi_bce031234f754680a30d002ade901430/
244
    Complete output (6 lines):
245
    usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
246
       or: setup.py --help [cmd1 cmd2 ...]
247
       or: setup.py --help-commands
248
       or: setup.py cmd --help
249

250
    error: invalid command 'bdist_wheel'
251
    ----------------------------------------
252
    ERROR: Failed building wheel for cffi
253
  ERROR: Failed to build one or more wheels
254
  Traceback (most recent call last):
255
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/setuptools/installer.py", line 75, in fetch_build_egg
256
      subprocess.check_call(cmd)
257
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/subprocess.py", line 369, in check_call
258
      raise CalledProcessError(retcode, cmd)
259
  subprocess.CalledProcessError: Command '['/opt/hostedtoolcache/Python/3.10.0/x64/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpusg85y7j', '--quiet', 'cffi>=1.5.0']' returned non-zero exit status 1.
260

261
  The above exception was the direct cause of the following exception:
262

263
  Traceback (most recent call last):
264
    File "<string>", line 1, in <module>
265
    File "/tmp/pip-install-2yau9wry/pycares_b8e938f971d0495ebb6e7336403d39e4/setup.py", line 16, in <module>
266
      setup(name             = 'pycares',
267
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/setuptools/__init__.py", line 152, in setup
268
      _install_setup_requires(attrs)
269
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
270
      dist.fetch_build_eggs(dist.setup_requires)
271
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/setuptools/dist.py", line 785, in fetch_build_eggs
272
      resolved_dists = pkg_resources.working_set.resolve(
273
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/pkg_resources/__init__.py", line 766, in resolve
274
      dist = best[req.key] = env.best_match(
275
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1051, in best_match
276
      return self.obtain(req, installer)
277
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1063, in obtain
278
      return installer(requirement)
279
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/setuptools/dist.py", line 844, in fetch_build_egg
280
      return fetch_build_egg(self, req)
281
    File "/opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/setuptools/installer.py", line 77, in fetch_build_egg
282
      raise DistutilsError(str(e)) from e
283
  distutils.errors.DistutilsError: Command '['/opt/hostedtoolcache/Python/3.10.0/x64/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpusg85y7j', '--quiet', 'cffi>=1.5.0']' returned non-zero exit status 1.
284
  ----------------------------------------
285
WARNING: Discarding https://files.pythonhosted.org/packages/25/5a/ed8cc3340b7e83a5e572b5d27387a968a7e52b1e3c269442076ca902b7ba/pycares-4.0.0.tar.gz#sha256=d0154fc5753b088758fbec9bc137e1b24bb84fc0c6a09725c8bac25a342311cd (from https://pypi.org/simple/pycares/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
286
ERROR: Could not find a version that satisfies the requirement pycares==4.0.0 (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 1.0.0, 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.2.0, 2.3.0, 2.4.0, 3.0.0b0, 3.0.0b1, 3.0.0b2, 3.0.0b3, 3.0.0b4, 3.0.0b5, 3.0.0, 3.1.0, 3.1.1, 3.2.0, 3.2.3, 4.0.0)
287
ERROR: No matching distribution found for pycares==4.0.0

Hope this helps in better debugging.

Please let me know if I can help in anyway to fix this.

pratyushmittal commented 2 years ago

Hey, sorry for the trouble. Doing pip install wheel solved it.

ChrisLovering commented 2 years ago

3.10 is out now, I believe we can make a release and build some wheels! :D

saghul commented 2 years ago

4.1.1 is out, with wheels for 3.10: https://pypi.org/project/pycares/4.1.1/#files