lovasoa / marshmallow_dataclass

Automatic generation of marshmallow schemas from dataclasses.
https://lovasoa.github.io/marshmallow_dataclass/html/marshmallow_dataclass.html
MIT License
456 stars 78 forks source link

Specify build backend #241

Open EpicWink opened 1 year ago

EpicWink commented 1 year ago

Specify project package build backend (setuptools).

This modernises the build process, moving away from the legacy setuptools pip build flow.

Also switch to build for building the sdist and wheel, to not use the deprecated setup.py-based package build.

Downsides: python setup.py stops working (desired), requires pip v19 (from 2019)

dairiki commented 1 year ago

Downsides: python setup.py stops working (desired), requires pip v19 (from 2019)

I don't have strong feelings on this either way, other than that I think it is confusing to have a setup.py if it doesn't work.

I think the project metadata could be moved to setup.cfg (and then setup.py deleted) while still remaining buildable under Python 3.6. But that's probably not worth it, since the longer-term goal is to move the metadata to pyproject.toml (#242) which, it appears, can not be done while maintaining Python 3.6 compatibility.

So, I guess, I would rather hold off on this until we drop Python 3.6 support (which is "imminent"), at which point we can fold this PR into #242.

EpicWink commented 1 year ago

I don't have strong feelings on this either way, other than that I think it is confusing to have a setup.py if it doesn't work.

Invoking setup.py as a script will stop working (because setuptools may not be installed), which is fine as at some point setuptools will drop support for this. setup.py can still be used to specify project configuration.