Skip to content

Conversation

Copy link

Copilot AI commented Sep 30, 2025

This PR migrates the project from Poetry to uv, a modern, fast Python package manager and resolver written in Rust.

Changes

Build System

  • Replaced Poetry build backend with Hatchling in pyproject.toml
  • Converted Poetry dependency groups to standard Python [project.optional-dependencies]
  • Added proper package configuration for the single-file squiral.py module
  • Replaced poetry.lock with uv.lock for dependency locking

Dependency Management

  • Updated requirements-tool.in to use uv instead of poetry
  • Regenerated requirements-tool.txt with uv's dependency tree (removed all Poetry-related packages)
  • Updated upgrade script (scripts/upgrader.sh) to use uv lock --upgrade

CI/CD

  • Updated .github/workflows/codecov.yml to use uv:
    • Added astral-sh/setup-uv@v5 action for setup
    • Changed dependency installation to uv sync --all-extras
    • Updated test execution to uv run pytest
    • Enabled uv.lock caching for faster CI runs

Benefits

  • Faster: uv is 10-100x faster than traditional tools like pip and Poetry
  • Modern: Uses the latest Python packaging standards (PEP 621, PEP 517)
  • Simpler: Reduced configuration complexity and fewer dependencies
  • Compatible: Works seamlessly with existing pip-based workflows

Verification

All 109 tests pass with 100% code coverage maintained. The migration is fully backwards compatible for end users.

New development commands:

# Install dependencies
uv sync --all-extras

# Run tests
uv run pytest --cov=. --cov-report=term-missing

# Run the script
uv run python squiral.py 7

# Upgrade dependencies
uv lock --upgrade

Closes #[issue_number]

Original prompt

This section details on the original issue you should resolve

<issue_title>Use uv instead of poetry</issue_title>
<issue_description>In this repo, poetry has been used. From now on, uv should be used in this project.</issue_description>

<agent_instructions>Act like a principal software engineer. You are very good at python and software architecture. Discover all the repo components. Generate poetry->uv transformation codes. Fix unit tests and CI/CD pipelines if needed.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

Fixes #44

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI changed the title [WIP] Use uv instead of poetry Migrate from Poetry to uv package manager Sep 30, 2025
Copilot AI requested a review from sadikkuzu September 30, 2025 14:00
Copilot finished work on behalf of sadikkuzu September 30, 2025 14:00
@codecov
Copy link

codecov bot commented Sep 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (fd0c373) to head (55ea216).
⚠️ Report is 60 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##            master       #45   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            3         3           
  Lines           59        59           
=========================================
  Hits            59        59           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

Use uv instead of poetry

2 participants