Skip to content

Move 32bit CI to weekly - #15018

Merged
pllim merged 4 commits into
astropy:mainfrom
WilliamJamieson:feature/move_32_bit
Jul 14, 2023
Merged

pllim merged 4 commits into
astropy:mainfrom
WilliamJamieson:feature/move_32_bit

Conversation

@WilliamJamieson

@WilliamJamieson WilliamJamieson commented Jul 3, 2023 •

Copy link
Copy Markdown
Contributor

Description

I believe arm7 is the arch of some of the 32bit native raspberry pi computers. So it should be a good test for continued 32 bit support. This pull request adds it and a test for 32bit support to the weekly cron.

closes #15007

@WilliamJamieson WilliamJamieson added the Extra CI Run cron CI as part of PR label Jul 3, 2023
@github-actions

github-actions Bot commented Jul 3, 2023

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Astropy! 🌌 This checklist is meant to remind the package maintainers who will review this pull request of some common things to look for.

  • Do the proposed changes actually accomplish desired goals?
  • Do the proposed changes follow the Astropy coding guidelines?
  • Are tests added/updated as required? If so, do they follow the Astropy testing guidelines?
  • Are docs added/updated as required? If so, do they follow the Astropy documentation guidelines?
  • Is rebase and/or squash necessary? If so, please provide the author with appropriate instructions. Also see "When to rebase and squash commits".
  • Did the CI pass? If no, are the failures related? If you need to run daily and weekly cron jobs as part of the PR, please apply the "Extra CI" label. Codestyle issues can be fixed by the bot.
  • Is a change log needed? If yes, did the change log check pass? If no, add the "no-changelog-entry-needed" label. If this is a manual backport, use the "skip-changelog-checks" label unless special changelog handling is necessary.
  • Is this a big PR that makes a "What's new?" entry worthwhile and if so, is (1) a "what's new" entry included in this PR and (2) the "whatsnew-needed" label applied?
  • Is a milestone set? Milestone must be set but we cannot check for it on Actions; do not let the green checkmark fool you.
  • At the time of adding the milestone, if the milestone set requires a backport to release branch(es), apply the appropriate "backport-X.Y.x" label(s) before merge.

@github-actions

github-actions Bot commented Jul 3, 2023

Copy link
Copy Markdown
Contributor

👋 Thank you for your draft pull request! Do you know that you can use [ci skip] or [skip ci] in your commit messages to skip running continuous integration tests until you are ready?

@pllim

pllim commented Jul 3, 2023

Copy link
Copy Markdown
Member

We also have to put the double test somewhere. It is currently piggybacking on the old 32-bit job. And with this PR, we'll also have to remove the old 32-bit job. And since the old job is a required job, I'll have to update branch protection rule after merge.

@WilliamJamieson
WilliamJamieson force-pushed the feature/move_32_bit branch 2 times, most recently from 262660f to d5e1124 Compare July 3, 2023 19:37
@WilliamJamieson
WilliamJamieson marked this pull request as ready for review July 3, 2023 20:35
Comment thread .github/workflows/ci_cron_weekly.yml Outdated
Comment on lines +149 to +150
uname -a
getconf LONG_BIT

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These only exist to so we can confirm that some of the jobs are 32 bit.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your comment above is a little incomplete, so I am trying to understand more. Do you mean that getconf LONG_BIT would just crash if it is not a true 32-bit machine? Or is it suppose to print something out to the log?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This prints out how many bits a floating point is by default in the architecture. It should return 32, which it does.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2023-07-07T16:50:23.8975207Z   run: uname -a
getconf LONG_BIT
python3 -m venv --system-site-packages tests
source tests/bin/activate
ASTROPY_USE_SYSTEM_ALL=1 pip3 install -e .[test]
python3 -m pytest

I don't see any number printed out here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anyway, we can make it print out LONG_BIT=32 instead of just 32? It is really hard to find.

Comment thread tox.ini Outdated
Comment on lines +117 to +120
!cov: pytest --pyargs astropy {toxinidir}/docs {env:MPLFLAGS} {posargs}
cov: pytest --pyargs astropy {toxinidir}/docs {env:MPLFLAGS} --cov astropy --cov-config={toxinidir}/pyproject.toml --cov-report xml:{toxinidir}/coverage.xml {posargs}

double: python -c 'import sys; from astropy import test; test(); sys.exit(test())'
double: pytest --pyargs astropy {toxinidir}/docs {env:MPLFLAGS} {posargs}

@WilliamJamieson WilliamJamieson Jul 3, 2023 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saimn and @astrofrog will this work for the double tests? It just runs all of the tests twice in the same tox environment.

@astrofrog

Copy link
Copy Markdown
Member

The double test should not also be the parallel test, because the parallel test actually isolates tests into subprocesses whereas the double test is checking for changes in the global state which won't happen if the tests run in subprocesses.

Comment thread .github/workflows/ci_workflows.yml Resolved
@WilliamJamieson WilliamJamieson changed the title TST: Move 32bit CI to weekly Move 32bit CI to weekly Jul 5, 2023
@WilliamJamieson
WilliamJamieson force-pushed the feature/move_32_bit branch 2 times, most recently from e025f71 to 4268234 Compare July 7, 2023 16:49
@larrybradley

Copy link
Copy Markdown
Member

It appears that there are no numpy 1.22 packages for these architectures for ubuntu-latest (22.04). They only go up to numpy 1.21.5 (https://packages.ubuntu.com/search?keywords=python-numpy). And I don't see arm7 as a supported ubuntu architecture.

A similar workflow failed for me for photutils (numpy 1.22+). It was trying to build numpy from source (e.g., https://github.com/astropy/photutils/actions/runs/5467812504/jobs/9954604026).

@WilliamJamieson

Copy link
Copy Markdown
Contributor Author

@pllim

pllim commented Jul 10, 2023 •

Copy link
Copy Markdown
Member

I think what @larrybradley was trying to say is that we cannot test any of those exotic archs no more if we drop numpy 1.21 now, unless there is a way to ask them to provide numpy 1.22 or later.

@larrybradley

Copy link
Copy Markdown
Member

@WilliamJamieson Those jobs are using numpy 1.21.5 (e.g., https://github.com/astropy/astropy/actions/runs/5488698114/jobs/10001902806#step:3:813). This PR must have been created before requiring numpy >= 1.22.

@WilliamJamieson
WilliamJamieson force-pushed the feature/move_32_bit branch 2 times, most recently from 47996a8 to 8558a28 Compare July 10, 2023 16:11
@WilliamJamieson

WilliamJamieson commented Jul 10, 2023 •

Copy link
Copy Markdown
Contributor Author

@WilliamJamieson Those jobs are using numpy 1.21.5 (e.g., astropy/astropy/actions/runs/5488698114/jobs/10001902806#step:3:813). This PR must have been created before requiring numpy >= 1.22.

See my update, 8558a28, simply switching to the rolling ubuntu release solves this issue:

https://github.com/astropy/astropy/actions/runs/5510400099/jobs/10044557358#step:3:1156

with:
arch: ${{ matrix.arch }}
distro: ubuntu_latest
distro: ubuntu_rolling

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is rolling too unstable? Will we see breakage that we cannot do anything about?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its the only one available by our workflow which has numpy 1.22+ pre-built.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So theoretically, we can bump it down to latest again when the distro people catch up?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not like we have a choice here... but we might have to rethink if this proves to be too unstable. Unless @olebole has a better idea?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use the base_image option and pick a docker image from docker hub that works. I think the debian bookworm image should work.

@WilliamJamieson WilliamJamieson Jul 10, 2023 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note rolling is not the unstable devel release. rolling is the latest release of Ubuntu 23.04 lunar. Its the rolling pulled from Dockerhub: https://hub.docker.com/_/ubuntu

@WilliamJamieson
WilliamJamieson force-pushed the feature/move_32_bit branch 3 times, most recently from 984a2e2 to 1b1925b Compare July 13, 2023 18:45

@astrofrog astrofrog left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks!

arm7 is the arch of some of the 32bit native raspberry pi computers.
So it should be a good test for continued 32 bit support

run: |
uname -a
echo "LONG_BIT="$(getconf LONG_BIT)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pllim This should return

LONG_BIT=32

or

LONG_BIT=64

Does that seem easier to pick out in the log?

@WilliamJamieson
WilliamJamieson requested a review from pllim July 13, 2023 22:21

@pllim pllim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@pllim
pllim merged commit 98b399d into astropy:main Jul 14, 2023
@pllim pllim added this to the v6.0 milestone Jul 14, 2023
@pllim

pllim commented Jul 14, 2023

Copy link
Copy Markdown
Member

I updated the branch protection rules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Should astropy move 32bit CI to weekly.

4 participants