Galaxy Dependencies Managementο
π View as slides
Learning Questionsο
How does Galaxy manage dependencies?
What is the virtualenv used for?
Where do JavaScript dependencies come from?
Learning Objectivesο
Understand Python dependency management
Understand JavaScript dependency management
Learn about the wheels server
Dependencies - Pythonο
script/common_startup.sh sets up a virtualenv with required dependencies in $GALAXY_ROOT/.venv (or $GALAXY_VIRTUAL_ENV if set).
Check for existing virtual environment, if it doesnβt exist check for
virtualenv.If
virtualenvexists, use it. Otherwise download it as a script and setup a virtual environment using it.. "$GALAXY_VIRTUAL_ENV/bin/activate"Upgrade to latest
pipto allow use of binary wheels.pip install -r requirements.txt --index-url [https://wheels.galaxyproject.org/simple](https://wheels.galaxyproject.org/simple`)Install dozens of dependencies.
Dependencies - JavaScriptο
Dependencies are defined in
client/package.json.These are fetched from npm and compiled into bundles as part of
make clientand relatedMakefiletargets.
Key Takeawaysο
Python: virtualenv with pip and wheels from galaxyproject.org
JavaScript: npm/yarn with package.json
No compilation required by default
Binary wheels for fast installation