-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better handling and documentation of dependencies #1589
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1589 +/- ##
==========================================
- Coverage 98.06% 97.49% -0.58%
==========================================
Files 110 111 +1
Lines 9984 10136 +152
==========================================
+ Hits 9791 9882 +91
- Misses 193 254 +61
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @tjtg. This provides a substantial improvement on the state of environments, dependencies, and documentation of both.
One small comment: the "conda-forge" and "latest" environment files have the same "name", i.e. "improver_latest". Do you think this will cause confusion? Perhaps the conda-forge env could be named something like "improver_conda_forge" or something similar?
That's a mistake from copy-pasting. Yes, it should be named something else and I'll add a commit to do that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All good now. Thanks @tjtg.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please can we drop the requirement to pass all tests with "latest"; we don't want to support that as I would expect it to fail nearly all the time. I'm not sure of the value in supporting the "conda-forge" environment either.
I've spoken to @benfitzpatrick about this and he would like to discuss this with @tjtg next week.
The previous exclude was not effective - it excluded the top level directory, but not the subdirectories containing all the test source code files.
Unit test failures occur with older versions
Thanks @tjtg for sending me some more information about this PR. Here's the bits that I think ought to be included here, so we remember why we've set these up in this way.
|
I think all the remaining items have been addressed now - ready for @MoseleyS and @cpelley to re-review. 196c83e sets up daily running of the
I've added c2c7591 adds tests for timezone mask generation using a regular lat/lon grid over western Europe. This corresponds to the last item in comment above #1589 (comment). |
I'm tentatively approving this PR. I'd like @bayliffe to review the last change (to the timezone unit-tests) as he is the most familiar with them in our team. I'm happy with all the rest. |
Thanks @tjtg for the changes to the timezone tests. You've added a little more rigour, which is welcome. I have no issue with the changes. |
* master: Remove __repr__ methods from all neighbourhood plugins (#1648) ENH: Avoiding lazy loading in select command calls (#1617) MOBT-180: Weather symbol speed up (#1638) IM-1621: Make ECC error and warning tests more rigorous (#1641) Make flake8 report that it is okay when running improver-tests. (#1645) Update checksums after updating the title of files in apply-emos-coefficients/sites. (#1640) Fixes bug in spot-extraction for multi-time inputs (#1633) Updates checksums for threshold landmask fix (#1636) Update interpret-metadata (#1632) Weather code tree update (#1635) Fix noise in precip accumulation thresholds (#1627) Expanding on triangle time blending doc strings. (#1630) Better handling and documentation of dependencies (#1589) Add tests (#1626) Enhancements on new regridding code (#1560) Speed up interpolation in ensemble_copula_coupling.ConvertProbabilitiesToPercentiles (#1578) Speed up interpolation in ensemble_copula_coupling.ResamplePercentiles (#1548) Spot-extraction additional coordinates ordering fix (#1610)
* upstream/master: Remove __repr__ methods from all neighbourhood plugins (#1648) ENH: Avoiding lazy loading in select command calls (#1617) MOBT-180: Weather symbol speed up (#1638) IM-1621: Make ECC error and warning tests more rigorous (#1641) Make flake8 report that it is okay when running improver-tests. (#1645) Update checksums after updating the title of files in apply-emos-coefficients/sites. (#1640) Fixes bug in spot-extraction for multi-time inputs (#1633) Updates checksums for threshold landmask fix (#1636) Update interpret-metadata (#1632) Weather code tree update (#1635) Fix noise in precip accumulation thresholds (#1627) Expanding on triangle time blending doc strings. (#1630) Better handling and documentation of dependencies (#1589) Add tests (#1626) Enhancements on new regridding code (#1560) Speed up interpolation in ensemble_copula_coupling.ConvertProbabilitiesToPercentiles (#1578) Speed up interpolation in ensemble_copula_coupling.ResamplePercentiles (#1548) Spot-extraction additional coordinates ordering fix (#1610)
* Rename and add environments * Thin out requirements in setup.cfg, add note * Remove improver_tests tests from built package The previous exclude was not effective - it excluded the top level directory, but not the subdirectories containing all the test source code files. * Skip checksum sorted test if file not available * Pytest skips for stratify * Move stratify import inside function * Remove duplicated statsmodels * Better explanation for latest environment * Add sphinx typehints to conda-forge tests section * Run security checks on all environments * Separate coverage and no-coverage environments * Add detailed pinning to A/B environments * Pin numpy/cartopy in latest environment Unit test failures occur with older versions * Start documentation * Remove dateutil dependency * More documentation * Remove timezone database dependence in unit test * Fix duplicated name in conda-forge environment * Add note that not all CLIs are available with environment_b * Remove leftover expected data from test_process * Fix flake8 * Remove not-really-working install_requires section * Clarify conda-forge environment comment * Move latest environment tests to schedule * Fix actions YAML * Reschedule * Fix scheduling, add manual running, metoppv-only * Add timezone mask test on europe lat/lon domain
* upstream/master: Remove __repr__ methods from all neighbourhood plugins (metoppv#1648) ENH: Avoiding lazy loading in select command calls (metoppv#1617) MOBT-180: Weather symbol speed up (metoppv#1638) IM-1621: Make ECC error and warning tests more rigorous (metoppv#1641) Make flake8 report that it is okay when running improver-tests. (metoppv#1645) Update checksums after updating the title of files in apply-emos-coefficients/sites. (metoppv#1640) Fixes bug in spot-extraction for multi-time inputs (metoppv#1633) Updates checksums for threshold landmask fix (metoppv#1636) Update interpret-metadata (metoppv#1632) Weather code tree update (metoppv#1635) Fix noise in precip accumulation thresholds (metoppv#1627) Expanding on triangle time blending doc strings. (metoppv#1630) Better handling and documentation of dependencies (metoppv#1589) Add tests (metoppv#1626) Enhancements on new regridding code (metoppv#1560) Speed up interpolation in ensemble_copula_coupling.ConvertProbabilitiesToPercentiles (metoppv#1578) Speed up interpolation in ensemble_copula_coupling.ResamplePercentiles (metoppv#1548) Spot-extraction additional coordinates ordering fix (metoppv#1610)
This PR is intended to improve handling of dependencies and conda environments used for testing.
setup.cfg
.pip install -e .
) is by developers who will provide their own environment such as from conda.conda install -c conda-forge improver
) and will pick up dependencies from that package.improver_tests
- previously the top level package was being excluded, but subpackages were being included. This resulted in all the test files being installed, but in a non-working state.datetime
functionality.pytz
) version in use.Testing: