scverse / scverse/scverse-io

Single or multiple packages?

Open
#1 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Option 1: one package that contains functions for multiple modalities (e.g. transcriptomics, AIRR, ATAC, ...).
Option 2: one package per modality, e.g. gex-io, airr-io, epigenetics-io

Pro one package

  • joint maintenance -> reduced overhead and bus factor
  • central place for users to look for IO functions
  • potential for multimodal IO functions that generate MuData objects directly

Pro multiple packages

  • clear who's responsible for releasing the package
  • no need to deal with optional dependencies
  • Can release packages independently more quickly

Optional dependencies

  • Could be handled with dependency groups.

    pip install scverse-io
    

    installs only the basic functions.

    then there's e.g.

    scverse-io[airr]
    

    and

    scverse-io[all]
    

    The latter would be broadly advertised in the README.

  • Maybe it's not as bad after all. Most IO functions should get away the same packages reading csv/mtx/json/h5.

  • @flying-sheep made the point that if an optional dependency is not installed, the error message should be just a plain
    message with installation instructions rather than a full stack-trace that will be intimidating for beginners.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the README and the discussion of single-package versus per-modality packaging, including optional dependency groups and missing-dependency messages. Done means reaching and documenting a project decision; the issue does not name implementation files or tests to run.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.