-
-
Notifications
You must be signed in to change notification settings - Fork 523
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
[RFC] tox 4 #1394
Comments
I'd really like to see Poetry support. Currently the way I use Poetry with tox is via this brilliant hack by @canassa of using a fake install_command = poetry {packages}
deps = install Outside tox, the way Poetry is used is |
@jtrakk as long as I'm reading this correctly, this will better enable a plugin to add as for the proposal here are my thoughts
|
For now configurations are calculated at first access and cached indefinitely afterwards. We probably can add some kind of auto update if dependent configurations change later on. I've been working the last few weeks on adding tests. I got to around 70 percent now, takes some time though to make it feature full and deploy ready. It can run itself for now (not yet in parallel). A side effect of the rewrite is also a rewrite of the test suite, I'm trying to make it really fast (sub minute test suite is my hope/goal) for unit tests. Maybe two more for unit Plus integration tests. |
Just 2 cents: targetting py36+ is better for type annotations (very useful in a big rewrite I assume), and it will likely take some time anyway (py35 is only supported until 2020-09-13 officially). It could still be used to run py35 envs (I assume). |
You can use type comments, took me like 1 hour to make tests pass on 3.5 once they were on 3.8. so using 3.5+ I found to be enough for now. |
Sorry, this completely slipped by. Looks like a great initiative 👍 I will take some time as soon as I can to have a closer look and give some detailed feedback. |
@obestwalter that's alright, I have a POC version running at #1400, but for now got put on the backlog, will continue after pypa/virtualenv#1377 (probably in December). |
That's #149, right? Very exciting! |
Partially, for now works for dependencies specified by build-backends; aka libraries; but plan is to support requirement/pipfiles too 👍 |
For who is following this I've picked this up again via the rewrite branch 👍 now that virtualenv rewrite is done. |
@gaborbernat Is your branch ready for testers? 😄 |
Probably a month away from first alpha. Virtualenv issues delayed expected progress on this 🤷♂️ |
Is https://github.com/tox-dev/tox/tree/rewrite getting ready for alpha testing ? Are there any local or upstream bugs that others could fix to help you? Any other help that other volunteers could provide to speed up cutting an alpha release? |
So not yet, but I've been working on this yesterday. Can you get me back in two weeks, all help would be much appreciated at that point 👍 |
The first alpha versions are now available on PyPi, so I'll close the RFC. Progress on the release towards 4.0 can be followed under milestone 4.0 https://github.com/tox-dev/tox/milestone/7. |
@gaborbernat question unrelated to this issue, but what happened to tox-via-docker? I get a 404 for the link o mentioned above and can’t find any other references to it apart from https://discuss.python.org/t/tool-like-tox-but-based-on-docker/9908/2 Thanks in advance! |
Maybe it’s using this name now: https://github.com/tox-dev/tox-docker |
That's package never got finished. Someone has time can pick it up, but my interest has dwindled and I'm spreading across other projects my efforts now. |
@merwok @gaborbernat Thanks for the fast replies! However, looking at https://github.com/tox-dev/tox-docker, this seems to be a different project altogether.
The best I can find is this Archive capture: https://web.archive.org/web/20221215044605/https://github.com/tox-dev/tox-via-docker but it looks like the project was never very developed in the first place. Maybe this is why the GitHub repository wasn't archived but deleted instead... |
Hence 👌 |
As some of you might probably be aware I've been attempting a virtualenv rewrite (see pypa/virtualenv#1366). To validate my progress on there I've run into the issue of sometimes one needs to run the test suite in a particular Linux distribution. One of the easiest ways of doing this is to run inside a docker image customized for that distro. There's no tox plugin at the moment though that allows one to use docker environments instead of virtual environments. While trying to create this via https://github.com/tox-dev/tox-via-docker I've realized in the internals a lot of things are tied to running things on the local machine via subprocess. Fixing this would mean needing to monkey patch quite a few things within the core. Trying to refactor the internal code to fix this turned into introducing breaking change after breaking change. Therefore, hereby I'm announcing tox 4; that plans to fix this, while also addressing many of the major feature requests we've been putting on the side for a while. Effectively a clean start and complete rewrite.
https://github.com/gaborbernat/tox/tree/docker/src/tox contains a snapshot of this effort. Probably will take all the way to the end of the month for the first version, but opening this issue for a request for comments on the general level.
External facing
Python 3.5+
only.list
sub-command from -a (l
shortcut)config
sub-command form--showconfig
(c
shortcut)run-parallel
sub-command form-p
(p
shortcut)run
sub-command form non other commands (r
shortcut)non captured commands)
basepython
is now a list, the first successfully detected python will be used to generate python environmentInternal
Python 3.5+
only with type annotated code.py
my good old friend, usepathlib
alwaysINFO
Sample new cache:
TODO
Validate rewrite
The idea is the above code would be equal with writing the below line and appending fix_lint to the envlist, so we can have shorter configurations:
tox-travis
+tox-pipenv
+tox-conda
+tox-pyenv
+tox-current-env
)@asottile @obestwalter let me know your concerns/requests, thanks! I'm also inviting the communities thoughts, cc @ssbarnea.
The text was updated successfully, but these errors were encountered: