-
Notifications
You must be signed in to change notification settings - Fork 7k
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
add Windows and macOS CI jobs for prototype tests #5914
Conversation
This surfaces the errors reported in #5801 (comment) and that will be fixed by #5912: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I briefly checked the jobs and seem to work.
The failing test is unrelated and resolved on main. I think we can merge this.
run: pip install --progress-bar=off --no-build-isolation --editable . | ||
|
||
- name: Install other prototype dependencies | ||
run: pip install --progress-bar=off scipy pycocotools h5py iopath |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non-blocking Nit: The fact that we have to add the dependency definition in yet another place is far from ideal. We should look into options to centralize them. Not sure how easy this is to achieve across pip and conda.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, conda
vs. pip
will be a problem. Otherwise I'll tackle this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well having them in 2 places is still better than having them in 10. So even if we need 2 different approaches, it's still worth investigating.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't remember the details but I think scikit-learn maintains its dependencies in a centralized place https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/_min_dependencies.py. We could take inspiration from that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll open an issue with all our requirements to discuss what would be the best way to address this.
@pmeier can you add caching installed deps to speed up tests when re-run |
Yup, can do. Still, since we can only cache third-party dependencies other than PyTorch core, we will shave off very little. The most time is spent installing PyTorch, building torchvision and running the tests. |
You can cache pytorch with a daily key and thus drop the cache every day and thus reruning tests during the same day will be faster. Yes, installing pytorch line takes 1m30 (on windows), maybe we could reduce it to 15-20 sec.. |
Summary: * add Windows and macOS CI jobs for prototype tests * fix CircleCI config * cleanup * use 3.8 as base to surface errors * try using bash explicitly * cleanup * try test reports * debug * disable CircleCI * add write permissions for write * expand permissions * try move permissions on job rather than global * debug * always debug * maximum permissions * cleanup * cleanup Reviewed By: jdsgomes, NicolasHug Differential Revision: D36095670 fbshipit-source-id: 9322974d2b7d4b74ae28e1c45ae749a5b3f69c6b
Closes #5550.
Apart from adding Windows and macOS jobs, this also migrates the prototype tests from CircleCI to Github Actions since CircleCI has no convenient way to setup a Python environment on all three platforms. There is the Python orb, but it is not supported on Windows. Thus, we would need a rather complicated workflow (think current regular unittest setup, but simplified a little) with very little gain.
The prototype tests don't require a GPU or a beefy machine and thus the OSS version of Github Actions is sufficient. As an added benefit, Github Actions is free for OSS projects and thus helps keeping the CI costs down (see #5479).