nikolasibalic / ARC-Alkali-Rydberg-Calculator

Object-oriented Python library for computation of properties of highly-excited Rydbeg states of alkali and divalent atoms.
https://atomcalc.org
BSD 3-Clause "New" or "Revised" License
91 stars 82 forks source link

Modernizing and extending the build backend #166

Closed dihm closed 6 months ago

dihm commented 6 months ago

I've been working on creating a conda channel for a project of mine that highly depends on ARC, so I've been vendoring the package. I'm trying to extend the build to osx-arm64 and been having a devil of a time (for reasons largely unrelated to ARC itself).

During the course of this, I've noticed a number of deprecation warnings from both pip and build that probably need to be addressed. The following results from installing an editable copy of arc using pip with the verbose flag on.

            ********************************************************************************
            Usage of dash-separated 'description-file' will not be supported in future
            versions. Please use the underscore name 'description_file' instead.

            By 2024-Sep-26, you need to update your project and remove deprecated calls
            or your builds will no longer be supported.

            See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
            ********************************************************************************
            ********************************************************************************
            Requirements should be satisfied by a PEP 517 installer.
            If you are using pip, you can try `pip install --use-pep517`.
            ********************************************************************************
            ********************************************************************************
            Please avoid running ``setup.py`` and ``easy_install``.
            Instead, use pypa/build, pypa/installer or other
            standards-based tools.

            See https://github.com/pypa/setuptools/issues/917 for details.
            ********************************************************************************
            ********************************************************************************
            Please avoid running ``setup.py`` directly.
            Instead, use pypa/build, pypa/installer or other
            standards-based tools.

            See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
            ********************************************************************************

I'm wondering if you would be interested in going beyond addressing the deprecation warnings and overhauling the packaging/build backend for ARC to have it be a little more modern (in the ever changing python packaging seas)? Primarily moving current PyPA guidelines which mostly involves moving project metadata and build configuration to pyproject.toml.

At the same time, I'd like to also extend the build to cover the osx-arm64 architecture so the M1 users don't have to locally compile ARC to use it. Github now has osx-arm64 runners so it should be fairly simple.

Happy to put in the work if you are interested dealing the PR.

nikolasibalic commented 6 months ago

Hi David @dihm ,

Everything you suggest I 100% support. Indeed after eight years setup procedure can be much modernized. And I am glad that M1 chipsets are supported now with GitHub runners (I haven't checked that in a long time myself, thanks for doing that!).

Yes, please open a PR. I will test it ASAP and release. It would be good also after that release if you can test that on M1 pip wheels work out of the box (I don't have at hand that hardware).

Many thanks, as always, for good comments and effort!