uv vs Poetry — 2026-06-30
Current versions
- uv 0.11.26 (Jun 30, 2026) — https://github.com/astral-sh/uv/releases
- Poetry 2.4.1 (May 9, 2025) — https://github.com/python-poetry/poetry/releases
- No 2026 Poetry release найдено — gap >13 months
Big news 2026
OpenAI купили Astral (создателей uv) — 19 марта 2026
- Источник: https://openai.com/index/openai-to-acquire-astral/ (2026-03-19)
- Astral founder Charlie Marsh: "We'll keep building in the open, alongside our community — and for the broader Python ecosystem"
- Closing subject to regulatory approval; до тех пор Astral operates independently
- Что это значит: uv теперь имеет серьёзную корпоративную поддержку — снижает риск abandonment
Market signals
JetBrains Python Developers Survey 2024 (latest published)
- Environment isolation: venv 62%, virtualenv 25%, Conda 19%, Poetry 18%, uv 11%, Pipenv 8%
- Dependency management: pip 74%, Poetry 20%, Conda 18%, uv 12%, pip-tools 9%, Pipenv 8%
- "uv hitting 11% в свой первый год — notable achievement"
JetBrains "State of Python 2025" (Aug 2025)
- "uv jumped incredibly from 0% to 11% the year it was introduced (and that growth has demonstrably continued to surge in 2025)"
PyPI downloads
- uv: ~75M monthly downloads
- Poetry: ~66M monthly downloads
- uv overtook Poetry в 2026
NOT FOUND: JetBrains Python Developers Survey 2025/2026 full results — только 2024 numbers + Aug 2025 summary blog post.
Крупные проекты на uv
- FastAPI — uses uv для dependency management (uv.lock, dependency groups, sync, CI/CD). PyPI uploads via uv 0.11.18
- Apache Airflow — uv workspace monorepo + pyproject.toml. Cited как один из крупнейших OSS monorepos на uv
NOT FOUND evidence о Django, pandas, scikit-learn, numpy, Pydantic, Polars, LangChain, HuggingFace переключении на uv для own dev tooling. Они installable через uv, но migration announcement не найден.
Known production issues с uv (2026)
Lockfile reproducibility
- Renovate-style bots обновляют
pyproject.tomlбезuv.lock→ inconsistencies - Optional extras не регенерируются в
uv.lock([google]extra never locked →uv lock --checkfails) - Local editable paths: скрипты могут silently run with stale transitive deps даже с
--locked exclude-newermismatch между host и container
Private index / enterprise
- Default first-index dependency-confusion — friction в enterprises с internal versions of public packages
UV_INDEX+uv addbug (March 2026) — пишет неправильный pinning- Не пинит package к default PyPI через
tool.uv.sourcesбез reconfiguring PyPI как custom default
Plugin ecosystem
- uv не имеет plugin system — "Features ship in the binary or not at all"
- Нет equivalent для
poetry-dynamic-versioning, Docker integration plugins, etc. - Community
uv-dynamic-versioningсуществует, но не работает с uv build backend
Monorepo / workspace
- Не может
uv syncвесь workspace cleanly - Virtual root нужно явно name'ить distinct from members
- Не enforces import isolation между workspace members
- Нет native "affected tests only" tooling
Стабильность
- uv НЕ достиг 1.0 — current 0.11.26
- Official policy: "uv is widely used in production and is stable software"
- Versioning: minor bump = breaking change, patch = bug fixes
uv.lockschema is part of public API- Internal Rust crates (versioned 0.0.x) — no stability guarantees
Рекомендация
Оставляем uv — для нашего use case (single Python project в monorepo) известные issues не критичны:
- Renovate не используем
- Private indexes не используем
- Monorepo isolation проблемы не касаются (мы не используем workspaces — у нас
tools/intel-collector/со своим pyproject)
Если когда-то будем делать workspace для products/ — пересмотреть.
Metadata
- title
- uv vs Poetry на 2026-06-30
- tags
- ['research', 'uv', 'poetry', 'packaging']
- created
- 2026-06-30
- sources_fetched
- 2026-06-30