Skip to content

chore: migrate project tooling from Poetry to uv#36

Open
Deepak8858 wants to merge 3 commits intoGannettDigital:masterfrom
Deepak8858:chore/migrate-to-uv
Open

chore: migrate project tooling from Poetry to uv#36
Deepak8858 wants to merge 3 commits intoGannettDigital:masterfrom
Deepak8858:chore/migrate-to-uv

Conversation

@Deepak8858
Copy link

Summary

Migrates the project from Poetry to uv for dependency management and builds, per PEP 621.

Changes

  • Migrated tool.poetry config to standard [project] table (PEP 621)
  • Switched build backend from poetry-core to hatchling
  • Moved extras to [project.optional-dependencies]
  • Moved dev deps to [dependency-groups] (PEP 735)
  • Replaced poetry.lock with uv.lock

Benefits

  • Speed: uv resolves and installs significantly faster than Poetry
  • Standards: PEP 621 + PEP 735 compatible with all modern Python tools

Verification

uv sync          # Install all deps
uv run pytest    # Run tests

Fixes #35

Copy link

@orca-security-us orca-security-us bot left a comment

Choose a reason for hiding this comment

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

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Infrastructure as Code high 0   medium 0   low 0   info 0 View in Orca
Passed Passed SAST high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca
Failed Failed Vulnerabilities high 6   medium 0   low 0   info 0 View in Orca
☢️ The following Vulnerabilities (CVEs) have been detected
PACKAGE FILE CVE ID INSTALLED VERSION FIXED VERSION
critical deepdiff ./uv.lock CVE-2025-58367 7.0.1 8.6.1 View in code
high mysql-connector-python ./uv.lock CVE-2024-21272 9.0.0 9.1.0 View in code
high protobuf ./uv.lock CVE-2026-0994 4.25.8 6.33.5, 5.29.6 View in code
high urllib3 ./uv.lock CVE-2025-66418 1.26.20 2.6.0 View in code
high urllib3 ./uv.lock CVE-2025-66471 1.26.20 2.6.0 View in code
high urllib3 ./uv.lock CVE-2026-21441 1.26.20 2.6.3 View in code

@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request modernizes the project's Python packaging and dependency management by transitioning from Poetry to uv. This change aims to leverage uv's performance benefits for dependency resolution and installation, while also aligning the project with current Python packaging standards like PEP 621 and PEP 735. The update primarily involves restructuring the pyproject.toml file to reflect these new tooling choices and standards.

Highlights

  • Project Tooling Migration: The project's dependency management and build system have been migrated from Poetry to uv.
  • PEP 621 Compliance: Project metadata has been updated to conform to PEP 621, moving from [tool.poetry] to the standard [project] table.
  • Build Backend Switch: The build backend has been changed from poetry-core to hatchling for improved build processes.
  • Dependency Grouping: Optional dependencies are now defined under [project.optional-dependencies], and development dependencies are organized using [dependency-groups] as per PEP 735.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • pyproject.toml
    • Migrated project metadata from [tool.poetry] to the standard [project] table, including authors, license, and Python version requirements.
    • Restructured main project dependencies under a new dependencies array within the [project] table.
    • Moved optional dependencies to the [project.optional-dependencies] section, updating their format.
    • Introduced a [project.scripts] section for the data-diff entry point and a [project.urls] section for the repository link.
    • Defined development dependencies within a new [dependency-groups] table, specifically for the dev group, aligning with PEP 735.
    • Switched the build system's requires and build-backend from poetry-core to hatchling.
    • Added [tool.hatch.build.targets.wheel] configuration to specify package inclusion.
    • Updated [tool.ruff] configuration to include target-version and exclude paths, and removed the [tool.black] section.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request successfully migrates the project from Poetry to uv, adopting modern PEP 621 and PEP 735 standards for packaging and dependency management. The migration is well-executed, but I have identified two potential issues in the pyproject.toml configuration. The version constraint for dbt-core has been loosened, which could introduce breaking changes from future major versions. Additionally, the target-version for the Ruff linter is set to a newer Python version than the project's minimum supported version, which could lead to compatibility issues. My review includes suggestions to address these points.

Note: Security Review has been skipped due to the limited scope of the PR.

kantselovich and others added 2 commits March 12, 2026 13:02
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@kantselovich
Copy link

@Deepak8858 , thank you for your efforts on solving this issue.

Two things here:
We need to support Python >= 3.8 , so switching to 3.12 does not work.
2nd, all tests need to pass

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.

Migrate project tooling from Poetry to uv

2 participants