`limits` is a transitive dependency (from slowapi) that currently
depends on `packaging>=21,<25` .
Now that `packaging` 25.0 was released, uv prefers to upgrade `packaging`
and downgrade `limits` to 2.4.0 (which didn't depend on `packaging`).
This will be fixed by https://github.com/alisaifee/limits/pull/274 ,
but pinning `limits` to >=2.5.0 will prevent similar issues in the future
as well.
Imported e.g. in `lib/galaxy/tools/expressions/evaluation.py` .
No actual change to requirements files as it's already included as a
dependency of cwltool.
for lightning-fast Python dependency updates.
To update all dependencies (as done by the GitHub action):
$ make update-dependencies
To update only one package:
./lib/galaxy/dependencies/update.sh -p <PKG>
The fimo tool was removed from `tool_conf.xml.sample` in 2014
(commit fa11d10c8b) and migrated to the
tools-iuc repository since 2015
( https://github.com/galaxyproject/tools-iuc/pull/499 ).
This bundled version doesn't probably work any more and is not
available on the UseGalaxy.* servers.
This allows us to remove `galaxy-sequence-utils` from the project
dependencies, since the other 2 tools
(`lib/galaxy/datatypes/converters/vcf_to_interval_index_converter.xml`
and `tools/maf/vcf_to_maf_customtrack.xml`) correctly specify it as a
requirement.
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
It was pinned to `^2023.1.0` in commit
a7ffd291af , then unpinned in commit
076fff8302 .
Unfortunately, if s3fs is not pinned to at least `>=0.5.0`, poetry
downgrades it to 0.4.2 when aiobotocore is not compatible with the
latest botocore version.
Also:
- Add missing `graphene` and `graphql-core` dependencies to
`pyproject.toml` (already installed as other dependencies' deps,
but explicitly imported by ToolShed code).
- Move `test_tool_validation.py` unit tests to the galaxy-tool-shed
package.
With the merge of https://github.com/galaxyproject/galaxy/pull/17156 ,
`rucio-clients` was listed as a conditional requirement, but it was actually
installed almost everywhere (the only condition was
`sys.version_info >= (3, 9)`), independently of its use for an object store.
This also installs `rucio-clients` as a dev dependency, otherwise the
`test/integration/objectstore/test_rucio_objectstore.py` integration tests
would fail. Pinned dependencies are updated in the next commit.
Fix https://github.com/galaxyproject/galaxy/issues/17695 .
The new 1.0.0 version of pytest-celery will move towards a Docker-based
approach for smoke and production-like testing, bringing in a number of
dependencies that we don't currently need.
Since the pre-1.0.0 version of pytest-celery was just a shim for
``celery.contrib.pytest``, we can simply load the latter for API,
integration and Selenium tests.