Skip to content

Conversation

@johnnygreco
Copy link
Contributor

@johnnygreco johnnygreco commented Jan 22, 2026

Summary

This PR implements a major architectural refactoring that reorganizes the monolithic data_designer package into three distinct subpackages under packages/:

  • data-designer-config: User-facing configuration API (column configs, model configs, sampler params, validators)
  • data-designer-engine: Internal generation and processing engine (column generators, dataset builders, models, validators, sampling)
  • data-designer: Public interface layer (DataDesigner class, CLI, results)

Key Changes

  • Package restructuring: Moved source code from src/data_designer/ to packages/*/src/data_designer/
  • Removed essentials module: Consolidated functionality into appropriate subpackages
  • Updated Make commands: Streamlined development workflow for the multi-package structure
  • Updated project configs: Each subpackage has its own pyproject.toml with proper dependencies

Extra Tests

  • Running all tutorials using make test-run-tutorials works as expected
  • Running all recipes using make test-run-recipes works as expected

closes #207

@johnnygreco johnnygreco changed the title Refactor: Reorganize into subpackages (data-designer-config, data-designer-engine, data-designer) refactor: Reorganize into subpackages (data-designer-config, data-designer-engine, data-designer) Jan 22, 2026
@johnnygreco johnnygreco changed the title refactor: Reorganize into subpackages (data-designer-config, data-designer-engine, data-designer) refactor: slim package refactor into three subpackages Jan 22, 2026
@johnnygreco johnnygreco requested review from a team and Copilot January 22, 2026 23:20
Copy link

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 restructures the monolithic data_designer package into three distinct subpackages to improve modularity and dependency management.

Changes:

  • Reorganized codebase from src/data_designer/ into three packages under packages/: data-designer-config, data-designer-engine, and data-designer
  • Updated copyright year from "2025-2026" to "2026" across all files
  • Removed essentials module in favor of importing directly from data_designer.config

Reviewed changes

Copilot reviewed 279 out of 392 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/data-designer-engine/conftest.py Updated copyright header; added fixture imports for multi-package structure
packages/data-designer-engine/pyproject.toml New package configuration with dependencies on data-designer-config
packages/data-designer-engine/tests/test_plugin_manager.py Updated copyright and reordered imports
packages/data-designer-engine/src/data_designer/engine/testing/* New testing utilities module with fixtures and stubs
packages/data-designer-config/conftest.py Updated to import fixtures from config.testing module
packages/data-designer-config/pyproject.toml New package configuration for lightweight config layer
packages/data-designer-config/src/data_designer/config/testing/fixtures.py Moved StubHuggingFaceSeedReader to engine package; added type hints
packages/data-designer-config/src/data_designer/config/init.py New init file exporting config API
packages/data-designer-config/src/data_designer/logging.py Added init_logging() helper function
packages/data-designer-config/src/data_designer/errors.py New file with base DataDesignerError class
docs/notebook_source/*.py Updated imports from essentials to data_designer.config
README.md Updated example code to use new import pattern
Makefile Updated for multi-package workspace commands
AGENTS.md Updated file paths and import examples
.github/workflows/*.yml Updated to use new package structure

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

@johnnygreco johnnygreco force-pushed the johnny/refactor/207-repackaging-with-subpackages branch from 8e5ed4d to 04f8355 Compare January 23, 2026 20:58
@johnnygreco johnnygreco requested review from a team and nabinchha January 23, 2026 22:22
@johnnygreco johnnygreco force-pushed the johnny/refactor/207-repackaging-with-subpackages branch from 911cc6f to b6e375d Compare January 26, 2026 16:59
@johnnygreco johnnygreco requested a review from mikeknep January 26, 2026 20:59
nabinchha
nabinchha previously approved these changes Jan 26, 2026
mikeknep
mikeknep previously approved these changes Jan 27, 2026
Copy link
Contributor

@mikeknep mikeknep left a comment

Choose a reason for hiding this comment

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

This rocks 🪨 🎸

nabinchha
nabinchha previously approved these changes Jan 27, 2026
@johnnygreco johnnygreco force-pushed the johnny/refactor/207-repackaging-with-subpackages branch from 824d8ed to 177d38d Compare January 27, 2026 18:32
@johnnygreco johnnygreco merged commit ae0665f into main Jan 27, 2026
47 checks passed
johnnygreco added a commit that referenced this pull request Jan 27, 2026
* remove old structure

* major shuffle

* streamline project configs

* update make commands

* updates to make commands

* remove essentials

* initialize logger in interface

* uv lock

* ignore notepad

* update workflows

* fix e2e project config

* generate colab notebooks

* resolve default model settings in interface

* fix build commands

* update perf import make command

* cleaning up some slop

* update recipes

* move conftest files to tests/

* update subpackage readmes

* streamline config_logging

* use exports

* update perf import usage pattern

* update for IDE behavior with ruff

* remove engine's fixtures file

* add note to about lazy imports

* update dependencies

* update docs

* doc fixes

* uv lock

* updates to catch up with main

* clean up makefile

* remove package gitignores

* define deps only once

* isolate tests

* add test for protetion rule

* create temp dirs for isolated tests

* catch up to main

* update headers

* re apply changes

* better result summaries for isolated tests

* move exports into top-level init

* fix client importlib version syntax

* catch up with main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Slim-pacakge refactor

5 participants