swincas / cookies-n-code

A repo for code review sessions at CAS
http://astronomy.swin.edu.au/
MIT License
31 stars 34 forks source link

Problems with Using Fortran and Github Actions #65

Open abatten opened 3 years ago

abatten commented 3 years ago

So I am having problems testing my Fruitbat package using Github actions because it requires a Fortran compiler.

I am getting this error:

ImportError: cannot import name 'dmdsm' from partially initialized module 'pygedm' (most likely due to a circular import)

You can see the action here: https://github.com/abatten/fruitbat/runs/2621302889?check_suite_focus=true

This is a known issue with MacOS-M1 and Big Sur, but I have also found this issue with Ubuntu. You can see this being discussed in the pygedm package (which is the one that requires a fortran compiler. https://github.com/FRBs/pygedm/issues/8

https://github.com/FRBs/pygedm/issues/7

The question is, does anyone have experience using Fortran compilers with Github actions.

olivercoad commented 3 years ago

In the requirements file is pygedm>=3.0.6, so when it is install it will install the latest version, 3.1.3, which is the problem. I'd say change it to pygedm>=3.0.6,<=3.1.1 to restrict it to compatible versions and open an issue on pygedm because a patch release shouldn't be breaking things (3.1.1 works but 3.1.3 doesn't).

JuanLebronMedina commented 3 years ago

How can I change the version? image

I try this was but I was not able

telegraphic commented 3 years ago

Hi @abatten and @DemonLord13 -- the new version of pygedm avoids this issue by using a cross-compiled C code, instead of the FORTRAN code which was giving this issue. You no longer need gfortran, but you do need to install f2c, via apt-get f2c or conda install -c conda-forge f2c. (Or I guess you could compile f2c!)

There's some more discussion on f2c in the newly-released pygedm paper: https://arxiv.org/abs/2106.15816 if you're interested 🧐