Menu

#36 Python 3.13 wheels

resolved
nobody
None
minor
bug
2024-10-20
2024-09-30
No

A Python 3.13 release candidate is now available1:

We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.13 compatibilities during this phase, and where necessary publish Python 3.13 wheels on PyPI to be ready for the final release of 3.13.0. Any binary wheels built against Python 3.13.0rc1 will work with future versions of Python 3.13. As always, report any issues to the Python bug tracker .

It'd be really nice to have wheels to start testing applications that use ruamel.yaml / ruamel.yaml.clib before the eventual final release.

Thanks!

PS: This request is only for GIL-enabled 3.13 wheels and not free-threaded ones2, which will certainly involve a higher level of effort.

Discussion

  • Thomas Klausner

    Thomas Klausner - 2024-10-11

    Python 3.13 is out, and the 0.2.8 release does not compile (for me) against it, failing with:

    running build_ext
    building '_ruamel_yaml' extension
    creating build/temp.netbsd-10.99.12-amd64-cpython-313
    gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -g -fstack-clash-protection -I/usr/include -I/usr/include/readline -I/usr/pkg/include -O2 -g -fstack-clash-protection -I/usr/include -I/usr/include/readline -I/usr/pkg/include -O2 -g -fstack-clash-protection -I/usr/include -I/usr/include/readline -I/usr/pkg/include -O2 -Wno-error=incompatible-pointer-types -g -fstack-clash-protection -I/usr/include -I/usr/pkg/include/python3.13 -g -I/usr/include -I/usr/pkg/include/python3.13 -fPIC -I/usr/pkg/include/python3.13 -c _ruamel_yaml.c -o build/temp.netbsd-10.99.12-amd64-cpython-313/_ruamel_yaml.o
    In file included from _ruamel_yaml.c:1149:
    _ruamel_yaml.h:10: warning: "PyString_CheckExact" redefined
       10 | #define PyString_CheckExact PyBytes_CheckExact
          | 
    _ruamel_yaml.c:998: note: this is the location of the previous definition
      998 |   #define PyString_CheckExact          PyUnicode_CheckExact
          | 
    _ruamel_yaml.c:1236:1: warning: 'Py_UNICODE' is deprecated [-Wdeprecated-declarations]
     1236 | static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
          | ^~~~~~
    _ruamel_yaml.c: In function '__Pyx_Py_UNICODE_strlen':
    _ruamel_yaml.c:1238:5: warning: 'Py_UNICODE' is deprecated [-Wdeprecated-declarations]
     1238 |     const Py_UNICODE *u_end = u;
          |     ^~~~~
    _ruamel_yaml.c: In function '__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_get_version_string':
    _ruamel_yaml.c:4156:17: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
     4156 |   __pyx_v_value = yaml_get_version_string();
          |                 ^
    _ruamel_yaml.c: In function '__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser___init__':
    _ruamel_yaml.c:5929:52: warning: passing argument 2 of 'yaml_parser_set_input' from incompatible pointer type [-Wincompatible-pointer-types]
     5929 |     yaml_parser_set_input((&__pyx_v_self->parser), __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_input_handler, ((void *)__pyx_v_self));
          |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                                    |
          |                                                    int (*)(void *, char *, int,  int *)
    In file included from _ruamel_yaml.h:2:
    yaml.h:1370:30: note: expected 'int (*)(void *, unsigned char *, size_t,  size_t *)' {aka 'int (*)(void *, unsigned char *, long unsigned int,  long unsigned int *)'} but argument is of type 'int (*)(void *, char *, int,  int *)'
     1370 |         yaml_read_handler_t *handler, void *data);
          |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
    _ruamel_yaml.c: In function '__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter___init__':
    _ruamel_yaml.c:16882:53: warning: passing argument 2 of 'yaml_emitter_set_output' from incompatible pointer type [-Wincompatible-pointer-types]
    16882 |   yaml_emitter_set_output((&__pyx_v_self->emitter), __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_output_handler, ((void *)__pyx_v_self));
          |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                                     |
          |                                                     int (*)(void *, char *, int)
    yaml.h:1837:31: note: expected 'int (*)(void *, unsigned char *, size_t)' {aka 'int (*)(void *, unsigned char *, long unsigned int)'} but argument is of type 'int (*)(void *, char *, int)'
     1837 |         yaml_write_handler_t *handler, void *data);
          |         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
    _ruamel_yaml.c: In function '__Pyx_PyInt_As_size_t':
    _ruamel_yaml.c:33208:23: error: too few arguments to function '_PyLong_AsByteArray'
    33208 |                 ret = _PyLong_AsByteArray((PyLongObject *)v,
          |                       ^~~~~~~~~~~~~~~~~~~
    In file included from /scratch/devel/py-ruamel-yaml-clib/work/.buildlink/include/python3.13/longobject.h:107,
                     from /scratch/devel/py-ruamel-yaml-clib/work/.buildlink/include/python3.13/Python.h:81,
                     from _ruamel_yaml.c:16:
    /scratch/devel/py-ruamel-yaml-clib/work/.buildlink/include/python3.13/cpython/longobject.h:111:17: note: declared here
      111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
          |                 ^~~~~~~~~~~~~~~~~~~
    _ruamel_yaml.c: In function '__Pyx_PyInt_As_long':
    _ruamel_yaml.c:33481:23: error: too few arguments to function '_PyLong_AsByteArray'
    33481 |                 ret = _PyLong_AsByteArray((PyLongObject *)v,
          |                       ^~~~~~~~~~~~~~~~~~~
    /scratch/devel/py-ruamel-yaml-clib/work/.buildlink/include/python3.13/cpython/longobject.h:111:17: note: declared here
      111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
          |                 ^~~~~~~~~~~~~~~~~~~
    _ruamel_yaml.c: In function '__Pyx_PyInt_As_int':
    _ruamel_yaml.c:33816:23: error: too few arguments to function '_PyLong_AsByteArray'
    33816 |                 ret = _PyLong_AsByteArray((PyLongObject *)v,
          |                       ^~~~~~~~~~~~~~~~~~~
    /scratch/devel/py-ruamel-yaml-clib/work/.buildlink/include/python3.13/cpython/longobject.h:111:17: note: declared here
      111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
          |                 ^~~~~~~~~~~~~~~~~~~
    

    Does anyone have a patch for that yet?

     
  • Tobias

    Tobias - 2024-10-16

    FWIW: ansible-lint seems to be affected by this:
    https://github.com/ansible/ansible-lint/issues/4367

     
  • Anthon van der Neut

    • status: open --> resolved
     
  • Anthon van der Neut

    3.13 wheels are now available with ruamel.yaml.clib==0.2.12

     
    🎉
    1

Log in to post a comment.