Billingegroup / release-scripts

1 stars 5 forks source link

Implement matrix testing Python 3.10-3.12, ubuntu, windows, macOS(arm64 and intel) #51

Closed bobleesj closed 1 month ago

bobleesj commented 1 month ago

Closes #48

Tested using a fork on diffpy.pdffit2: https://github.com/bobleesj/diffpy.pdffit2/actions/runs/11079705068/job/30789162458?pr=6

Screenshot 2024-09-27 at 9 06 34 PM

macos-14 referes to macOS M1

@sbillinge ready for review

Tieqiong commented 1 month ago

@bobleesj there are several things we might want to change here. 1: headless (xvfb) should only run for linux 2: arm Mac need to install functional packages, and often it's not the latest conda forage main release. (this should go away with a nice conda forge release)

I had a matrix workflow for pdfgui a while ago where I noticed the problems (also see Billingegroup/cookiecutter#109): https://github.com/diffpy/diffpy.pdfgui/actions/runs/10604930935/workflow

One thing that might be helpful when running matrix is to have:

    strategy:
      fail-fast: false
bobleesj commented 1 month ago

Thanks Tieqiong, it seems like an edge case for pdfgui out of all the packages we have.

for release scripts, I think it should be as general as possible, and for pdfgui, we can probably make a separate ci file for matrix test then? we won’t be distributing macOS arm64 (no native built) or Linux (wxpython) on conda forge

Tieqiong commented 1 month ago

Not only for pdfgui. Whenever we need a headless test we want only linux to run xvfb. So let's add that logic in, or we're removing headless.

Also for the pdffit2 installation. I'm not sure but there could be other packages that have it as dependencies?

bobleesj commented 1 month ago

for linux headless, for sure, if you could make a PR for that. Would you also like to make a separate CI for pdfgui ? I don't recall any packages relying on pdffit2 besides pdfgui. @sbillinge maybe can provide insight on this

sbillinge commented 1 month ago

Per convo with Bob, let's wait until we are building wheel files and deplying on pypi and then do it that way.