Closed aucampia closed 10 months ago
Upstream issue: https://github.com/phith0n/pyduktape2/issues/14 and fix https://github.com/phith0n/pyduktape2/pull/15.
On a side note, is there something https://github.com/phith0n/pyduktape2/ provides that https://pypi.org/project/dukpy/ does not? As the second seems more popular.
I don't think there is a workaround because pyduktape2 does not publish a wheel, and the failure is during wheel building from the pyduktape2 sdist and poetry does not have an option that can be used to restrict the version of cython that is used.
Another JavaScript library for python: https://github.com/Distributive-Network/PythonMonkey#pythonmonkey
@ashleysommer not sure what you think is the best thing to do here, happy to help out depending on your choice. Having the CI and make test
work is probably the most important for me, so options I can see:
pyduktape2
optional, similar to how we only run extensive tests (with berkeleydb for example) on some environments for RDFLib [ref]Hi @aucampia Yep, I'm aware of this issue and I have been working on a fix for it within PySHACL.
In the meantime, I believe it is okay to simply make testing with pyduktape2 optional (in the same way berkeleydb is for RDFLib) as per your suggestion.
On a side note, is there something https://github.com/phith0n/pyduktape2/ provides that https://pypi.org/project/dukpy/ does not? As the second seems more popular.
Back in 2019 when I began implementation of the SHACL-JS feature set, the only options I could find were stefano/pyduktape, that didn't support Python3, or the fork phith0n/pyduktape2 that was more up to date and did support Python3. If DukPy was around at the time, it was not popular enough to come up when searching PyPi, Github or Google, for lightweight JS engine wrappers for python. Just looking at it now, it seems to be a very feature-filled package with JSX transpilation, LESS processing, etc, that we don't need in PySHACL.
I do remember PythonMonkey was around, but it is a full implementation of the Mozilla SpiderMonkey engine, that is very heavy, it requires LLVM and Rust toolchains to compile, and is overkill for the simple scripting required in PySHACL.
Wait for upstream fixes (https://github.com/phith0n/pyduktape2/issues/14), but I suspect this will take quite a long time.
I'm very happy to stick with pyduktape2, in the past I have found the maintainer to be very responsive and will endeavor to fix issues as they arise. As an example, only three hours after you filed your issue, your fix was merged a new release has been pushed our for it.
The CI is failing on:
https://drone.rdflib.ashs.dev/RDFLib/pySHACL/146/2/2