SciTools / iris-esmf-regrid

A collection of structured and unstructured ESMF regridding schemes for Iris.
https://iris-esmf-regrid.readthedocs.io/en/latest
BSD 3-Clause "New" or "Revised" License
19 stars 17 forks source link

Update CI environment lockfiles #123

Closed github-actions[bot] closed 2 years ago

github-actions[bot] commented 2 years ago

Lockfiles updated to the latest resolvable environment.

trexfeathers commented 2 years ago

The py3.8 tests failure is repeatable if re-run, however I am unable to replicate it locally if I run the same Nox session with export COVERAGE=True - everything runs successfully for me.

I'm fairly certain this error appeared once before on #114, but disappeared on re-running. However it's difficult to work out the cause - codecov -> python[version='2.7.*|3.5.*|3.6.*'] doesn't tally given that this is post successful creation of a Python 3.8 environment.

I'm inclined to suspect that something has become confused/corrupted, and this has somehow combined with the recent release of pytest-cov 3.0.0 to make Conda find a conflict. I've no idea how to fix it! Even invalidating Cirrus' caches doesn't help.

jamesp commented 2 years ago

conda resolution is a pain to debug. A couple of things you could try:

  1. It looks like nox installs pip and wheel in all environments it creates. This happens here. It is pulling from the default conda channel. You are then applying a lock file on top of those dependencies that has not been resolved in the same way, it may be making the environment inconsistent. At L238 of virtualenv.py nox adds self.venv_params to the install command. If you could work out how to add "--channel=conda-forge" to that list it may help.

  2. Adding pytest-cov and codecov is forcing a re-resolve of the environment. You could try adding one/both of the following command line arguments:

    --freeze-installed, --no-update-deps
                        Do not update or change already-installed
                        dependencies.

or

 -S, --satisfied-skip-solve
                        Exit early and do not run the solver if the requested
                        specs are satisfied. Also skips aggressive updates as
                        configured by 'aggressive_update_packages'. Similar to
                        the default behavior of 'pip install'.
codecov[bot] commented 2 years ago

Codecov Report

Merging #123 (c50ca23) into main (d7ec39d) will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #123   +/-   ##
=======================================
  Coverage   98.85%   98.85%           
=======================================
  Files          14       14           
  Lines         699      699           
=======================================
  Hits          691      691           
  Misses          8        8           

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update d7ec39d...c50ca23. Read the comment docs.

trexfeathers commented 2 years ago

Thanks for your advice @jamesp! Unfortunately my attempts seemed to only prove that there probably was a conflict, so I've gone with actually including the coverage packages in the environment requirements. Seems to have worked 🤞

jamesp commented 2 years ago

👍 seems like a good alternative @trexfeathers