pydoit / doit

task management & automation tool
http://pydoit.org
MIT License
1.82k stars 171 forks source link

Pickle error on pypy3.8 #409

Open schettino72 opened 2 years ago

schettino72 commented 2 years ago

See https://github.com/cloudpipe/cloudpickle/pull/454

Fund with Polar

mattip commented 2 years ago

Whoops. Pinning cloudpickle<2.0 got lost, and now doit does not work with PyPy.

mattip commented 2 years ago

Apparently the pin would not help. Any use of cloudpickle does not work with PyPy.

schettino72 commented 1 year ago

I guess it will take a while for upstream to solve this...

So I have made cloudpickle an optional import on code. It is still installed by default unless on pypy. (on version 0.37 - unreleased as of now).

Note some tests related to DBM are also failing on pypy...

mattip commented 1 year ago

Thanks. Where can I see the failing tests?

schettino72 commented 1 year ago

@mattip https://github.com/pydoit/doit/runs/7481585043?check_suite_focus=true#step:13:911 Problem might be just with doit test suite. I will check on my next "open source time slot".

schettino72 commented 1 year ago

I fixed the failing tests. PyPy 3.8 & 3.9 are now part of CI again.

I will keep this issue open until cloudpickle works with PyPy again...

mattip commented 1 year ago

Thanks!

bollwyvl commented 1 year ago

DBM are also failing on pypy...

This module is also unvendored in e.g. pyodide, which makes patching required to get doit to import.

Seems like leaving the cloudpickle dependency optional, and making dbm a lazier import is a fine path: no dependencies are my favorite dependencies for a low-level tool.