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

pyduktape2 fails to build with Cython 3 #14

Open
aucampia opened this issue Sep 3, 2023 · 1 comment
Open

pyduktape2 fails to build with Cython 3 #14

aucampia opened this issue Sep 3, 2023 · 1 comment

Comments

@aucampia
Copy link
Contributor

aucampia commented Sep 3, 2023

$ git log -1
commit ade369190e93c16f8a8542b914239bbda5ea1feb (HEAD -> master, tag: 0.4.3, origin/master, origin/HEAD)
Merge: d5eaa42 d856f4b
Author: Owen Gong <[email protected]>
Date:   Sat May 6 01:34:00 2023 +0800

    Merge pull request #11 from phith0n/releas-0.4.3
    
    release 0.4.3
20230903T175849W35 [email protected]:~/lw/d.x/github.com/pyduktape2
$ pipx install --editable .
    error: subprocess-exited-with-error
    
    × python setup.py develop did not run successfully.
    │ exit code: 1
    ╰─> [212 lines of output]
        /home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
        !!
        
                ********************************************************************************
                Requirements should be satisfied by a PEP 517 installer.
                If you are using pip, you can try `pip install --use-pep517`.
                ********************************************************************************
        
        !!
          dist.fetch_build_eggs(dist.setup_requires)
        running develop
        /home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated.
        !!
        
                ********************************************************************************
                Please avoid running ``setup.py`` and ``easy_install``.
                Instead, use pypa/build, pypa/installer or other
                standards-based tools.
        
                See https://github.com/pypa/setuptools/issues/917 for details.
                ********************************************************************************
        
        !!
          easy_install.initialize_options(self)
        /home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
        !!
        
                ********************************************************************************
                Please avoid running ``setup.py`` directly.
                Instead, use pypa/build, pypa/installer or other
                standards-based tools.
        
                See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
                ********************************************************************************
        
        !!
          self.initialize_options()
        running egg_info
        writing pyduktape2.egg-info/PKG-INFO
        writing dependency_links to pyduktape2.egg-info/dependency_links.txt
        writing requirements to pyduktape2.egg-info/requires.txt
        writing top-level names to pyduktape2.egg-info/top_level.txt
        reading manifest file 'pyduktape2.egg-info/SOURCES.txt'
        reading manifest template 'MANIFEST.in'
        warning: no files found matching 'vendor/AUTHORS.txt'
        adding license file 'LICENSE.txt'
        writing manifest file 'pyduktape2.egg-info/SOURCES.txt'
        running build_ext
        /home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Compiler/Main.py:384: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /home/iwana/lw/d.x/github.com/pyduktape2/pyduktape2.pyx
          tree = Parsing.p_module(s, pxd, full_module_name)
        warning: pyduktape2.pyx:112:4: 'duk_uint_t' redeclared
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                duk_print_alert_init(self.ctx, 0)
                self._setup_module_search_function()
        
            cdef void _setup_module_search_function(self):
                duk_get_global_string(self.ctx, 'Duktape')
                duk_push_c_function(self.ctx, module_search, 1)
                                              ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:167:38: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
        
        cdef duk_ret_t safe_new(duk_context *ctx, int nargs):
            # [ constructor arg1 arg2 ... argn nargs ]
            duk_push_int(ctx, nargs)
            return duk_safe_call(ctx, call_new, NULL, nargs + 2, 1)
                                      ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:506:30: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_safe_call_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            py_ctx = get_python_context(ctx)
        
            duk_get_global_string(ctx, 'Proxy')
        
            duk_push_object(ctx) # proxy target
            duk_push_c_function(ctx, py_proxy_finalizer, 1)
                                     ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:609:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            duk_set_finalizer(ctx, -2)
            target_ptr = duk_get_heapptr(ctx, -1)
        
            duk_push_object(ctx) # proxy options
        
            duk_push_c_function(ctx, py_proxy_get, 3)
                                     ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:615:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            duk_push_object(ctx) # proxy options
        
            duk_push_c_function(ctx, py_proxy_get, 3)
            duk_put_prop_string(ctx, -2, 'get')
        
            duk_push_c_function(ctx, py_proxy_set, 4)
                                     ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:618:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            duk_put_prop_string(ctx, -2, 'get')
        
            duk_push_c_function(ctx, py_proxy_set, 4)
            duk_put_prop_string(ctx, -2, 'set')
        
            duk_push_c_function(ctx, py_proxy_has, 2)
                                     ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:621:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        cdef void push_callback(duk_context *ctx, object fn) except *:
            assert callable(fn)
        
            py_ctx = get_python_context(ctx)
        
            duk_push_c_function(ctx, callback, DUK_VARARGS)
                                     ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:740:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
            py_ctx = get_python_context(ctx)
        
            duk_push_c_function(ctx, callback, DUK_VARARGS)
        
            duk_push_c_function(ctx, callback_finalizer, 1)
                                     ^
        ------------------------------------------------------------
        
        pyduktape2.pyx:742:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
        Traceback (most recent call last):
          File "<string>", line 2, in <module>
          File "<pip-setuptools-caller>", line 34, in <module>
          File "/home/iwana/lw/d.x/github.com/pyduktape2/setup.py", line 17, in <module>
            setup(
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
            return distutils.core.setup(**attrs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
            return run_commands(dist)
                   ^^^^^^^^^^^^^^^^^^
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
            dist.run_commands()
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
            self.run_command(cmd)
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
            super().run_command(command)
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
            cmd_obj.run()
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/develop.py", line 34, in run
            self.install_for_development()
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/develop.py", line 109, in install_for_development
            self.run_command('build_ext')
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
            self.distribution.run_command(command)
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
            super().run_command(command)
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
            cmd_obj.run()
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 88, in run
            _build_ext.run(self)
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
            self.build_extensions()
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
            self._build_extensions_serial()
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
            self.build_extension(ext)
          File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 249, in build_extension
            _build_ext.build_extension(self, ext)
          File "/home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Distutils/build_ext.py", line 122, in build_extension
            new_ext = cythonize(
                      ^^^^^^^^^^
          File "/home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1134, in cythonize
            cythonize_one(*args)
          File "/home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1301, in cythonize_one
            raise CompileError(None, pyx_file)
        Cython.Compiler.Errors.CompileError: pyduktape2.pyx
        Compiling pyduktape2.pyx because it changed.
        [1/1] Cythonizing pyduktape2.pyx
        [end of output]
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× python setup.py develop did not run successfully.
│ exit code: 1
╰─> [212 lines of output]
    /home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
    !!
    
            ********************************************************************************
            Requirements should be satisfied by a PEP 517 installer.
            If you are using pip, you can try `pip install --use-pep517`.
            ********************************************************************************
    
    !!
      dist.fetch_build_eggs(dist.setup_requires)
    running develop
    /home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated.
    !!
    
            ********************************************************************************
            Please avoid running ``setup.py`` and ``easy_install``.
            Instead, use pypa/build, pypa/installer or other
            standards-based tools.
    
            See https://github.com/pypa/setuptools/issues/917 for details.
            ********************************************************************************
    
    !!
      easy_install.initialize_options(self)
    /home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
    !!
    
            ********************************************************************************
            Please avoid running ``setup.py`` directly.
            Instead, use pypa/build, pypa/installer or other
            standards-based tools.
    
            See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
            ********************************************************************************
    
    !!
      self.initialize_options()
    running egg_info
    writing pyduktape2.egg-info/PKG-INFO
    writing dependency_links to pyduktape2.egg-info/dependency_links.txt
    writing requirements to pyduktape2.egg-info/requires.txt
    writing top-level names to pyduktape2.egg-info/top_level.txt
    reading manifest file 'pyduktape2.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'vendor/AUTHORS.txt'
    adding license file 'LICENSE.txt'
    writing manifest file 'pyduktape2.egg-info/SOURCES.txt'
    running build_ext
    /home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Compiler/Main.py:384: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /home/iwana/lw/d.x/github.com/pyduktape2/pyduktape2.pyx
      tree = Parsing.p_module(s, pxd, full_module_name)
    warning: pyduktape2.pyx:112:4: 'duk_uint_t' redeclared
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
            duk_print_alert_init(self.ctx, 0)
            self._setup_module_search_function()
    
        cdef void _setup_module_search_function(self):
            duk_get_global_string(self.ctx, 'Duktape')
            duk_push_c_function(self.ctx, module_search, 1)
                                          ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:167:38: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
    
    
    cdef duk_ret_t safe_new(duk_context *ctx, int nargs):
        # [ constructor arg1 arg2 ... argn nargs ]
        duk_push_int(ctx, nargs)
        return duk_safe_call(ctx, call_new, NULL, nargs + 2, 1)
                                  ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:506:30: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_safe_call_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
        py_ctx = get_python_context(ctx)
    
        duk_get_global_string(ctx, 'Proxy')
    
        duk_push_object(ctx) # proxy target
        duk_push_c_function(ctx, py_proxy_finalizer, 1)
                                 ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:609:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
        duk_set_finalizer(ctx, -2)
        target_ptr = duk_get_heapptr(ctx, -1)
    
        duk_push_object(ctx) # proxy options
    
        duk_push_c_function(ctx, py_proxy_get, 3)
                                 ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:615:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
        duk_push_object(ctx) # proxy options
    
        duk_push_c_function(ctx, py_proxy_get, 3)
        duk_put_prop_string(ctx, -2, 'get')
    
        duk_push_c_function(ctx, py_proxy_set, 4)
                                 ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:618:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
        duk_put_prop_string(ctx, -2, 'get')
    
        duk_push_c_function(ctx, py_proxy_set, 4)
        duk_put_prop_string(ctx, -2, 'set')
    
        duk_push_c_function(ctx, py_proxy_has, 2)
                                 ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:621:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
    cdef void push_callback(duk_context *ctx, object fn) except *:
        assert callable(fn)
    
        py_ctx = get_python_context(ctx)
    
        duk_push_c_function(ctx, callback, DUK_VARARGS)
                                 ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:740:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    
    Error compiling Cython file:
    ------------------------------------------------------------
    ...
    
        py_ctx = get_python_context(ctx)
    
        duk_push_c_function(ctx, callback, DUK_VARARGS)
    
        duk_push_c_function(ctx, callback_finalizer, 1)
                                 ^
    ------------------------------------------------------------
    
    pyduktape2.pyx:742:29: Cannot assign type 'duk_ret_t (duk_context *) except? -1' to 'duk_c_function'. Exception values are incompatible. Suggest adding 'noexcept' to type 'duk_ret_t (duk_context *) except? -1'.
    Traceback (most recent call last):
      File "<string>", line 2, in <module>
      File "<pip-setuptools-caller>", line 34, in <module>
      File "/home/iwana/lw/d.x/github.com/pyduktape2/setup.py", line 17, in <module>
        setup(
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
        return distutils.core.setup(**attrs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
        return run_commands(dist)
               ^^^^^^^^^^^^^^^^^^
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
        dist.run_commands()
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
        self.run_command(cmd)
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
        super().run_command(command)
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
        cmd_obj.run()
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/develop.py", line 34, in run
        self.install_for_development()
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/develop.py", line 109, in install_for_development
        self.run_command('build_ext')
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
        self.distribution.run_command(command)
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
        super().run_command(command)
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
        cmd_obj.run()
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 88, in run
        _build_ext.run(self)
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
        self.build_extensions()
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
        self._build_extensions_serial()
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
        self.build_extension(ext)
      File "/home/iwana/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 249, in build_extension
        _build_ext.build_extension(self, ext)
      File "/home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Distutils/build_ext.py", line 122, in build_extension
        new_ext = cythonize(
                  ^^^^^^^^^^
      File "/home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1134, in cythonize
        cythonize_one(*args)
      File "/home/iwana/lw/d.x/github.com/pyduktape2/.eggs/Cython-3.0.2-py3.11-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1301, in cythonize_one
        raise CompileError(None, pyx_file)
    Cython.Compiler.Errors.CompileError: pyduktape2.pyx
    Compiling pyduktape2.pyx because it changed.
    [1/1] Cythonizing pyduktape2.pyx
    [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
Cannot determine package name from spec '/home/iwana/lw/d.x/github.com/pyduktape2'. Check package spec for errors.
aucampia added a commit to aucampia/pyduktape2 that referenced this issue Sep 3, 2023
Building with Cython 3 fails (see
<phith0n#14>). This change
restricts the versions of Cython to pre-3.0.0 so that users can install
the package without having to manually restrict Cython to the right
versions.
@phith0n
Copy link
Owner

phith0n commented Sep 3, 2023

Fixed on #15

Also something need to be done:

  • Draft and publish a new release 0.4.4
  • Improve the CI/CD and publish wheel for pyduktape2
  • Trying to be compatible with Cython 3.x

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

2 participants