esa / pygmo2

A Python platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.
https://esa.github.io/pygmo2/
Mozilla Public License 2.0
434 stars 57 forks source link

Test and release against Python 3.8 #4

Closed snorfalorpagus closed 4 years ago

snorfalorpagus commented 4 years ago

Python 3.8 was released in October 2019. It would be useful to expand the CI to include tests against 3.8 and to do a release on PyPI (+others) for it.

bluescarni commented 4 years ago

We do have some testing against Python 3.8 in our CI, but it is currently disabled due to what I think is a temporary issue with conda (which we are using for dependency management in our CI setup).

FYI, under Python 3.8 we are being hit by this upstream bug:

https://bugs.python.org/issue38501

(in case you run into this issue while using pygmo + multiprocessing)

Also please be aware that the pygmo pip packages for Windows are known to be buggy. We don't know if it's a miscompilation problem involving MinGW, or if it is an issue when mixing the MinGW and MSVC C runtimes. See for reference esa/pagmo2#358. We would warmly suggest to use the conda packages for Windows instead (the Linux pip packages are fine).

Fixing the Windows pip packages would require to rewrite the appveyor build scripts to use MSVC-compiled dependencies and to use MSVC to build pygmo itself. It's not difficult to do for someone with a bit of experience on Windows development, but at the moment we don't have the manpower to do this ourselves. PRs/help welcome as usual :)

bluescarni commented 4 years ago

@snorfalorpagus let me also add that the pygmo conda packages for Python 3.8 are already available.

bluescarni commented 4 years ago

@snorfalorpagus oh, and regarding the Linux pip packages for 3.8, I think @darioizzo gave it a try at one point but something was not working properly, but I am not 100% sure.

In general we prioritize the conda packages over the pip ones, as pagmo/pygmo have a moderately complicated C++ stack of dependencies which is not really suitable for management with pip.

bluescarni commented 4 years ago

py38 linux wheels have been implemented in #20, and they will be part of the upcoming release. Python 3.8 is now being regularly tested in the CI (see #23).

Closing this.