Talks - Ofek Lev: Hatch: The only tool you need

Learn how Hatch is revolutionizing Python development as an all-in-one tool for environment management, building, testing, and publishing - replacing multiple utilities.

Key takeaways
  • Hatch is a modern Python project manager that aims to be an all-in-one tool, replacing multiple tools like pyenv, Twine, and versioning utilities

  • Key features include:

    • Environment management with inheritance and matrix support
    • Built-in build backend (hatchling)
    • Script running and task automation
    • Dependency management
    • Package publishing to PyPI
    • Python version management
  • Provides good defaults out of the box while remaining highly configurable through plugins

  • Environments are a core feature:

    • Can be virtual environments or container-based
    • Support matrices for testing across Python versions
    • Allow inheritance for shared configurations
    • Can include custom dependencies and settings
  • Build system capabilities:

    • Supports wheel and sdist formats
    • Handles static metadata
    • Includes hooks for customization
    • Compatible with private repos
  • Developer workflow features:

    • Script running with environment activation
    • Coverage testing integration
    • Static analysis tools support
    • Development mode (editable installs)
    • Version management
  • VS Code integration and workspace support (coming soon) for managing multiple related projects

  • Uses pyproject.toml for configuration with optional additional config in hatch.toml

  • Performance improvements including UV integration for faster dependency resolution

  • Extensive plugin system allows extending functionality for custom build targets, environments, and tools