While other language ecosystems have a streamlined workflow that involves a single tool like Rust's Cargo and JavaScript's npm, maintaining Python projects has historically involved learning and using an ever-growing set of tools: packaging: distutils, setuptools, flit dependency management: pip, pip-tools, poetry Python management: pyenv, Homebrew, Windows store environments: virtualenv, tox, nox versioning: pbr, setuptools_scm, bump2version, versioneer builds: pip, build publishing: twine ... This talk explains how Hatch can be that unified tool for Python. Audience Programmers at any level that wish to simplify their development experience. Level Any Objectives Attendees will learn how to manage the entire lifecycle of a project with Hatch from creation to publishing. Outline Intro (3 minutes) brief history why rewrite status/current users Project setup (2 minutes) installation porting setuptools-based projects creating new projects, with options Python management (1 minute) Packaging (6 minutes) briefly show pyproject.toml metadata build targets metadata hook plugins file inclusion defaults benefits vs setuptools config VCS support dev mode build hook plugins Dependencies (2 minutes) commands auto-sync workspaces, monorepos Environments (8 minutes) basic options philosophical difference between tox & nox scripts context formatting matrices overrides environment plugins Static analysis via Ruff (2 minutes) Testing via pytest (2 minutes) Versioning (2 minutes) source plugins bumping Publishing (1 minute) Future (1 minute) extension modules lock files Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/61/2024-05-16T00%3A00%3A40.871535/Hatch_-_The_only_tool_you_need.pptx
Get notified about new features and conference additions.