[pdal] PDAL Version 2.1 Release

Howard Butler howard at hobu.co
Wed Apr 1 06:47:51 PDT 2020



> On Mar 31, 2020, at 11:03 PM, Sebastiaan Couwenberg <sebastic at xs4all.nl> wrote:
> 
> On 3/21/20 2:32 PM, Howard Butler wrote:
>>> On Mar 21, 2020, at 1:50 AM, Sebastiaan Couwenberg <sebastic at xs4all.nl> wrote:
>>> 
>>> Will there also be a new release of the Python package?
>> 
>> Yes, although I'm still having trouble getting the build scenarios of filters.python and readers.numpy correct on all platforms with setup.py. Specifically, Python the combo of static/dynamic linking of Python itself and the use by the embedded plugins. There doesn't seem to be high-level Python distutils support for building "normal shared objects", and so I have had to build a lot of my own. I expect there to be some bugs when I do roll it out.
>> 
>> I was hoping to polish it this next week. The nice thing about the Python stuff being removed, is it can be released at its own pace. That pace is likely to be much faster than PDAL itself going forward.
> 
> Version 2.3.0 requires scikit-build which is not packaged for Debian and
> hence blocks the update of python-pdal.
> 
> Why can't just cython & setuptools do the job?

scikit-build is pip-installable and pure Python.

Because distutils/setuptools isn't a generic builder environment. scikit-build is just a CMake wrapper, which we've already used to implement build settings for the PDAL Python stages and tests. I had implemented about half of the things I needed to achieve it manually in distutils in the PR https://github.com/PDAL/python/pull/47 <https://github.com/PDAL/python/pull/47> but it was quickly getting out of hand. It wasn't working cross-platform, and it didn't support all of the Python items either because there isn't a generic distutils compiler for "make a shared module". That's only for Python modules. I was basically building scikit-build, and I realized this after some research and pivoted to using it instead.

Once I switched to scikit-build, I was able to reuse much of the build configuration we already had, I was able to build and run the tests on all three platforms [1], and all of the configurability of the previous inside-PDAL deployment of the stages was preserved.

For those wonder why we bothered splitting things apart, the full loop of PDAL -> Numpy -> PDAL -> Numpy now works (see the Reading using Numpy Arrays example on https://pypi.org/project/PDAL/ <https://pypi.org/project/PDAL/> ). This was very difficult to get working with PDAL was holding thing Python version and configuration fixed to how it was originally compiled. 

Howard

[1] https://dev.azure.com/hobuinc/pdal-python/_build/results?buildId=1796&view=results <https://dev.azure.com/hobuinc/pdal-python/_build/results?buildId=1796&view=results>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20200401/e8b455d8/attachment.html>


More information about the pdal mailing list