Skip to content
Skillv1.0.0

poetry-rye-dependency-management

Python dependency management with Poetry and Rye -- lockfile-driven workflows, dependency groups, monorepo patterns, and migration paths. Covers pyproject.toml-centric packaging for projects not yet o

by oimiragieo(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from oimiragieo/agent-studio (.claude/skills/poetry-rye-dependency-management/SKILL.md). Install upstream with npx skills add oimiragieo/agent-studio --skill poetry-rye-dependency-management. Copyright stays with the author.

Poetry / Rye Dependency Management Skill

Overview

Poetry and Rye are Python dependency managers that enforce lockfile-driven, deterministic builds. Both use pyproject.toml as the single configuration file. Poetry is the established standard (since 2018); Rye is a newer Astral tool that bridges to uv. For greenfield projects, consider modern-python skill (uv-native). This skill covers Poetry/Rye for existing codebases and teams already invested in these tools.

When to Use

  • When maintaining existing Poetry or Rye projects
  • When a team has standardized on Poetry and migration to uv is not planned
  • When publishing Python packages to PyPI (Poetry has mature publishing support)
  • When managing monorepo Python workspaces
  • When auditing or upgrading dependency lockfiles

Iron Laws

  1. ALWAYS commit the lockfile (poetry.lock or requirements.lock) -- without it, builds are non-deterministic and CI/CD will resolve different versions than development.
  2. NEVER use pip install in a Poetry/Rye-managed project -- it bypasses the resolver and creates ghost dependencies invisible to the lockfile.
  3. ALWAYS use poetry add/rye add to add dependencies -- manual pyproject.toml edits without re-locking create stale lockfiles.
  4. NEVER pin transitive dependencies manually -- let the solver manage the full dependency graph; pinning transitive deps causes resolver conflicts.
  5. ALWAYS separate runtime and development dependencies into groups -- shipping dev/test dependencies in production images wastes space and expands attack surface.

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach
Editing pyproject.toml deps without running poetry lock Lockfile becomes stale; CI installs different versions than intended Always run poetry lock or rye lock after any dependency change
Using poetry install without --no-root in CI Installs the project in editable mode unnecessarily; slower CI builds Use poetry install --no-root for library deps only, --only main for production
Committing .venv/ directory to version control Bloats repo; virtualenvs are platform-specific and non-portable Add .venv/ to .gitignore; recreate with poetry install or rye sync
Mixing pip and Poetry in the same project Creates two dependency graphs; pip-installed packages invisible to Poetry Use only poetry add/rye add for all dependency changes
Using * version constraints for all dependencies No upper bound protection; major version bumps break silently Use compatible release (^ in Poetry) or upper-bounded ranges

Workflow

Poetry Project Setup

# Initialize new project
poetry init --name my-project --python ">=3.12"

# Add dependencies by group
poetry add requests httpx
poetry add --group dev ruff pytest pytest-cov
poetry add --group docs sphinx

# Install all groups
poetry install

# Install production only
poetry install --only main

Rye Project Setup

# Initialize new project
rye init my-project
cd my-project

# Add dependencies
rye add requests httpx
rye add --dev ruff pytest pytest-cov

# Sync (install) dependencies
rye sync

pyproject.toml Configuration (Poetry)

[tool.poetry]
name = "my-project"
version = "0.1.0"
description = "Project description"
authors = ["Team <team@example.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = ">=3.12"
requests = "^2.31"
httpx = "^0.27"

[tool.poetry.group.dev.dependencies]
ruff = "^0.9"
pytest = "^8.0"
pytest-cov = "^6.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

CI/CD Integration (GitHub Actions)

name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - name: Install Poetry
        run: pipx install poetry
      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: ~/.cache/pypoetry
          key: poetry-$HASH_OF_LOCKFILE
      - name: Install dependencies
        run: poetry install --no-root
      - name: Lint
        run: poetry run ruff check .
      - name: Test
        run: poetry run pytest --cov

Security Audit

# Poetry: audit dependencies for known CVEs
poetry audit

# Rye: use pip-audit integration
rye run pip-audit

Migration to uv

When ready to migrate from Poetry/Rye to uv:

# Export Poetry dependencies
poetry export -f requirements.txt --output requirements.txt

# Initialize uv project
uv init
uv add $(grep -v '^#' requirements.txt | grep -v '^\-' | cut -d'=' -f1)

# Verify
uv sync
uv run pytest

See modern-python skill for the complete uv workflow.

Complementary Skills

Skill Relationship
modern-python uv-native workflow (recommended for greenfield projects)
python-backend-expert Framework-specific patterns (Django, FastAPI, Flask)
tdd Test-driven development methodology
comprehensive-unit-testing-with-pytest Testing strategies and patterns

Memory Protocol (MANDATORY)

Before starting:

Read .claude/context/memory/learnings.md for prior Python packaging decisions.

After completing: Record any migration issues, version constraints, or resolver conflicts to .claude/context/memory/learnings.md.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/oimiragieo-agent-studio-poetry-rye-dependency-management/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

oimiragieo-agent-studio-poetry-rye-dependency-management.ocm.jsonjson
{
  "ocm": "1",
  "id": "oimiragieo-agent-studio-poetry-rye-dependency-management",
  "kind": "skill",
  "name": "poetry-rye-dependency-management",
  "description": "Python dependency management with Poetry and Rye -- lockfile-driven workflows, dependency groups, monorepo patterns, and migration paths. Covers pyproject.toml-centric packaging for projects not yet on uv.",
  "publisher": "oimiragieo",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "python",
      "poetry",
      "rye",
      "dependency-management",
      "packaging",
      "pyproject-toml",
      "lockfile",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Python dependency management with Poetry and Rye -- lockfile-driven workflows, dependency groups, monorepo patterns, and migration paths. Covers pyproject.toml-centric packaging for projects not yet on uv."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/oimiragieo/agent-studio",
      "path": ".claude/skills/poetry-rye-dependency-management/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/oimiragieo/agent-studio/blob/HEAD/.claude/skills/poetry-rye-dependency-management/SKILL.md",
      "key": "oimiragieo/agent-studio/.claude/skills/poetry-rye-dependency-management/SKILL.md"
    }
  },
  "instructions": "# Poetry / Rye Dependency Management Skill\n\n<identity>\nPython dependency management specialist for Poetry and Rye workflows. Guides lockfile-driven dependency resolution, virtual environment management, dependency groups, publishing, and migration to modern tooling. Covers the full lifecycle from project initialization through CI/CD integration.\n</identity>\n\n<capabilities>\n- Initialize new Python projects with Poetry or Rye\n- Manage dependency groups (main, dev, test, docs, optional extras)\n- Configure lockfile-driven builds for reproducibility\n- Set up CI/CD pipelines with cached dependency i",
  "cost": {
    "context_tokens": 1793
  }
}

Fetch it by URL: GET /api/v1/registry/oimiragieo-agent-studio-poetry-rye-dependency-management/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.