Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #590 +/- ##
==========================================
- Coverage 99.81% 99.06% -0.75%
==========================================
Files 5 5
Lines 1600 1600
==========================================
- Hits 1597 1585 -12
- Misses 3 15 +12 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Issues:
|
d9078b3 to
3923460
Compare
|
@grahamgower @apragsdale -- this is ready for a look. I have shoe-horned most tasks into a place where they now work. The problem is the windows tests. They fail because the modules in demes-spec are not finding ruamel. I cannot reproduce this issue locally, which makes sense because I'm on Linux and the Linux tests are also passing in CI. |
|
The failing tests are in test_cli.py and test_spec.py. What these tests have in common is that they use |
grahamgower
left a comment
There was a problem hiding this comment.
There seems to be a lot of duplication between the _setup.cfg and pyproject.toml - is this intentional? And what's the role of _setup.cfg here, versus setup.cfg? Which files are generated by uv? Is it just uv.lock?
_setup.cfg
Outdated
| long_description_content_type = text/markdown | ||
| url = https://github.com/popsim-consortium/demes-python | ||
| classifiers = | ||
| Development Status :: 4 - Beta |
There was a problem hiding this comment.
I reckon we're out of beta now.
| "Topic :: Scientific/Engineering :: Bio-Informatics" | ||
| ] | ||
|
|
||
| requires-python = ">=3.10" |
There was a problem hiding this comment.
This doesn't match the _setup.cfg file.
There was a problem hiding this comment.
Correct -- the _setup file is to rename it so that it doesn't confuse uv / conflict with pyproject.
More generally, our pinning to 3.7 was wrong due to other pinned dependencies that this PR revealed. (Briefly, our pinnings related to docs required >= 3.10).
There was a problem hiding this comment.
Demes can be installed and used on 3.7, but building the docs on CI needed a more recent version due to jupyterbook annoyances. I don't think that was incorrect. That said, I don't mind if you want to bump things to the latest supported python version.
There was a problem hiding this comment.
If we want to keep a pinning to >= 3.7 then we would need to figure out how to downgrade the jupyter-book dependencies. But I do think that we should just try to track currently supported Python versions. Moving forward, uv will force this on use b/c a given uv version will only support a handful of Python versions.
pyproject.toml
Outdated
| readme = {file = "README.md", content-type = "text/markdown"} | ||
| license = {text = "ISC"} | ||
| classifiers = [ | ||
| "Development Status :: 4 - Beta", |
There was a problem hiding this comment.
Our version number is still < 1??
There was a problem hiding this comment.
Nevertheless, I'd argue demes is now Development Status :: 5 - Production/Stable (https://pypi.org/classifiers/).
_setup.cfg is to move setup.cfg out of the way. It is currently expected that most/all of that material is now in pyproject. _setup.cfg will be deleted prior to merging. setup.cfg itself now only contains config for flake8 and mypy. The former does not support pyproject configuration** and I had trouble getting the latter working but will try again. **This situation is unfortunate and can be "fixed" by adding a dependency on flake8-pyproject uv.lock is the only file generated by uv. |
agreed, but the issue remains that it is windows-specific. Does anyone here have the ability to locally explore this problem? |
|
If they're only failing on windows I'd consider pytest.skip - most likely not a real problem just annoying infrastructure differences |
c9c4e0f to
bf8f3f8
Compare
|
A note for everyone listening that may save you future pain: Any call to something like |
|
I think there is one outstanding issue remaining: we have a dev.yaml test file that tests a pip-install of the developer dependencies. I argue that we remove this and all the requirements files. Developers can/should now use uv locally, and the requirements files are pinned and thus difficult to maintain. |
Actually, we may be able to keep the CI file but redirect pip to look at pyproject.toml.... |
* move dependency management to uv * move (most) config info to pyproject.toml * bump minimum supported Python version * bump development status metadata * update github workflows * remove requirements files
See #589