Skip to content

MNT: publish nightly cp313 wheels#16596

Merged
pllim merged 2 commits intoastropy:mainfrom
neutrinoceros:tst/cp313
Aug 14, 2024
Merged

MNT: publish nightly cp313 wheels#16596
pllim merged 2 commits intoastropy:mainfrom
neutrinoceros:tst/cp313

Conversation

@neutrinoceros
Copy link
Contributor

@neutrinoceros neutrinoceros commented Jun 20, 2024

Description

Partly address #16595.

  • By checking this box, the PR author has requested that maintainers do NOT use the "Squash and Merge" button. Maintainers should respect this when possible; however, the final decision is at the discretion of the maintainer that merges the PR.

@github-actions
Copy link
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 instructions for rebase and squash.
  • 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?
  • 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
Copy link
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?

@neutrinoceros neutrinoceros marked this pull request as ready for review June 20, 2024 16:23
@neutrinoceros neutrinoceros requested a review from taldcroft as a code owner June 20, 2024 16:23
@neutrinoceros neutrinoceros marked this pull request as draft June 21, 2024 13:07
@neutrinoceros neutrinoceros marked this pull request as ready for review June 21, 2024 13:39
@pllim pllim added this to the v6.1.2 milestone Jun 21, 2024
@pllim
Copy link
Member

pllim commented Jun 21, 2024

There is code change to support Python 3.13, so I wonder if change log is needed after all.

Also, as mentioned in #16595 , I wonder if it is still too early.

Even if not, maybe put in cron job instead of regular CI?

@neutrinoceros
Copy link
Contributor Author

Daily or weekly, or both ?

@neutrinoceros
Copy link
Contributor Author

Also, code change is only in a test, which as far as I understand isn't considered user facing ? Anyway that was my reasoning for not including a changelog.

env: |
CIBW_BEFORE_BUILD: '${{ ((github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Build all wheels')) && 'pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple setuptools setuptools_scm cython numpy>=0.0.dev0 extension-helpers') || '' }}'
CIBW_BUILD_FRONTEND: '${{ ((github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Build all wheels')) && 'pip; args: --no-build-isolation') || 'build' }}'
CIBW_ENVIRONMENT: '${{ ((github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Build all wheels')) && 'PIP_PRE=1 PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple') || '' }}'
Copy link
Member

Choose a reason for hiding this comment

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

I don't grok the changes here. Why is this needed for Python 3.13?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Building and testing on 3.13 currently requires using numpy nightlies, which is the motivation here. I enable PIP_PRE and Python pre-releases permanently when all wheels are required.

I also aligned the code so it's much easier to compare these long conditions.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll revert this when numpy and PyYaml have compatible wheels on PyPI

@pllim
Copy link
Member

pllim commented Jun 21, 2024

For now, I think weekly is enough?

As for code change, I don't know. Depends on the meaning of the change in tested behavior, and also what else would end up changing before Python 3.13 stable is released. Too early to tell, maybe.

@neutrinoceros neutrinoceros marked this pull request as draft June 22, 2024 10:20
@neutrinoceros neutrinoceros marked this pull request as ready for review June 22, 2024 13:38
@neutrinoceros neutrinoceros marked this pull request as draft June 22, 2024 21:39
@neutrinoceros neutrinoceros changed the title TST: enable continuous testing against CPython 3.13 (failures are allowed) MNT: publish nightly cp313 wheels Jun 23, 2024
@neutrinoceros
Copy link
Contributor Author

I've moved the most fundamental bit (testing weekly) over to #16600. This PR is now focused on nightly wheels and will wait for OpenAstronomy/github-actions-workflows#212

# fallback to a no-op decorator
dec = lambda f: f

@dec
Copy link
Member

Choose a reason for hiding this comment

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

Can we just xfail with condition like https://docs.pytest.org/en/stable/how-to/skipping.html#condition-parameter instead of invoking lambda? Thanks.

Copy link
Member

Choose a reason for hiding this comment

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

We already have global xfail_strict setting.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I didn't remember this was allowed and couldn't load the documentation initially, thanks for reminding me. Done !

@neutrinoceros
Copy link
Contributor Author

@pllim there you go. I also rebased #16659 on top of this one and reverted the xfail decorator there. This should now be ready for review !

@neutrinoceros neutrinoceros marked this pull request as ready for review August 14, 2024 16:59
@neutrinoceros neutrinoceros requested a review from a team as a code owner August 14, 2024 16:59
Comment on lines +54 to +56
CIBW_TEST_SKIP: '*cp313*'
# TODO: remove CIBW_TEST_SKIP for cp313 after
# https://github.com/astropy/astropy/pull/16659 is merged
Copy link
Member

Choose a reason for hiding this comment

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

Do we still need this now that we have xfailed the modeling test?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

whoops, no we don't. I'll remove this in #16659

@pllim pllim added the Build all wheels Run all the wheel builds rather than just a selection label Aug 14, 2024
@pllim pllim modified the milestones: v6.1.3, v7.0.0 Aug 14, 2024
@pllim
Copy link
Member

pllim commented Aug 14, 2024

We don't do nightly wheel from release branch. I don't see why we need to backport for now, especially if we're going to revert this and that later. We can worry about backport branch when we're ready to actually add Python 3.13 to regular CI.

@pllim
Copy link
Member

pllim commented Aug 14, 2024

Looking at CPython schedule: 3.13.0 final: Tuesday, 2024-10-01

Would take a while for upstream packages to do release with stable support for it. Not to mention conda.

And our own v7.0 feature freeze is tentatively 2024-10-25, so we might even be able to get away with not supporting Python 3.13 in the v6.1.x series.

Copy link
Member

@pllim pllim left a comment

Choose a reason for hiding this comment

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

Good enough for now. Thanks!

@pllim

This comment was marked as resolved.

@pllim pllim added Build all wheels Run all the wheel builds rather than just a selection and removed Build all wheels Run all the wheel builds rather than just a selection labels Aug 14, 2024
@pllim pllim merged commit ad86d7e into astropy:main Aug 14, 2024
@pllim
Copy link
Member

pllim commented Aug 14, 2024

@bsipocz , if you don't see the Python 3.13 wheels tomorrow, please open new issue. Thanks!

# run every day at 4am UTC
- cron: '0 4 * * *'

@neutrinoceros neutrinoceros deleted the tst/cp313 branch August 15, 2024 06:09
@neutrinoceros
Copy link
Contributor Author

They're up now https://pypi.anaconda.org/astropy/simple/astropy/
thanks @pllim for polishing this up !

neutrinoceros added a commit to neutrinoceros/astropy that referenced this pull request Aug 19, 2024
pllim added a commit that referenced this pull request Aug 19, 2024
…6596

WHL: revert temporary config for CPython 3.13 from #16596
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build all wheels Run all the wheel builds rather than just a selection no-changelog-entry-needed Python 3.13 testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants