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

Reduce test matrix #351

Merged
merged 9 commits into from Jan 12, 2020
Merged

Reduce test matrix #351

merged 9 commits into from Jan 12, 2020

Conversation

hugovk
Copy link
Member

@hugovk hugovk commented Oct 9, 2019

Closes #365.

Similar to the reasoning in #182, I'd like to suggest reducing the build matrix.

There are now 76 jobs (only looking at Travis CI), testing 8 Python versions against 4 pytest versions (spanning 3 major pytest releases), 4 xdist versions and 2 Coverage.py versions.

  • Is it really necessary to test against all those old versions?

  • Does pytest-cov need to make promises to support old releases?

  • Do those projects promise to support so many old releases, or just the most recent?

Further, some two dozen of the build jobs are failing, giving less confidence in the CI/tests as a whole.

https://docs.travis-ci.com/user/customizing-the-build/#Build-Matrix says:

All build matrixes are currently limited to a maximum of 200 JOBS for both private and public repositories. If you are on an open-source plan, please remember that Travis CI provides this service free of charge to the community. So please only specify the matrix you actually need.

Python

Now: 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, py, py3

I suggest it's not necessary to test EOL Python versions (3.4): pytest and Coverage.py do not support it. --> Removed in #336.

(Consider also dropping Python 2.7 soon, compare the pytest plan and create a pytest-cov plan.)

pytest

Now: 3.10, 4.6, 5.1, 5.2

I suggest it's not needed to test 3.10 (released Nov 2018) at all.

pytest 4.6 is the last to support Python 2.7 and 3.4, so that is needed whilst they are still needed here.

Only test the latest pytest 5.x, remove 5.1.

xdist

Now: 1.27, 1.29, 1.30

I'd suggest only testing the latest 1.30, but as this is failing the CI I've not included any xdist changes in this PR.

Coverage.py

Now 4.5, 5a

Keep these, it is necessary to test both latest Coverage.py 4.5 and the upcoming Coverage.py 5 due to large changes.

Time improvement

Before After
Travis jobs 76 49
Travis total resource time 7h15m 4h40m
Travis end-to-end time 1h15m 40m
AppVeyor time 2h50m 1h25m

Thank you!

@blueyed
Copy link
Contributor

blueyed commented Nov 22, 2019

@hugovk
Thanks for looking into it - the matrix here is really worth being improved/fixed.

(pytest-dev/pytest#6164 causes 7.5h of build time with 78 jobs.)

It seems like builds are broken currently anyway already for some reason - have you looked into that?

Copy link
Contributor

@blueyed blueyed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've not looked at in detail, but I think it is a good step in general.

@hugovk
Copy link
Member Author

hugovk commented Nov 24, 2019

It seems like builds are broken currently anyway already for some reason - have you looked into that?

I had a cursory look, they're test_dist_not_collocated*, test_dist_subprocess_not_collocated and test_dist_missing_data failures, but it was nothing super obvious to me and they also fail in master so I didn't look into it further. It's also why I didn't reduce the xdist matrix here.

@hugovk
Copy link
Member Author

hugovk commented Nov 25, 2019

Updated .travis.yml by running python ci/bootstrap.py.

The jobs are the same, they're just in a different order.

@ionelmc
Copy link
Member

ionelmc commented Jan 12, 2020

I updated some versions to latest. Will do a rebase soon, looks like something is conflicting.

@ionelmc
Copy link
Member

ionelmc commented Jan 12, 2020

@nicoddemus I can't edit the project on appveyor, can you go in the settings and enable rolling builds? It's taking too long to not have rolling builds on.

@ionelmc ionelmc merged commit b4b9bcc into pytest-dev:master Jan 12, 2020
@hugovk hugovk deleted the rm-pytest3 branch January 12, 2020 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix CI
3 participants