# System map — pypa/hatch

> Canonical page: https://codevetter.com/unpack/hatch/system-map

# System map — pypa/hatch

Scanned commit 7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0 (2026-09-20). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The repository ships a project-management frontend and an independently packaged build backend. Hatch coordinates configuration, environments, subprocesses, and publishing, while Hatchling owns distribution construction and packaging metadata. Runtime state resides in configured filesystem locations, and integrations include installers, package indices, keyring, and downloaded Python distributions. Release workflows produce Python packages, standalone executables, installers, and documentation.
- The Hatch distribution requires Python >=3.10 and exposes hatch = hatch.cli:main; src/hatch/__main__.py delegates module execution to that same main function. — [pyproject.toml#L5-L11](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/pyproject.toml#L5-L11) [pyproject.toml#L71-L84](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/pyproject.toml#L71-L84) [src/hatch/__main__.py#L1-L4](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/__main__.py#L1-L4)
- Hatchling is a separate distribution bootstrapped through hatchling.ouroboros with backend-path=['src']; it exposes hatchling.cli:hatchling and standard build/editable backend functions. — [backend/pyproject.toml#L1-L13](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/backend/pyproject.toml#L1-L13) [backend/pyproject.toml#L53-L57](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/backend/pyproject.toml#L53-L57) [backend/src/hatchling/build.py#L6-L13](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/backend/src/hatchling/build.py#L6-L13)
- The frontend uses Click command registration and Application(Terminal); the backend CLI uses argparse and dispatches build, dep, metadata, and version handlers. — [src/hatch/cli/__init__.py#L221-L238](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/cli/__init__.py#L221-L238) [src/hatch/cli/application.py#L23-L49](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/cli/application.py#L23-L49) [backend/src/hatchling/cli/__init__.py#L9-L28](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/backend/src/hatchling/cli/__init__.py#L9-L28)
- Project lazily owns PluginManager, ProjectConfig, ProjectMetadata, a selected build environment, and BuildFrontend; get_environment constructs the plugin selected by configuration type. — [src/hatch/project/core.py#L45-L61](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/project/core.py#L45-L61) [src/hatch/project/core.py#L91-L108](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/project/core.py#L91-L108) [src/hatch/project/core.py#L141-L180](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/project/core.py#L141-L180) [src/hatch/project/core.py#L410-L418](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/project/core.py#L410-L418)
- Global configuration defaults to platformdirs' Hatch config.toml; environment hashes use JSON beneath data_dir/env/.metadata, and virtual environments support configured external paths. — [src/hatch/config/user.py#L63-L67](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/config/user.py#L63-L67) [src/hatch/project/core.py#L106-L108](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/project/core.py#L106-L108) [src/hatch/project/env.py#L438-L455](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/project/env.py#L438-L455) [src/hatch/env/virtual.py#L58-L77](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/env/virtual.py#L58-L77)
- VirtualEnvironment selects VirtualEnv or UVVirtualEnv, PackageIndex uses HTTPX2, AuthenticationCredentials uses keyring, and PythonManager downloads and installs interpreter archives. — [src/hatch/env/virtual.py#L87-L101](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/env/virtual.py#L87-L101) [src/hatch/index/core.py#L50-L62](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/index/core.py#L50-L62) [src/hatch/publish/auth.py#L39-L58](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/publish/auth.py#L39-L58) [src/hatch/python/core.py#L81-L119](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/src/hatch/python/core.py#L81-L119)
- Repository workflows use hatch test, hatch fmt --check, and hatch run types:check; hatch.toml defines backend builds, coverage reporting, and strict documentation build/link checks. — [.github/workflows/test.yml#L46-L53](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/.github/workflows/test.yml#L46-L53) [hatch.toml#L22-L40](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/hatch.toml#L22-L40) [hatch.toml#L78-L100](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/hatch.toml#L78-L100) [docs/community/contributing.md#L29-L60](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/docs/community/contributing.md#L29-L60)
- Hatch release automation builds wheels/sdists, PyApp binaries, Windows installers, and signed/notarized macOS packaging; Hatchling releases publish backend/dist, while documentation workflows publish GitHub Pages. — [.github/workflows/build-hatch.yml#L74-L103](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/.github/workflows/build-hatch.yml#L74-L103) [.github/workflows/build-hatch.yml#L283-L378](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/.github/workflows/build-hatch.yml#L283-L378) [.github/workflows/build-hatchling.yml#L34-L65](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/.github/workflows/build-hatchling.yml#L34-L65) [.github/workflows/docs-release.yml#L70-L92](https://github.com/pypa/hatch/blob/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0/.github/workflows/docs-release.yml#L70-L92)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
