fink / fink-distributions

Package descriptions and patches for Fink
24 stars 38 forks source link

invoke-py no longer test builds #1162

Open nieder opened 5 days ago

nieder commented 5 days ago

Trying to add py38-py310 for invoke-py, I see that ur invoke-py is fairly old (2018) and no longer passes tests because pytest has deprecated things it uses (even for py37 that used to build back in 2019). This is the error:

========================================================================= test session starts ==========================================================================
platform darwin -- Python 3.7.13, pytest-7.4.4, pluggy-1.2.0
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
Using --randomly-seed=3398879786
rootdir: /sw/build.build/invoke-py37-1.2.0-1.1/invoke-1.2.0
configfile: setup.cfg
testpaths: tests
plugins: datadir-1.4.1, benchmark-3.4.1, cov-4.1.0, randomly-3.12.0, relaxed-1.1.4, xdist-3.5.0, mock-3.11.1, hypothesis-6.42.1, flaky-3.8.1
collected 0 items / 1 error                                                                                                                                            

================================================================================ ERRORS ================================================================================
____________________________________________________________________ ERROR collecting test session _____________________________________________________________________
Direct construction of pytest_relaxed.classes.SpecModule has been deprecated, please use pytest_relaxed.classes.SpecModule.from_parent.
See https://docs.pytest.org/en/stable/deprecations.html#node-construction-changed-to-node-from-parent for more details.
=========================================================================== warnings summary ===========================================================================

The direct problem is that pytest-relaxed is also old (also 2018). @dhomeier has said that there are problems with pytest-relaxed, and I've often found that I have to add -p no:relaxed to pytest calls so that the plugin is not loaded for other packages. However, invoke actively uses pytest-relaxed, so this is not an option here.

But could those problems be dealt with if pytest-relaxed is updated?

nieder commented 4 days ago

According to upstream code for our invoke-1.2.0, the pytest requirements are:

pytest==3.2.5
pytest-relaxed==1.1.4

There was an update for invoke-1.3.1 that updated pytest slightly:

https://github.com/pyinvoke/invoke/commit/2687c920b738786203fd056c59a7775c5c6fe924

pytest==4.6.3
pytest-relaxed==1.1.5

The next update for invoke-py to 2.x bumped pytest-relaxed to >2. Perhaps we can update invoke to at least 1.3.1?