cucapra / pollen

generating hardware accelerators for pangenomic graph queries
MIT License
24 stars 1 forks source link

Reorganize json-gen and slow-odgi into two packages #69

Closed anshumanmohan closed 1 year ago

anshumanmohan commented 1 year ago

Originally posted by @anshumanmohan in https://github.com/cucapra/pollen/issues/25#issuecomment-1524065092

sampsyo commented 1 year ago

Nice. I like the idea of factoring things out so that we have top-level Python modules that can be shared among multiple tools. Logistically, there are two options for doing this in Python:

  1. One giant Python package (called pollen or something), with one pyproject.toml and one top-level source directory, where everything is a module nested within that package. So there would be Python modules named pollen.mygfa, pollen.slow_odgi, etc.
  2. The "monorepo" approach, with several directories containing separate Python packages, each accompanied with their own pyproject.toml. The Python package names would be just plain mygfa and slow_odgi and such. This post illustrates this directory structure.

Option 1's advantage is that there are no questions about which ones are installed on someone's machine; they're all installed at once. Its disadvantage, however, is that they only have one set of dependencies—so people using our imagined "PanoBench" can't install slow_odgi without getting all our other stuff, which might depend on Calyx or whatever. I'd probably lean toward Option 2 unless it's super inconvenient.

anshumanmohan commented 1 year ago

Super! Option 2 was my plan, and this is better motivation than ever