pangeo-data / climpred

:earth_americas: Verification of weather and climate forecasts :earth_africa:
https://climpred.readthedocs.io
MIT License
231 stars 48 forks source link

Adopt PEP621 and src layout, support Python3.12, drop Python3.8 #862

Closed Zeitsperre closed 3 months ago

Zeitsperre commented 3 months ago

Description

This PR moves almost all the packaging configuration to the pyproject.toml file. Metadata is updated to add the maintainers, and some features of modern setuptools are used to remove many now-redundant files.

This PR also changes the package to that of a src file structure layout in lieu of a "flat" one. It also updates the CI workflows for uniformity and to adapt to the new structure.

Finally, this adds Python3.12-minimum deps and Python3.12-maximum-tests builds to the CI, and places an upper pin on numpy (<2.0.0) when installing xclim (until it is officially supported).

We should prepare a release after this PR is merged.

To-Do List

Type of change

How Has This Been Tested?

Checklist (while developing)

References

https://peps.python.org/pep-0621/ https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.54%. Comparing base (56133d2) to head (ab3b619). Report is 20 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #862 +/- ## ======================================= Coverage 91.54% 91.54% ======================================= Files 59 59 Lines 6248 6248 ======================================= Hits 5720 5720 Misses 528 528 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Zeitsperre commented 3 months ago

@aaronspring

This is ready for review!