-
Notifications
You must be signed in to change notification settings - Fork 367
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
ci: refactor julia/r/conda tests - now ~25 min instead of ~50 min #1188
Conversation
7573682
to
91631b8
Compare
4743c24
to
51e3b8e
Compare
To help with review would you mind explaining the overall thoughts behind your changes? For example, what's your thinking behind bumping versions instead of leaving them as they are? I think we should keep intermediate versions, for example an old bug was included installing the wrong version of R when 4.0 was requested #1077 so this should be kept as a regression test. |
4adf61f
to
fde068b
Compare
8c8b7e2
to
31e7839
Compare
4ef5718
to
dabd5b7
Compare
With this commit, we combine testing the default python version installation into the default R version installation test.
fa68da7
to
be675e6
Compare
be675e6
to
a6af244
Compare
Sorry for the noise in this PR @manics @yuvipanda, with a lot of force pushes and too early transition from a draft PR to a ready for review PR. At this point, it is ready for review though! |
Thanks for the additional description- it makes sense, though I'm still struggling to review the actual changes. I'm also concerned we're going to loose some of the information on the purposes of individual tests, which is a problem for any future refactoring. I noticed you added a few READMEs in some tests, what do you think about adding READMEs for each group of tests instead/as well, e.g.
where each file describes how the subtests in that directory combines multiple factors, such that they cover all combinations? |
I misunderstood extra-args.yaml to be a file that was recognized by repo2docker's CLI, but in reality it was just a file recognized by the repo2docker test suite. Following that, I renamed this testing specific file to test-extra-args.yaml to help others avoid making that mistake and added comments to clarify that. This commit also gathers the conda buildpacks separate readme files into a single readme file.
I'm sorry about this, if you have a suggestion on what I can do to help let me know. I have considered breaking apart this refactoring PR into pieces such as one for the conda buildpacks tests, and one for julia, and one for R. Doing that though would make common aspects need to be discussed in separate PRs, such as the README suggestion etc and I figure it wouldn't be very helpful.
Having worked with these files many hours now, I'm quite confident this is an improvement with regards to future refactoring work. The git history will be obfuscated by this refactor, but the documentation surrounding the tests will be accurate and updated. I've been surprised several times by un
💯 implemented now! |
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.
Thanks for the additional README, it's a big help!
I'm happy with this now, @yuvipanda what do you think?
- Test setup of a R 3.6 environment by specifying `r-base=3.6` in | ||
`environment.yml`. | ||
|
||
- Test use of repo2docker with the `--target-repo-dir` flag. |
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.
Now that we're combining buildpack test cases I think we should avoid mixing in command line test cases too, as it adds another dimension. This can be left for a follow-up PR though.
LET'S GOOOOO! THANK YOU SO MUCH @manics AND @consideRatio! |
let it be known that I tried to upper case your usernames too ^ but github autocorrected them |
Previously the CI system took ~50 minutes. The tests in the folders
tests/conda
,tests/julia
, andtests/r
all took longer than 25 minutes but are now reduced to about ~25 minutes or less.There has been very little compromise on existing test coverage, and new test coverage has been gained against new language versions etc.
Change description
Test coverage is retained well I think, even expanded towards modern versions. Overall the following principles guided what I retained.
See Default Julia version for the REQUIRE buildpack is 0.6.4, not the latest version #1192
See Default Julia version for the Project.toml buildpack is the latest, but the logic indicates it was supposed to be 1.6.x #1190
Test changes
Changes to
tests/conda
testspy35-binder-dir
binder-dir
py37
py310-requirements-file
py38
requirements
py2
simple-py2
r-postbuild-file
r-unspecified
default-env
simple
r4.0
r4.1
default-env
), merges tests of modern R versions into the latest version (r4.0
,r4.1
), merges tests of the default Python version (simple
)r3.6-target-repo-dir-flag
repo-path
r3.6
channel-dep
Changes to
tests/r
testsr3.6-mran
r3.6
r4.0-mran
mran
,r4.0
r4.0-rspm
r4.0-rspm
,r4.1
r4.0
andr4.1
,r-rspm-apt-file
apt
,simple
r-rspm-description-file
description-file
Changes to
tests/julia
testsproject
julia_version-default
project-1.0.2
julia_version-1.0.2
require
julialegacy_version-0.6.3
require-1-requirements-file
pyplot-requirements
julialegacy_version-1
julialegacy_version-1.0
julialegacy_version-1.1
Before
After