- # AutoGen Python packages
-
- [](https://microsoft.github.io/autogen/dev/)
- [](https://pypi.org/project/autogen-core/) [](https://pypi.org/project/autogen-agentchat/) [](https://pypi.org/project/autogen-ext/)
-
- This directory works as a single `uv` workspace containing all project packages. See [`packages`](./packages/) to discover all project packages.
-
- ## Migrating from 0.2.x?
-
- Please refer to the [migration guide](./migration_guide.md) for how to migrate your code from 0.2.x to 0.4.x.
-
- ## Development
-
- **TL;DR**, run all checks with:
-
- ```sh
- uv sync --all-extras
- source .venv/bin/activate
- poe check
- ```
-
- ### Setup
-
- `uv` is a package manager that assists in creating the necessary environment and installing packages to run AutoGen.
-
- - [Install `uv`](https://docs.astral.sh/uv/getting-started/installation/).
-
- **Note:** To prevent incompatibilities between versions the same UV version as is running in CI should be used. Check the version in CI by looking the `setup-uv` action, [here](https://github.com/microsoft/autogen/blob/main/.github/workflows/checks.yml#L40) for example.
-
- For example, to change your version to `0.5.18`, run:
- ```sh
- uv self update 0.5.18
- ```
-
- ### Virtual Environment
-
- During development, you may need to test changes made to any of the packages.\
- To do so, create a virtual environment where the AutoGen packages are installed based on the current state of the directory.\
- Run the following commands at the root level of the Python directory:
-
- ```sh
- uv sync --all-extras
- source .venv/bin/activate
- ```
-
- - `uv sync --all-extras` will create a `.venv` directory at the current level and install packages from the current directory along with any other dependencies. The `all-extras` flag adds optional dependencies.
- - `source .venv/bin/activate` activates the virtual environment.
-
- ### Common Tasks
-
- To create a pull request (PR), ensure the following checks are met. You can run each check individually:
-
- - Format: `poe format`
- - Lint: `poe lint`
- - Test: `poe test`
- - Mypy: `poe mypy`
- - Pyright: `poe pyright`
- - Build docs: `poe --directory ./packages/autogen-core/ docs-build`
- - Auto rebuild+serve docs: `poe --directory ./packages/autogen-core/ docs-serve`
- - Check samples in `python/samples`: `poe samples-code-check`
- Alternatively, you can run all the checks with:
- - `poe check`
-
- > [!NOTE]
- > These need to be run in the virtual environment.
-
- ### Syncing Dependencies
-
- When you pull new changes, you may need to update the dependencies.
- To do so, first make sure you are in the virtual environment, and then in the `python` directory, run:
-
- ```sh
- uv sync --all-extras
- ```
-
- This will update the dependencies in the virtual environment.
-
- ### Creating a New Package
-
- To create a new package, similar to `autogen-core` or `autogen-chat`, use the following:
-
- ```sh
- uv sync --python 3.12
- source .venv/bin/activate
- cookiecutter ./templates/new-package/
- ```
|