-
Notifications
You must be signed in to change notification settings - Fork 48
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
Update matrix os & python-version of CI workflow #263
Conversation
Codecov Report
@@ Coverage Diff @@
## master #263 +/- ##
==========================================
- Coverage 95.64% 95.62% -0.02%
==========================================
Files 74 74
Lines 8214 8214
Branches 1068 1068
==========================================
- Hits 7856 7855 -1
- Misses 164 165 +1
Partials 194 194
Continue to review full report at Codecov.
|
The tests on Windows don't work yet because I used bash scripts for most commands, while windows uses Powershell by default. I'll try a simple fix. We may run into the same issue when subprocesses are launched, which require bash instead of pwsh. I did not include the other python version on Mac because it seemed redundant. If there is some added value, I wouldn't mind taking all combinations. @FarnazH Would we be fine with dropping support for Python 3.6? I would not mind at all. It would allow is to strip away some ugly imports. |
That helped somewhat. As expected, subshells still default to powershell, while bash assumed. There also seems to be a caching issue, but I'm not sure why that happens. |
This will require a bit more work on other repositories (Roberto mainly) to work, but I see how it can be fixed relatively easily. The main remaining issue is the usage of forward slashes in some paths. Most of these should be easy to fix. We probably have to disable caching if we want to test on all combinations of OSes and Python versions. I'm fine with that. Caching resulted in a small speedup for the venv test. It mainly saves time for testing in conda, which is only done on the main branch after merging. I'll revisit this when external issues are resolved. |
If we need to use |
I get the impression WSL is gaining widespread adoption among Windows users who what to do sth unix-y, making native support for Windows less relevant. @FanwangM To what extent is it useful to use WSL in GitHub Actions? As far as I understand, WSL is just a way to run Ubuntu in Windows. That would mean testing on Ubuntu is sufficient to guarantee that things work on WSL too? |
WSL is Ubuntu by default but any distribution can be used. That said, I tend to use WSL only when it's required (which is rare nowadays). |
I'm fine with native Windows support as a final ambition. (There are a few hurdles before we'll get there.) I'd like to propose structural changes to make this (and CI and QA in general) a little easier. I've been testing new development tools recently and was pleasantly surprised by how things have evolved in the last few years and months. Most of the things I felt were missing (back in the days when I wrote Roberto and Cardboardlint) have become available in fairly standard tools nowadays. Just to show this with a practical example, I've reorganized the denspart repository with the following tools:
|
I'm 100% in favor of using these new tools for projects going forward. It may help with the "bus factor" a bit too. If you are looking for a package under (very) rapid development to test out, grid is going fast right now, thanks to @Ali-Tehrani and @FarnazH . If you write very detailed instructions on how to set things up, I can try to set it up myself too, just to make sure it's not too complicated. The other thing to think about is whether we should make a QC-Devs template repo that we use when we start new repositories, which would have some of this semi-set-up. |
Sounds good. To make the switch, it's good to have all lingering branches and pull requests merged, because some changes can be invasive and cause merge conflicts with unmerged changes. I don't have a clear list of instructions at this stage. These depend a bit on the starting point. For grid, there would be fewer changes required than for IOData. (I'll add a few items to the list above, to have at least something more detailed.) A template repository would make sense. The following could be a source of inspiration, but is also a bit dated and contains things less relevant to us: cookiecutter-pyproject. In general, the cookiecutter is a good, generic and independent tool for building templates. I've used it for courses and now also for manuscripts. |
The CI workflow's matrix is updated to test all various versions of Python for various operating systems (including windows). Only a subset of these combinations was used before. Is this useful @tovrstra?
Now I see all the Window's tests failing. Does the
ci.yml
need to be updated?