-
-
Notifications
You must be signed in to change notification settings - Fork 2
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
Migration to tox #51
Comments
tox always seemed like another layer of complexity to debug when there is a large dep chain. I don’t think we have that problem here. another concern is it tends to slow things down. I wonder if https://github.com/tox-dev/tox-uv if ready for prime time would like to be mindful of the inverse relationship between CI run time/test invocation complexity and contributor participation |
I've been using it for like a decade and sometimes contributed to it. Makefile also adds a layer of complexity, and virtualenvs do too for that matter.
Tox's main idea is to actually keep the CI and dev env experience in sync as much as possible. Additionally, I have an interesting approach with heavily-pinned DIY pip-tools-managed lockfiles that ties well into the infra. |
I'm adding this to the sprint with the understanding that this is difficult and should be worked on in small portions. Somebody will need to pair/consult with me to understand the exact vision I have in mind. |
Linking some of my points from the past: aio-libs/aiohttp#3419 (comment) |
I'd like to do $sbj to the extent possible. It's hard to complete such a change in long-existing projects for a number of reasons, since it's a bit complicated when it comes to C-extensions. But I think the ecosystem is in a better place today than it was when I last considered it (like
tox devenv
, for example). I've also gained some experience with tox+Cython elsewhere, which makes me think that using tox (a Python-aware workflow tool) is generally better than GNU/make (which is generic and is just a dumb command runner mostly).We can keep tox invocations wrapped with
make
if someone wants that, but in general, I considermake
impractical in the Python world. It originally exists in aiohttp-adjacent projects because of CPython Core Devs' prior habit.@bdraco @Dreamsorcerer I'll be counting on your DX feedback in related PRs, specifically around working with C-extensions. But the scafolding I'm hoping to mostly source from my other projects, as it's pretty well-composed already. The only thing I didn't really hash out is the build options (python vs. compiled extension). So it'd be the only thing that will need extra thought.
The text was updated successfully, but these errors were encountered: