Skip to content

Modernize packaging#339

Open
Zeitsperre wants to merge 11 commits into
thouska:masterfrom
Zeitsperre:modernize-packaging
Open

Modernize packaging#339
Zeitsperre wants to merge 11 commits into
thouska:masterfrom
Zeitsperre:modernize-packaging

Conversation

@Zeitsperre
Copy link
Copy Markdown
Contributor

@Zeitsperre Zeitsperre commented May 27, 2026

Summary

This PR addresses several warnings and inconsistencies that are evident when examining the conda package and the testing output:

  • The build backend was old, and some metadata fields were deprecated, slated for removal in 2027.
  • The optional dependencies for some submodules were mixed in with the testing dependencies
  • Some neccessary dependencies listed in the conda package were not listed in the package metadata.

This also addresses some issues in the GitHub workflows:

  • Actions versions were quite out-of-date.
  • The source_check job was installing black and isort but not running them.
  • Dependencies installed in CI were not listed in the pyproject.toml.

Changes

  • Updates several base packages to use newer versions
  • The CLI entry point is now set, allowing for $ spotpy to work properly from the command line (click is now a core dependency).
  • Drops Python3.9 code conventions
  • Updates GitHub Actions to newer major versions
  • GitHub Workflow adjustments
    • source_check is now lint: Linting libraries are now installed and run using --check
    • build_sdist is now test_build
  • black and isort checks are now enforced, and the code base has been adapted to latest versions.
  • The license and license-files metadata fields have been updated to be consistent with PEP 635.
  • setup.py has been removed from the MANIFEST.in (deleted long ago).

Breaking Changes

The library now uses PEP 735 for installing testing and linting libraries. These groupings of dependencies are installed via:

$ python -m pip install --group lint,test,etc

The test recipe currently includes libraries to run optional components as well as libraries to run tests, so these still need to be split up a bit.

Relevant PEPs:

What's missing?

  • The changelog is very out of date
  • Many warnings are being raised from pytest (perhaps for another PR)

@coveralls
Copy link
Copy Markdown

coveralls commented May 27, 2026

Coverage Report for CI Build 26539512679

Coverage increased (+0.02%) to 66.791%

Details

  • Coverage increased (+0.02%) from the base build.
  • Patch coverage: 27 uncovered changes across 4 files (6 of 33 lines covered, 18.18%).
  • 8 coverage regressions across 3 files.

Uncovered Changes

File Changed Covered %
src/spotpy/analyser.py 20 1 5.0%
src/spotpy/algorithms/morris.py 6 0 0.0%
src/spotpy/algorithms/fast.py 1 0 0.0%
src/spotpy/algorithms/padds.py 1 0 0.0%
Total (8 files) 33 6 18.18%

Coverage Regressions

8 previously-covered lines in 3 files lost coverage.

File Lines Losing Coverage Coverage
src/spotpy/analyser.py 4 78.13%
src/spotpy/algorithms/morris.py 3 18.03%
src/spotpy/algorithms/fast.py 1 55.45%

Coverage Stats

Coverage Status
Relevant Lines: 5643
Covered Lines: 3769
Line Coverage: 66.79%
Coverage Strength: 2.0 hits per line

💛 - Coveralls

@Zeitsperre Zeitsperre marked this pull request as ready for review May 27, 2026 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants