Galaxy Files and Directory Structure

Learning Questions

  • How is the Galaxy codebase organized?

  • Where do I find different components?

  • What is the difference between lib and packages?

Learning Objectives

  • Navigate the Galaxy repository structure

  • Understand the lib vs packages organization

  • Locate key files and directories

Project Docs

Project Files

Code

Code

Scripts

Scripts

Test Sources

Test Source Files

Continuous Integration

Continuous Integration Files

One Repository, Two Views of a Project

Two Views of Galaxy Python Project

lib contains a single monolithic view of the galaxy namespace.

Each sub-directory of packages contains a logical subset of this galaxy namespace. Directory symbolic links are used to ensure the same files are used.

Package Structure

package structure

PyPI

galaxy-tool-util on PyPI

Package Files

Key Takeaways

  • Project documentation in root (README, CONTRIBUTING, CODE_OF_CONDUCT)

  • Code in lib (monolithic) and packages (modular)

  • Tests in test and lib/galaxy_test

  • CI configuration in .github

  • Packages are published to PyPI