manodeep / Corrfunc

⚡️⚡️⚡️Blazing fast correlation functions on the CPU.
https://corrfunc.readthedocs.io
MIT License
163 stars 50 forks source link

Adding GitHub Actions for additional tests #220

Closed manodeep closed 4 years ago

manodeep commented 4 years ago

@lgarrison I added the tests with GitHub actions. However, I could not get clang working on linux, or gcc working on osx - so I had to disable those tests. Plus, I fixed some warnings that were being raised about uninitialised values and a minor cpython bug that was resulting in an improper function pointer cast.

Please let me know if you are okay with merging these in, or if you have ideas on how to fix the clang-on-linux/gcc-on-osx builds. (We can go up to 256 jobs in the matrix)

lgarrison commented 4 years ago

Cool, thanks! Do you think we need both Ubuntu versions? Just trying to think of ways to reduce the number of tests, I think too many can be cluttered and harder to maintain.

I think having an old and new Numpy version makes sense, but do you think we should test 1.18 (the latest) instead of 1.16?

Should we add a Python 3.8 test? Or maybe we should deprecate Python 2.7 support first. We're 6 months past end-of-life!

manodeep commented 4 years ago

The plan for dropping py2.7 was towards the end of 2020, if I recall correctly. What I would like to do is add in a DeprecationWarning, and then remove support in a later v2.x release.

We can reduce the number of combinations that are tested, but I think we should test of a few different platforms. For instance, perhaps we should add in 16.04 but only test with gcc-7, py3.5, and numpy1.14. but then reduce the number of tests with 18.04 (may be remove a later gcc-version) and 20.04 (may be remove an earlier gcc-version).

I had py3.8 in the matrix too but had to drop it for (forget-what) some reason. Should I put py3.8 back in but only test in one config - say for a test config with ubuntu20.04, gcc-9, py3.8, numpy1.18? That would cover the latest gcc, python and numpy

lgarrison commented 4 years ago

Thanks, I think that sounds like a reasonable way to go with the Ubuntu versions and Python 3.8.

manodeep commented 4 years ago

Noting examples of GitHub Actions yml files that we might need to consult in the future -

  1. CI in doctest for a range of os-compiler options
  2. CI in eigen-qld for adding clang-formatting checks
manodeep commented 4 years ago

Codacy Here is an overview of what got changed by this pull request:


Complexity increasing per file
==============================
- setup.py  1

See the complete overview on Codacy

manodeep commented 4 years ago

@lgarrison Will you please take a look again? I am done with the updates...

I tried to add in a separate CI for INTEGRATION_TESTS but those (unsurprisingly) timing out. So we will need a different solution (for instance, run each pair-counter as a separate stage), abandoning for now...

lgarrison commented 4 years ago

Looks good! So does this supersede Travis, or is the plan to use both?

manodeep commented 4 years ago

We should just use both - no harm in extra checks