{"owner":"pdm-project","repo":"pdm","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\nThis file provides guidance to AI coding assistants when working with code in this repository.\n\n## Project Overview\n\nPDM (Python Dependency Manager) is a modern Python package and dependency manager that supports the latest PEP standards (PEP 517, PEP 621). It provides fast dependency resolution, flexible plugin system, and centralized cache management similar to pnpm.\n\n## Core Architecture\n\n### Key Components\n\n1. **Project Management** (`src/pdm/project/`): Handles pyproject.toml parsing, project configuration, and metadata management\n2. **Dependency Resolution** (`src/pdm/resolver/`): Fast dependency resolver using resolvelib with custom optimizations for binary distributions\n3. **Environment Management** (`src/pdm/environments/`): Manages Python environments (virtualenv, PEP 582, system)\n4. **Installer System** (`src/pdm/installers/`): Installs and uninstalls packages into the site-packages directory with centralized cache support\n5. **CLI System** (`src/pdm/cli/commands/`): Command-line interface using argparse with plugin support\n6. **Repository Models** (`src/pdm/models/repositories/`): PyPI repository interaction and package finder\n7. **Build System** (`src/pdm/builders/`): PEP 517 build front-end for creating wheels and sdists\n\n### Command Entry Points\n\nAll CLI commands are in `src/pdm/cli/commands/` with command registration in `src/pdm/core.py`. Commands inherit from `BaseCommand` and use decorator patterns for common options.\n\n## Development Commands\n\n### Setup Development Environment\n```bash\n# Install development dependencies\npdm install\n```\n\n### Run Tests\n```bash\n# Run all tests\npdm run test\n\n# Run tests in parallel\npdm run test -n auto\n```\n\nMost of the time, you can exclude tests with \"integration\" mark to save runtime:\n\n```bash\npdm run test -n auto -m \"not integration\"\n```\n\n### Code Quality\n```bash\n# Run linting (ruff-format + codespell + mypy)\npdm run lint\n```\n\n### Documentation\n```bash\n# Serve documentation locally\npdm run doc\n```\n\n### Contribution Guidelines\n\nRefer to [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Important Files\n\n- `pyproject.toml`: Project configuration and dependencies\n- `src/pdm/core.py`: Main application entry point and command registration\n- `src/pdm/project/__init__.py`: Project class managing project state\n- `src/pdm/cli/commands/base.py`: Base command class for all CLI commands\n- `.pre-commit-config.yaml`: Code quality hooks (ruff, mypy, codespell)\n\n## Common Development Tasks\n\n### Adding a New Command\n1. Create new file in `src/pdm/cli/commands/`\n2. Inherit from `BaseCommand`\n3. Register in `src/pdm/core.py`\n\n### Debugging Resolution Issues\n- Set `PDM_DEBUG=1` environment variable for verbose output\n- Check `pdm.lock` for resolved versions\n- Use `pdm lock --check` to verify lock file\n\n### Working with Lock Files\n\nPDM uses its own lock file format (`pdm.lock`) that includes:\n- Exact versions with hashes\n- Environment markers\n- Cross-platform support\n- Group dependencies\n\n### Update dependencies\n\n```bash\n# Add a new dependency to default group\npdm add <package_name>\n\n# Update all dependencies\npdm update\n\n# Remove a dependency\npdm remove <package_name>\n\n# Add a new dependency to given group\npdm add <package_name> --group <group_name>\n```\n\n## Architecture Patterns\n\n- **Dependency Injection**: Core class passed to commands\n- **Signal System**: Event-driven architecture for plugins\n- **Repository Pattern**: Abstract repository interface for package sources\n- **Strategy Pattern**: Different environment backends (venv, conda, etc.)\n- **Chain of Responsibility**: Middleware system for HTTP client\n"},"files":{"AGENTS.md":"# AGENTS.md\n\nThis file provides guidance to AI coding assistants when working with code in this repository.\n\n## Project Overview\n\nPDM (Python Dependency Manager) is a modern Python package and dependency manager that supports the latest PEP standards (PEP 517, PEP 621). It provides fast dependency resolution, flexible plugin system, and centralized cache management similar to pnpm.\n\n## Core Architecture\n\n### Key Components\n\n1. **Project Management** (`src/pdm/project/`): Handles pyproject.toml parsing, project configuration, and metadata management\n2. **Dependency Resolution** (`src/pdm/resolver/`): Fast dependency resolver using resolvelib with custom optimizations for binary distributions\n3. **Environment Management** (`src/pdm/environments/`): Manages Python environments (virtualenv, PEP 582, system)\n4. **Installer System** (`src/pdm/installers/`): Installs and uninstalls packages into the site-packages directory with centralized cache support\n5. **CLI System** (`src/pdm/cli/commands/`): Command-line interface using argparse with plugin support\n6. **Repository Models** (`src/pdm/models/repositories/`): PyPI repository interaction and package finder\n7. **Build System** (`src/pdm/builders/`): PEP 517 build front-end for creating wheels and sdists\n\n### Command Entry Points\n\nAll CLI commands are in `src/pdm/cli/commands/` with command registration in `src/pdm/core.py`. Commands inherit from `BaseCommand` and use decorator patterns for common options.\n\n## Development Commands\n\n### Setup Development Environment\n```bash\n# Install development dependencies\npdm install\n```\n\n### Run Tests\n```bash\n# Run all tests\npdm run test\n\n# Run tests in parallel\npdm run test -n auto\n```\n\nMost of the time, you can exclude tests with \"integration\" mark to save runtime:\n\n```bash\npdm run test -n auto -m \"not integration\"\n```\n\n### Code Quality\n```bash\n# Run linting (ruff-format + codespell + mypy)\npdm run lint\n```\n\n### Documentation\n```bash\n# Serve documentation locally\npdm run doc\n```\n\n### Contribution Guidelines\n\nRefer to [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Important Files\n\n- `pyproject.toml`: Project configuration and dependencies\n- `src/pdm/core.py`: Main application entry point and command registration\n- `src/pdm/project/__init__.py`: Project class managing project state\n- `src/pdm/cli/commands/base.py`: Base command class for all CLI commands\n- `.pre-commit-config.yaml`: Code quality hooks (ruff, mypy, codespell)\n\n## Common Development Tasks\n\n### Adding a New Command\n1. Create new file in `src/pdm/cli/commands/`\n2. Inherit from `BaseCommand`\n3. Register in `src/pdm/core.py`\n\n### Debugging Resolution Issues\n- Set `PDM_DEBUG=1` environment variable for verbose output\n- Check `pdm.lock` for resolved versions\n- Use `pdm lock --check` to verify lock file\n\n### Working with Lock Files\n\nPDM uses its own lock file format (`pdm.lock`) that includes:\n- Exact versions with hashes\n- Environment markers\n- Cross-platform support\n- Group dependencies\n\n### Update dependencies\n\n```bash\n# Add a new dependency to default group\npdm add <package_name>\n\n# Update all dependencies\npdm update\n\n# Remove a dependency\npdm remove <package_name>\n\n# Add a new dependency to given group\npdm add <package_name> --group <group_name>\n```\n\n## Architecture Patterns\n\n- **Dependency Injection**: Core class passed to commands\n- **Signal System**: Event-driven architecture for plugins\n- **Repository Pattern**: Abstract repository interface for package sources\n- **Strategy Pattern**: Different environment backends (venv, conda, etc.)\n- **Chain of Responsibility**: Middleware system for HTTP client\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\nThis file provides guidance to AI coding assistants when working with code in this repository.\n\n## Project Overview\n\nPDM (Python Dependency Manager) is a modern Python package and dependency manager that supports the latest PEP standards (PEP 517, PEP 621). It provides fast dependency resolution, flexible plugin system, and centralized cache management similar to pnpm.\n\n## Core Architecture\n\n### Key Components\n\n1. **Project Management** (`src/pdm/project/`): Handles pyproject.toml parsing, project configuration, and metadata management\n2. **Dependency Resolution** (`src/pdm/resolver/`): Fast dependency resolver using resolvelib with custom optimizations for binary distributions\n3. **Environment Management** (`src/pdm/environments/`): Manages Python environments (virtualenv, PEP 582, system)\n4. **Installer System** (`src/pdm/installers/`): Installs and uninstalls packages into the site-packages directory with centralized cache support\n5. **CLI System** (`src/pdm/cli/commands/`): Command-line interface using argparse with plugin support\n6. **Repository Models** (`src/pdm/models/repositories/`): PyPI repository interaction and package finder\n7. **Build System** (`src/pdm/builders/`): PEP 517 build front-end for creating wheels and sdists\n\n### Command Entry Points\n\nAll CLI commands are in `src/pdm/cli/commands/` with command registration in `src/pdm/core.py`. Commands inherit from `BaseCommand` and use decorator patterns for common options.\n\n## Development Commands\n\n### Setup Development Environment\n```bash\n# Install development dependencies\npdm install\n```\n\n### Run Tests\n```bash\n# Run all tests\npdm run test\n\n# Run tests in parallel\npdm run test -n auto\n```\n\nMost of the time, you can exclude tests with \"integration\" mark to save runtime:\n\n```bash\npdm run test -n auto -m \"not integration\"\n```\n\n### Code Quality\n```bash\n# Run linting (ruff-format + codespell + mypy)\npdm run lint\n```\n\n### Documentation\n```bash\n# Serve documentation locally\npdm run doc\n```\n\n### Contribution Guidelines\n\nRefer to [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Important Files\n\n- `pyproject.toml`: Project configuration and dependencies\n- `src/pdm/core.py`: Main application entry point and command registration\n- `src/pdm/project/__init__.py`: Project class managing project state\n- `src/pdm/cli/commands/base.py`: Base command class for all CLI commands\n- `.pre-commit-config.yaml`: Code quality hooks (ruff, mypy, codespell)\n\n## Common Development Tasks\n\n### Adding a New Command\n1. Create new file in `src/pdm/cli/commands/`\n2. Inherit from `BaseCommand`\n3. Register in `src/pdm/core.py`\n\n### Debugging Resolution Issues\n- Set `PDM_DEBUG=1` environment variable for verbose output\n- Check `pdm.lock` for resolved versions\n- Use `pdm lock --check` to verify lock file\n\n### Working with Lock Files\n\nPDM uses its own lock file format (`pdm.lock`) that includes:\n- Exact versions with hashes\n- Environment markers\n- Cross-platform support\n- Group dependencies\n\n### Update dependencies\n\n```bash\n# Add a new dependency to default group\npdm add <package_name>\n\n# Update all dependencies\npdm update\n\n# Remove a dependency\npdm remove <package_name>\n\n# Add a new dependency to given group\npdm add <package_name> --group <group_name>\n```\n\n## Architecture Patterns\n\n- **Dependency Injection**: Core class passed to commands\n- **Signal System**: Event-driven architecture for plugins\n- **Repository Pattern**: Abstract repository interface for package sources\n- **Strategy Pattern**: Different environment backends (venv, conda, etc.)\n- **Chain of Responsibility**: Middleware system for HTTP client\n","category":"root","tokens":901}]}