-
Notifications
You must be signed in to change notification settings - Fork 372
2.1.0 finds it suddenly unable to find the tasks directory #934
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
We're seeing the same problem
|
Thanks for the reports! Almost certainly something to do with #919, except all our tests and CI pass (eg: https://app.circleci.com/pipelines/github/pyinvoke/invoke/288/workflows/9aa4cffc-8199-4158-ae94-cf29e1dd761d). I think the crux is:
I can confirm that this breaks in my one (personal) project using a tasks/ directory, but works everywhere else, so it's clearly specific to the package-not-module variant. We do have tests for that though, see eg this test and the package it should be loading. @kuwv you got time to hunt this down? If not I will try to take a look early next week. Anyone afflicted should have no problem temporarily pinning to |
Unfortunately, I'm currently traveling at the moment. Soonest I'll be able get to it might be Wednesday. |
Dug some (but also got sniped by adjacent issue that throws irritating test errors, now fixed). Already kind of cross as I blew half my freakin Saturday getting turned in circles with all this, but the upshot is:
My offhand guess is either:
I will try taking a closer look early next week. |
Moar dig:
So this is pretty weird. Will continue reading importlib's docs and/or seeing if this is somehow a stdlib bug (would be pretty damn weird if so, to exist for so long & in such a critical spot, people do |
|
https://docs.python.org/3/library/importlib.html#approximating-importlib-import-module implies we might be missing a step (or two) here, such as manually manipulating (As long as I don't fuck up and do that manipulation after the I'm a bit salty that this "new improved" importlib API still requires the user to do this, but I guess I also shouldn't fault other folks for "here's our new much more flexible API and also oops you still have to do some manual labor in corner cases that wasn't required before, sorry"... So it looks like @kuwv missed this one spot when adapting that importlib example snippet to Invoke's loader classes. I'm going to put out a bugfix on this basis, assuming all the other tests pass for me afterwards... |
In trying to get the unit test for this breaking properly, I found:
|
Thank you! |
I have a directory /tasks/*.py with a bunch of python files in it. With 2.1.0 I suddenly get the following error:
It works perfectly in 2.0.0. It seems like there was a regression of some kind
The text was updated successfully, but these errors were encountered: