Skip to content

Conversation

@bergsalex
Copy link
Contributor

This pull request demonstrates one option for organizing the JABS packages, breaking a jabs-core and jabs-io package out into two new uv workspace packages.

There is minimal refactoring included to demonstrate that cross-package imports still work, but the new workspace packages remain largely unimplemented.

Work to do(in this PR):

  • Update github actions to build and publish new workspace packages
  • Update developer docs

Work to do (after PR):

  • Start implementing the jabs-io package
  • Review existing jabs-behavior-classifier code to determine which should move to the new packages
  • Decide if we want to put the runtime work (nextflow + container defintions) in this repository

@bergsalex bergsalex self-assigned this Jan 23, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reorganizes the JABS codebase into a workspace structure with three separate packages: jabs-behavior-classifier, jabs-core, and jabs-io. The refactoring extracts shared utilities, constants, enums, exceptions, and abstract base classes into jabs-core, while preparing jabs-io for future I/O functionality.

Changes:

  • Created new workspace packages jabs-core and jabs-io with dedicated pyproject.toml files
  • Moved shared code (utilities, constants, enums, exceptions, abstract classes) from jabs-behavior-classifier to jabs-core
  • Updated all import statements across the codebase to reference the new package structure
  • Configured uv workspace with namespace packages

Reviewed changes

Copilot reviewed 47 out of 59 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
pyproject.toml Added workspace configuration and dependencies on new jabs-core and jabs-io packages
packages/jabs-core/pyproject.toml Created new jabs-core package configuration
packages/jabs-io/pyproject.toml Created new jabs-io package configuration
packages/jabs-core/src/jabs/core/* Moved core utilities, constants, enums, exceptions, and abstract classes
src/jabs/**/*.py Updated imports to reference jabs.core package
tests/**/*.py Updated test imports to reference jabs.core package

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bergsalex bergsalex marked this pull request as ready for review January 23, 2026 19:58
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.

2 participants