Skip to content
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

Release request (1.17.0) #71

Closed
beagold opened this issue Apr 14, 2024 · 11 comments
Closed

Release request (1.17.0) #71

beagold opened this issue Apr 14, 2024 · 11 comments
Assignees

Comments

@beagold
Copy link

beagold commented Apr 14, 2024

I have recently tried to test compatibility with the upcoming CPython 3.13 version (at the time of writing: 3.13.0a5), but ran into some issues regarding cffi incompatibility, which seem to already have been fixed by #34.

Since it has been a while since a release has been made, I would like to request a new one to be made to, not only release this 3.13 fix, but also any improvements that have been made along the way.

Thanks!

Full error traceback:
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [53 lines of output]
      Traceback (most recent call last):
        File "/opt/hostedtoolcache/Python/3.13.0-alpha.5/x64/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
          ~~~~^^
        File "/opt/hostedtoolcache/Python/3.13.0-alpha.5/x64/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.13.0-alpha.5/x64/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ~~~~^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 21, in <module>
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/__init__.py", line 104, in setup
          return distutils.core.setup(**attrs)
                 ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 147, in setup
          _setup_distribution = dist = klass(attrs)
                                       ~~~~~^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/dist.py", line 307, in __init__
          _Distribution.__init__(self, dist_attrs)
          ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 283, in __init__
          self.finalize_options()
          ~~~~~~~~~~~~~~~~~~~~~^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/dist.py", line 658, in finalize_options
          ep(self)
          ~~^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/setuptools/dist.py", line 678, in _finalize_setup_keywords
          ep.load()(self, ep.name, value)
          ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/cffi/setuptools_ext.py", line 216, in cffi_modules
          add_cffi_module(dist, cffi_module)
          ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/cffi/setuptools_ext.py", line 49, in add_cffi_module
          execfile(build_file_name, mod_vars)
          ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/cffi/setuptools_ext.py", line 25, in execfile
          exec(code, glob, glob)
          ~~~~^^^^^^^^^^^^^^^^^^
        File "src/_cffi_src/build_cares.py", line 604, in <module>
          ffi = cffi.FFI()
                ~~~~~~~~^^
        File "/tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/cffi/api.py", line 48, in __init__
          import _cffi_backend as backend
      ImportError: /tmp/pip-build-env-sfeb078v/overlay/lib/python3.13/site-packages/_cffi_backend.cpython-313-x86_64-linux-gnu.so: undefined symbol: _PyErr_WriteUnraisableMsg
@kLiHz
Copy link

kLiHz commented Apr 14, 2024

I ran into a similar issue, where jupyterlab server fails when trying to store hashed passwords.

Thank you @beagold, now I fixed it by installing the latest cffi with:

python3 -m pip install git+https://github.com/python-cffi/cffi

Also great thanks to all of you! 🎉

@nitzmahone
Copy link
Member

I've usually held releases to support a Python pre-release until the new Python version hits at least beta 1, since the C APIs are often in heavy flux during the alpha period. This has been especially true for 3.13- basically every alpha release has had major breaking API changes that would have broken any released code targeting 3.13. While it's possible to tie those changes to individual pre-releases and continually release updates during the pre-release period, it's much more difficult to test against multiple pre-releases simultaneously and release things so frequently.

My current plan is still to do at least a CFFI pre-release around 3.13.0b1, with the expectation that future betas are likely to have breaking changes (though they're not supposed to)...

@beagold
Copy link
Author

beagold commented Apr 16, 2024

Thanks for the insight @nitzmahone!

I supposed that was the case, but I wanted to ask anyways.

I'll wait for beta to roll around to properly announce 3.13 support for our library. For now, I'll make some quick checks by previously pulling cffi from git.

Thanks again!!

@strayge
Copy link

strayge commented Apr 16, 2024

Also waiting release for musl arm64 wheels #69

@chrysn
Copy link

chrysn commented May 9, 2024

With the beta around now, I expect many people will enable Python 3.13 in their CIs, and then run into the _PyErr_WriteUnraisableMsg issue (e.g. because they use cryptography).

@edgarrmondragon
Copy link

edgarrmondragon commented May 9, 2024

3.13.0b1 will also soon be available to setup-python: actions/python-versions#272

@nitzmahone
Copy link
Member

CFFI 1.17.0rc1 has been tagged and released to PyPI. The final release will likely coincide with Python 3.13.0rc1 around July 30.

@ssbarnea
Copy link

This means that anyone wanting to enable testing with py313 and have cffi as a dependency, direct or indirect should should add something like this:

cffi>=1.17.0rc1 ; python_version >= "3.13"  # https://github.com/python-cffi/cffi/issues/71

@ksaadDE
Copy link

ksaadDE commented Jul 26, 2024

release request is a pretty bad title compared to how the issue shows. python 3.13 not supported (yet?)

@kLiHz
Copy link

kLiHz commented Jul 26, 2024

Hi @ksaadDE, I think Python 3.13 is supported on the main branch, at least it was by the time this issue was created. However without being released, it can not be installed via commands like pip install cffi==1.17.0rc1 but needs a long git URL to download and build the package from source. And installing latest cffi from git did fiexd several issues at that time, so I don't think this is a bad title.

If you're using Python 3.13 now, you can try installing a latest version like 1.17.0rc1. Or if you still have some issues, maybe try starting a new one?

@ksaadDE
Copy link

ksaadDE commented Jul 26, 2024

hi @kLiHz I meant more compared to the "_cffi_backend.cpython-313-arm-linux-musleabihf.so:_PyErr_WriteUnraisableMsg: symbol not found" - err message.

From the project view the title makes totally sense!

If you're using Python 3.13 now, you can try installing a latest version like 1.17.0rc1. Or if you still have some issues, maybe try starting a new one?

I am using it in a docker container as in the by @alex mentioned issue. I downgraded to docker.io/arm32v7/python:3.12-rc-alpine3.18 (python 3.12) and am trying to make the old Dockerfile run again.

The cffi issue just appeared because my docker container is stuck in the build wheel for cryptography 🥇

But yes, I could have tried the git url as well, I might do that in case noting works over here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants