Skip to content

Conversation

@ryanmerolle
Copy link

@ryanmerolle ryanmerolle commented Feb 2, 2026

Addresses #6

  • Leveraged uvx migrate-to-uv to migrate each pyproject.toml
  • Move tools like pytest to dev groups in pyproject.toml
  • Migrate Dockerfile(s) to use uv
  • Migrate GitHub actions to use uv
  • Updated docs

I heavily used Claude to prepare this. I need to test and validate in the coming days. Feel free to checkout the branch and test.

Copy link
Contributor

@vincentbergman vincentbergman left a comment

Choose a reason for hiding this comment

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

Thanks for the comprehensive migration work! The switch to uv looks promising.

I'll pull this branch and run some local tests before we merge. Will report back with any findings.

A few quick questions:

  1. Have you been able to run the full test suite locally with uv?
  2. Any issues with the Docker builds?

Appreciate the effort here 👍

@vincentbergman
Copy link
Contributor

Hey @ryanmerolle, looks like the workflow is failing on the packaging step. Could you take a look and fix the CI errors before we proceed with the review?

Let us know if you need any help debugging.

@vincentbergman
Copy link
Contributor

Just a heads up - this project uses poetry-multiproject-plugin and poetry-polylith-plugin for the monorepo structure. The migration to uv might need to account for this.

Please check out the Polylith docs for Python: https://davidvujic.github.io/python-polylith-docs

There may be some compatibility considerations when switching from Poetry to uv with this architecture.

@ryanmerolle
Copy link
Author

ryanmerolle commented Feb 2, 2026

Yea the pr was only a draft setup, I should have set it accordingly. I had not tested anything.

You approach really feels like the default uv workspaces setup.

I have done this before with the following structure:

Example tree:

├── docs
├── packages
│   ├── core
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── src
│   │   │   └── core
│   │   └── tests
│   ├── agent
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── src
│   │   │   └── agent
│   │   └── tests
│   ├── simunet
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── src
│   │   │   └── simunet
│   │   └── tests
├── pyproject.toml        # lists all packages in packages as workspace members and as dependencies
├── README.md
├── tests
└── uv.lock

IE this may need a larger reorg than I intended, but the results will pay dividends in maintainability. I would also say Claude has a smaller but detailed uv related training set given near every python ai project uses it and its so recent; ie the quality prompt returns are higher.

@vincentbergman
Copy link
Contributor

Thanks for the detailed explanation! You're right - this is a bigger change than initially expected.

We'll evaluate this internally first. Since the project is still in early stages, the migration cost is relatively low, but we want to make sure we choose the right approach for the long term.

Will get back to you once we've discussed the architecture direction 👍

@ryanmerolle
Copy link
Author

ryanmerolle commented Feb 3, 2026

I think I have a good approach lined up:

  • Create an additional workspace in projects\core
  • Move common package dependencies into core
  • Remove various common targets shared between simunet and agent project defined in each pyproject.toml into core.
  • Make core a dependency for simunet and agent.

Move components and base to their perspective workspace.

From there we should move unit tests for each project into said project tests directory and put end to end / integration tests for more than 1 package in the root tests directory.

I can PR a proposal, but would you want components and/or base directory to exist in each project?

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