Unverified Commit 88d38499 authored by Nicola Soranzo's avatar Nicola Soranzo
Browse files

Pin pydantic to >=2.7.4

Pydantic <2.7.4 is broken on Python>=3.12.4 , see
https://github.com/pydantic/pydantic/issues/9609 .
Fixed upstream in https://github.com/pydantic/pydantic/pull/9639 .

Fix the following traceback in startup test on Python 3.12:

```
Traceback (most recent call last):
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/bin/galaxyctl", line 10, in <module>
    sys.exit(galaxyctl())
             ^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/click/core.py", line 1682, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/click/core.py", line 1729, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/gravity/cli.py", line 59, in get_command
    return name_to_command(name)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/gravity/cli.py", line 45, in name_to_command
    mod = __import__(mod_name, None, None, ["cli"])
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/gravity/commands/cmd_stop.py", line 4, in <module>
    from gravity import process_manager
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/gravity/process_manager/__init__.py", line 14, in <module>
    from gravity.config_manager import ConfigManager
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/gravity/config_manager.py", line 18, in <module>
    from gravity.state import ConfigFile, service_for_service_type
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/gravity/state.py", line 42, in <module>
    class ConfigFile(BaseModel):
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/pydantic/v1/main.py", line 286, in __new__
    cls.__try_update_forward_refs__()
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/pydantic/v1/main.py", line 807, in __try_update_forward_refs__
    update_model_forward_refs(cls, cls.__fields__.values(), cls.__config__.json_encoders, localns, (NameError,))
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/pydantic/v1/typing.py", line 554, in update_model_forward_refs
    update_field_forward_refs(f, globalns=globalns, localns=localns)
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/pydantic/v1/typing.py", line 520, in update_field_forward_refs
    field.type_ = evaluate_forwardref(field.type_, globalns, localns or None)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/galaxy/galaxy/galaxy root/.venv/lib/python3.12/site-packages/pydantic/v1/typing.py", line 66, in evaluate_forwardref
    return cast(Any, type_)._evaluate(globalns, localns, set())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'
```

Example: https://github.com/galaxyproject/galaxy/actions/runs/9581802216/job/26419972297
parent 08d42ea2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -133,10 +133,10 @@ psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.13"
pulsar-galaxy-lib==0.15.6 ; python_version >= "3.8" and python_version < "3.13"
pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13"
pycryptodome==3.20.0 ; python_version >= "3.8" and python_version < "3.13"
pydantic-core==2.18.2 ; python_version >= "3.8" and python_version < "3.13"
pydantic-core==2.18.4 ; python_version >= "3.8" and python_version < "3.13"
pydantic-tes==0.1.5 ; python_version >= "3.8" and python_version < "3.13"
pydantic==2.7.1 ; python_version >= "3.8" and python_version < "3.13"
pydantic[email]==2.7.1 ; python_version >= "3.8" and python_version < "3.13"
pydantic==2.7.4 ; python_version >= "3.8" and python_version < "3.13"
pydantic[email]==2.7.4 ; python_version >= "3.8" and python_version < "3.13"
pydot==2.0.0 ; python_version >= "3.8" and python_version < "3.13"
pyeventsystem==0.1.0 ; python_version >= "3.8" and python_version < "3.13"
pyfaidx==0.8.1.1 ; python_version >= "3.8" and python_version < "3.13"
+2 −2
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ mypy-boto3-s3==1.34.105 ; python_version >= "3.8" and python_version < "3.13"
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "3.13"
mypy==1.10.0 ; python_version >= "3.8" and python_version < "3.13"
pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13" and platform_python_implementation != "PyPy"
pydantic-core==2.18.2 ; python_version >= "3.8" and python_version < "3.13"
pydantic==2.7.1 ; python_version >= "3.8" and python_version < "3.13"
pydantic-core==2.18.4 ; python_version >= "3.8" and python_version < "3.13"
pydantic==2.7.4 ; python_version >= "3.8" and python_version < "3.13"
tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.11"
types-awscrt==0.20.9 ; python_version >= "3.8" and python_version < "3.13"
types-bleach==6.1.0.20240331 ; python_version >= "3.8" and python_version < "3.13"
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ install_requires =
    paramiko!=2.9.0,!=2.9.1
    pebble
    pulsar-galaxy-lib>=0.15.0.dev0
    pydantic>=2,!=2.6.0,!=2.6.1
    pydantic>=2.7.4
    pysam>=0.21
    PyJWT
    PyYAML
+1 −1
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ install_requires =
    numpy
    parsley
    pycryptodome
    pydantic[email]>=2,!=2.6.0,!=2.6.1
    pydantic[email]>=2.7.4
    pylibmagic
    python-magic
    pysam>=0.21
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ version = 23.2.dev0
include_package_data = True
install_requires =
    galaxy-util
    pydantic[email]>=2,!=2.6.0,!=2.6.1
    pydantic[email]>=2.7.4
packages = find:
python_requires = >=3.8

Loading