-
Notifications
You must be signed in to change notification settings - Fork 3
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
Workflow tests #187
Workflow tests #187
Conversation
The tests all pass, but that's because the new ones aren't actually getting run. I expected something like |
Splitting things into different test files didn't have the desired effect -- the entire action is timing out on the first test ( |
A bit more disconcerting to me is that I'm making a PR from a fork, but |
Indeed, I'm quite confused why the workflow here is seeing my PR code and not the main branch code. From the github docs:
Maybe I'm not a "first-time contributor" here and I've just forgotten... |
Nope, just went over to PR's and filtered by myself and this is my only one. ... @jan-janssen I really hope you just snuck in and approved these tests, otherwise my understanding of |
I think since you happen to be a maintainer with write access yourself this might already allow you to run these actions without a approval. Lets test that with a new github account? |
That's what disturbs me; on this particular repo I'm not a maintainer. I also wasn't allow to push a branch directly to the repo, so I don't think I even have write access.
Ah, indeed. And none of the run stuff uses credentials so that all tracks. Thanks for the clarification! The docs state " maintainer with write access may need to approve running workflows on the pull request" (my emphasis); in the settings for another repo I can see there is the option to not require approval, so maybe that's all that's going on here. |
The permissions still have to be set manually, I did this for |
I feel the issues here are related to the ones we see in #162 |
That is a closed pull request with no commentary... could you provide a bit of context? |
I just merged the latest changes from main to see if it solves the issue but it does not. |
As discussed in #210, these are now working. I just merged I'll recombine these into something sensible and polish it up! |
Don't double down on the word "result"
I'm rather confused why this is throwing an error -- line 207 in I briefly thought I had this nailed when I realized I'm using the builtin |
Ahhh, but my local interpreter is 3.11 and these are all running for 3.11 here too. Ok, that's a solid lead. |
I have to go now, but I'll come back to this tomorrow to look at: |
Huh, it looks like concurrent.futures had its own TimeoutError until 3.11? At any rate my very naive fix actually worked for all but mpich on 3.11. That simply timed out. I'll restart it for now, but if it times out again I'll dig into it tomorrow |
The issue with the MacOS tests failing was still related to #191 I restarted the tests a couple of times, but now they are working fine. |
Super. Let me try to track down why it's still not working with the workflows, then I'll merge. Since we test the callback I'm hopeful the problem is purely on the workflow side, but there might be a more complex test case I still need to add here. |
Unsurprisingly, this passed totally fine on my local machine.
This was resolved in #214. This guy should be good to go now. |
Just rerunning now until mac rolls a nat 20 |
@jan-janssen, some of this might be duplicate, e.g. exceptions seem to be tested here, but for now I thought I'd throw all the tests I had at it and we can trim them down as needed -- I figure you'll know better where to look for duplication anyhow #159
Right now I use
PyMPISingleTaskExecutor
, but if you think there's good cause we can switch this over toPyMPIExecutor
.Purpose (copied from the init notes)
pympipool
should be able to handle the case where no elements of the execution can be pickled with the traditionalpickle
module but rather requirecloudpickle
.This is particularly important for compatibility with
pyiron_workflow
, which dynamically defines (unpickleable) all sorts of objects.Currently,
pyiron_workflow
defines its own executor,pyiron_workflow.executors.CloudPickleProcessPool
, which can handle these unpickleable things, but is otherwise very primitive compared topympipool.mpi.executor.PyMPISingleTaskExecutor
.Simply replacing
CloudPickleProcessPool
withPyMPISingleTaskExecutor
in thepyiron_atomistics
tests mostly works OK, and work perfectly when the tests are ported to a notebook, but some tests hang indefinitely on CI and running unittests locally.To debug this, we break the tests up into their individual components (so hanging doesn't stop us from seeing the results of other tests). Once everything is running, these can be re-condensed into a single test file and the entire new tests subdirectory can be deleted.
Unrelated
I finally tracked down why I was unable to push directly to pyiron/atomistics: my remote was set using https, and pycharm wasn't playing nicely with my 2FA. Switching over to ssh (git@...) solves things nicely.
However, here the pyiron admin team still doesn't seem to have admin rights. This confuses me a bit, since over on the new
pyiron_workflow
that "administration" and "pyiron" teams got their rights automatically --maybe this is a (positive) side effect of using the module template? But I would have expected this behaviour from just creating a repo inside the org... Anyhow, just a heads-up that the repo settings should probably be adjusted.