Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Python 3.13 to CI #3646

Merged
merged 16 commits into from
Jan 8, 2025
Merged

Add Python 3.13 to CI #3646

merged 16 commits into from
Jan 8, 2025

Conversation

benclifford
Copy link
Collaborator

Type of change

  • Code maintenance/cleanup

@benclifford
Copy link
Collaborator Author

This needs a radical pilot upgrade, which doesn't work immediately in my dev environment. If I change to radical pilot and utils 1.83, and run pytest parsl/tests/ --config parsl/tests/configs/local_radical.py --log-cli-level=DEBUG, I get a hang and the below stack trace. I haven't dug in any deeper.

$ cat pmgr_launching.0000.err 
Traceback (most recent call last):
  File "/home/benc/parsl/virtualenv-3.12/bin/radical-pilot-component", line 147, in <module>
    ru.daemonize(main=main, args=[sid, reg_addr, uid, evt],
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/utils/daemon.py", line 114, in daemonize
    else           : main(*args)
                     ^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/bin/radical-pilot-component", line 64, in main
    wrapped_main(sid, reg_addr, uid, log, prof, evt)
  File "/home/benc/parsl/virtualenv-3.12/bin/radical-pilot-component", line 92, in wrapped_main
    comp = rp.utils.BaseComponent.create(c_cfg, session)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/pilot/utils/component.py", line 301, in create
    return comp[cfg.kind].create(cfg, session)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/pilot/pmgr/launching/base.py", line 167, in create
    return cls(cfg, session)
           ^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/pilot/pmgr/launching/base.py", line 135, in __init__
    from .saga  import PilotLauncherSAGA
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/pilot/pmgr/launching/saga.py", line 15, in <module>
    import radical.saga
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/saga/__init__.py", line 10, in <module>
    from .version    import *
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/radical/saga/version.py", line 9, in <module>
    version_short, version_detail, version_base, version_branch, \
ValueError: not enough values to unpack (expected 6, got 5)

@AymenFJA @andre-merzky

@andre-merzky
Copy link

Hi Ben - you would also need to update radical.saga. Or, probably better, you could uninstall radical.saga and the RP dependency would pull psij-python instead as batch API, which is where we are heading to generally.

github-merge-queue bot pushed a commit that referenced this pull request Dec 17, 2024
This brings in fixes for a few issues that are fixed on the radical side
of things:

#3722 - a race condition on task completion
#3708 - cleaner shutdown handling as part of #3397
#3646 - Python 3.13 support

# Changed Behaviour

whatever has changed in radical-pilot

# Fixes

#3722

## Type of change

- Bug fix
@benclifford
Copy link
Collaborator Author

after radical upgrade in #3725, the next block is in parsl-visualize, with a tangle between pandas (which needs upgrading to compile on Python 3.13) ... which loosens the numpy bounds ... which breaks networkx ... and also the pandas sqlalchemy interface has changed (now it cannot take an engine and needs a connection object? https://stackoverflow.com/questions/38332787/pandas-to-sql-to-sqlite-returns-engine-object-has-no-attribute-cursor)

@benclifford
Copy link
Collaborator Author

possibly there should be a monitoring upgrade to sqlalchemy 2 -- I did a port before so that LSST people could use that even though the in-tree dependency spec is for 1.x, and one of the above pandas problems is due to using sqlalchemy 1.x

@benclifford
Copy link
Collaborator Author

networkx is fixed for numpy 2 in b0c380499d97489369d7eabbc116964de84859b9 in the numpy repo

$ git tag --contains b0c380499d97489369d7eabbc116964de84859b9
networkx-3.2
networkx-3.2.1
networkx-3.2rc0
networkx-3.3
networkx-3.3rc0
networkx-3.4
networkx-3.4.1
networkx-3.4.2
networkx-3.4rc0

benclifford added a commit that referenced this pull request Jan 5, 2025
This is a piece of PR #3646 to support Python 3.13

networkx 3.2 is the first version to support numpy 2.
Later versions do not support Python 3.9.
github-merge-queue bot pushed a commit that referenced this pull request Jan 6, 2025
This is a piece of PR #3646 to support Python 3.13

networkx 3.2 is the first version to support numpy 2. Later versions do
not support Python 3.9.

# Changed Behaviour

This is a package upgrade that behaves the same in my testing

## Type of change

- Code maintenance/cleanup
github-merge-queue bot pushed a commit that referenced this pull request Jan 6, 2025
This is part of supporting Python 3.13 (PR #3646), as a prereq to
upgrading pandas.

# Changed Behaviour

Development environments (which have the requirements in
`test-requirements.txt` installed) will break and need `pip uninstall
sqlalchemy2-stubs` - sqlalchemy packaging does not express a
negative/removal requirement against that transitional package.

non-parsl user code which happens to use the parsl-installed sqlalchemy
might break - for example, see API changes in the test suite in this PR

## Type of change

- Code maintenance/cleanup
github-merge-queue bot pushed a commit that referenced this pull request Jan 7, 2025
# Description
This is part of supporting Python 3.13 (PR #3646). The previous pandas
constraints cannot install on Python 3.13.

# Changed Behaviour

none

## Type of change

- Code maintenance/cleanup
@benclifford benclifford marked this pull request as ready for review January 8, 2025 14:14
@benclifford benclifford requested a review from khk-globus January 8, 2025 14:14
Copy link
Collaborator

@khk-globus khk-globus left a comment

Choose a reason for hiding this comment

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

I love when PRs get to be this simple. Assuming tests pass, approved. 👏

@benclifford benclifford enabled auto-merge January 8, 2025 16:32
@benclifford benclifford added this pull request to the merge queue Jan 8, 2025
Merged via the queue into master with commit 5aac648 Jan 8, 2025
8 checks passed
@benclifford benclifford deleted the benc-python3.13 branch January 8, 2025 23:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants