feat(packaging): introduce uv workspace structure for aignostics-sdk split [PYSDK-134]#653
Open
ari-nz wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
This PR restructures the SDK packaging into a uv workspace as a first step toward splitting the existing monolithic package into separate aignostics and aignostics-sdk distributions.
Changes:
- Converts the root
pyproject.tomlinto workspace/tooling configuration. - Adds workspace package metadata for
packages/aignosticsandpackages/aignostics-sdk. - Adds package stubs and regenerates
uv.lockfor the workspace members.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Removes root project metadata, adds workspace configuration, and updates version bump targets. |
packages/aignostics/pyproject.toml |
Defines the full/meta package and its dependency on aignostics-sdk. |
packages/aignostics-sdk/pyproject.toml |
Defines the slim SDK package metadata, dependencies, build config, and script entry point. |
packages/aignostics/src/aignostics/__init__.py |
Adds a temporary package stub for the meta package. |
packages/aignostics-sdk/src/aignostics_sdk/__init__.py |
Adds a temporary package stub for the SDK package. |
uv.lock |
Regenerates lock metadata for the new workspace layout. |
| @@ -0,0 +1 @@ | |||
| """Package stub — source migrated in Phase 2.""" | |||
Comment on lines
+164
to
+166
| [project.scripts] | ||
| aignostics-sdk = "aignostics_sdk.cli:cli" | ||
|
|
Comment on lines
+252
to
+259
| search = """ | ||
| [project] | ||
| name = \"aignostics-sdk\" | ||
| version = \"{current_version}\"\"""" | ||
| replace = """ | ||
| [project] | ||
| name = \"aignostics-sdk\" | ||
| version = \"{new_version}\"\"""" |
Comment on lines
263
to
+270
| search = """ | ||
| [project] | ||
| name = \"aignostics\" | ||
| version = \"{current_version}\"""" | ||
| version = \"{current_version}\"\"""" | ||
| replace = """ | ||
| [project] | ||
| name = \"aignostics\" | ||
| version = \"{new_version}\"""" | ||
| version = \"{new_version}\"\"""" |
Comment on lines
+77
to
+79
| dependencies = [ | ||
| "aignostics-sdk==1.4.0", | ||
| # Heavy deps will be moved here from aignostics-sdk in Phase 5 |
This was referenced May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Train — PYSDK-133
Summary
pyproject.tomlinto a workspace-only config: strips[project],[project.optional-dependencies],[project.scripts],[project.urls],[build-system], and[tool.hatch.*]; adds[tool.uv.workspace] members = ["packages/*"]packages/aignostics-sdk/pyproject.toml— the slim package, with full dependency list copied from the original root (dependency split is Phase 5); hatchling build config points tosrc/aignostics_sdkpackages/aignostics/pyproject.toml— the full meta-package depending onaignostics-sdk==1.4.0via[tool.uv.sources]workspace reference__init__.pyfiles atpackages/aignostics-sdk/src/aignostics_sdk/__init__.pyandpackages/aignostics/src/aignostics/__init__.py[tool.bumpversion.files]to target the two new packagepyproject.tomlfiles instead of the rootuv.lockto include both workspace membersNotes
uv sync --all-extrasresolves and installs bothaignostics==1.4.0andaignostics-sdk==1.4.0from the workspacemake lintfails with pre-existingaignx.codegenimport errors — these are expected for Phase 1 since thecodegen/out/aignxpackage isn't installed in the workspace venv yet; import rewrites happen in Phase 3../../-relative paths for[tool.hatch.build.targets.wheel].packages; the codegen bundling spec (../../codegen/out/aignx) has been deferred to Phase 5 with a TODO comment; this does not affectuv syncor workspace resolutionsrc/aignostics/*into the appropriate packagesrc/) follows in PYSDK-135Test plan
uv sync --all-extrascompletes successfully with both packages installed from the workspacepackages/aignostics-sdk/pyproject.tomlhasversion = "1.4.0"packages/aignostics/pyproject.tomlhasversion = "1.4.0"anddepends on aignostics-sdk==1.4.0pyproject.tomlhas no[project]section and includes[tool.uv.workspace]