Skip to content

NickAkhmetov/Monorepo reorganization, eslint->biome, separate data loader packages, benchmarking#90

Draft
NickAkhmetov wants to merge 18 commits intonickakhmetov/export-fixesfrom
nickakhmetov/data-loaders
Draft

NickAkhmetov/Monorepo reorganization, eslint->biome, separate data loader packages, benchmarking#90
NickAkhmetov wants to merge 18 commits intonickakhmetov/export-fixesfrom
nickakhmetov/data-loaders

Conversation

@NickAkhmetov
Copy link
Collaborator

This pull request introduces a monorepo structure for the Scellop project, adds a dedicated data loading package, and transitions the codebase to use Biome for linting and formatting instead of ESLint/Prettier. It also provides comprehensive developer documentation and updates project metadata and scripts to reflect the new structure and tooling.

Monorepo & Package Structure:

  • Converted the project to a monorepo (scellop-monorepo) and moved data loading utilities into a new package @scellop/data-loading, with its own package.json, build scripts, and exports.
  • Updated the root package.json to manage all packages, scripts, and dependencies at the monorepo level.
  • scellop and the data loading logic live in the packages folder
  • demo lives in the sites folder

Tooling & Linting Modernization:

  • Replaced ESLint and Prettier with Biome for linting and formatting throughout the repo:
    • Added Biome config (biome.json) and removed all ESLint/Prettier configs and dependencies.
    • Updated VSCode settings and recommendations to use Biome as the default formatter for JS/TS/JSON files.

Developer Experience & Documentation:

  • Added a detailed developer guide (.github/copilot-instructions.md) explaining project architecture, state management, data schema, export pipeline, development workflow, testing, code conventions, and integration points.
  • Updated .vscode/settings.json for Biome integration and improved cSpell word list for project-specific terms.

Data Loading Package:

  • Introduced a generic, extensible data loading API in @scellop/data-loading, including:
    • DataLoader and BaseDataLoader interfaces/classes for implementing new data sources.
    • Refactored and exported data wrangling utilities and type definitions for ease of future implementations with other data loading solutions (e.g. a more low-level zarr loader, or a local file loader for anndata)

Cleanup & Miscellaneous:

  • Removed legacy or redundant files and scripts, such as the old ESLint config and the demo entrypoint.
  • Minor formatting and config updates for consistency.

Monorepo and Package Structure

  • Converted project to a monorepo (scellop-monorepo), moving data loading utilities to a new package with its own build/test scripts and exports.
  • Updated root package.json to manage scripts and dependencies for all packages.

Tooling Modernization

  • Replaced ESLint/Prettier with Biome for linting and formatting; removed old configs and dependencies, added biome.json.
  • Updated VSCode settings and recommendations to use Biome as the default formatter.

Developer Documentation

  • Added comprehensive developer instructions covering architecture, patterns, workflow, and gotchas in .github/copilot-instructions.md.

Data Loading API

  • Introduced a generic, extensible data loading API (DataLoader, BaseDataLoader) and refactored data wrangling utilities for modularity and reuse.

Cleanup

  • Removed legacy ESLint config and demo entrypoint, and made minor config/formatting improvements.

TODOs:

  • Migrate docs site created by @thomcsmits into this repository
  • Confirm widget development still works as expected
  • Confirm netlify deploy previews still work

@NickAkhmetov NickAkhmetov force-pushed the nickakhmetov/data-loaders branch from f4a58bf to 8c4ce83 Compare January 5, 2026 15:49
@NickAkhmetov NickAkhmetov changed the title NickAkhmetov/Monorepo reorganization, eslint->biome, separate data loader packages NickAkhmetov/Monorepo reorganization, eslint->biome, separate data loader packages, benchmarking Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant