Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
How Do I …
This section contains a number of smaller topics with links and examples meant to provide relatively concrete answers for specific Galaxy development scenarios.
… interact with the Galaxy database interactively?
This can be done with either IPython or a plain Python console, depending on your preferences:
python -i scripts/db_shell.py
… build Galaxy Javascript frontend client?
We have added a Makefile which will let you do this. You can simply run:
make client
Please see the Makefile itself for details and other options. There is also a readme at
client/README.md.
… rebuild the Galaxy configuration schema?
Galaxy and the Tool Shed each have a schema that is used to validate their
configuration files. These schemas are defined in
lib/galaxy/config/schemas/config_schema.yml (for galaxy.yml) and
lib/galaxy/config/schemas/tool_shed_config_schema.yml (for tool_shed.yml).
If you need to add or modify a configuration option, edit the relevant schema
file directly instead of the corresponding
lib/galaxy/config/sample/*.yml.sample file, then run the following
command from Galaxy’s root directory to regenerate the sample YAML files
(and, for Galaxy, the RST documentation and type stubs):
make config-rebuild
Then add the regenerated files to your commit.
… add or update a Galaxy Python dependency?
Galaxy’s Python dependencies are declared in the root pyproject.toml
file. Each subdirectory of packages/ also corresponds to a package
published on PyPI (e.g. packages/util/ is galaxy-util) and has its
own pyproject.toml. If a dependency is needed by the code of one or more
of these packages, also add it to the dependencies list of the relevant
packages/<package>/pyproject.toml file(s).
After editing the root pyproject.toml, run the following command from
Galaxy’s root directory to update the pinned requirements files under
lib/galaxy/dependencies/ (this also updates uv.lock, which is not
tracked in the repository):
make update-dependencies
Then add the updated pyproject.toml and pinned requirements files to
your commit.