Skip to content
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

Merged
merged 19 commits into from
Apr 28, 2022

Conversation

pmeier
Copy link
Collaborator

@pmeier pmeier commented Apr 28, 2022

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).

@pmeier pmeier marked this pull request as draft April 28, 2022 12:38
@pmeier
Copy link
Collaborator Author

pmeier commented Apr 28, 2022

This surfaces the errors reported in #5801 (comment) and that will be fixed by #5912:

@pmeier pmeier requested review from datumbox and NicolasHug April 28, 2022 13:14
@pmeier pmeier marked this pull request as ready for review April 28, 2022 13:14
Copy link
Contributor

@datumbox datumbox left a 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
Copy link
Contributor

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.

Copy link
Collaborator Author

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.

Copy link
Contributor

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.

Copy link
Member

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

Copy link
Collaborator Author

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 pmeier merged commit 2e9cdd1 into pytorch:main Apr 28, 2022
@pmeier pmeier deleted the prototype-ci branch April 28, 2022 15:24
@vfdev-5
Copy link
Collaborator

vfdev-5 commented May 2, 2022

@pmeier can you add caching installed deps to speed up tests when re-run

@pmeier
Copy link
Collaborator Author

pmeier commented May 2, 2022

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.

@vfdev-5
Copy link
Collaborator

vfdev-5 commented May 2, 2022

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..

facebook-github-bot pushed a commit that referenced this pull request May 6, 2022
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Run prototype datasets test also on Windows and macOS?
5 participants