unstale

pypi / hatch

hatch

What changed in hatch 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

1 breaking6 new APIs and options4 behavior and defaults2 tooling12 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

hatch 125 changes

Breaking changes 1

  • Prerelease distributions are no longer automatically selected when falling back to the latest compatible version, but remain installable when explicitly requested.

    1.18.0release notes

New APIs and options 6

  • The --all/-a flag builds the workspace root and every member defined by the selected environment, consolidating artifacts in the root dist directory by default; a root without a project table is skipped.

    1.18.0release notes

  • Reports what each source redirects.

    1.18.0release notes

  • Set this environment variable to disable sources.

    1.18.0release notes

  • Pass --force to allow an explicit version downgrade.

    1.18.0release notes

  • Add a sources environment option to redirect dependencies at install time without altering published metadata; sources can target local paths, Git repositories, URLs, alternate indexes, or workspace members.

    1.18.0release notes

  • This version specifier set is enforced against the running Hatch version by commands that read project metadata.

    1.18.0release notes

Behavior and default changes 4

  • Default CPython distributions are upgraded to the 20260807 release.

    1.18.0release notes

  • The version command can bump statically defined project.version values and update pyproject.toml in place.

    1.18.0release notes

  • Python commands and the environment python option support free-threaded distribution names such as 3.13t and 3.14t without requiring HATCH_PYTHON_VARIANT_GIL.

    1.18.0release notes

  • The top-level sources table acts as an alias for the default environment, and environments inherit sources entry by entry.

    1.18.0release notes

Tooling 2

  • Internal dependency installation no longer relies on pip and uses uv instead.

    1.18.0release notes

  • Hatch supports managing Python 3.15 distributions, currently 3.15.0rc1.

    1.18.0release notes

Fixes and other changes 12

  • Consolidated resolution fixes regressions that could drop or inconsistently resolve environment and project extras, and ensures undefined features are always validated.

    1.18.1release notes

  • Hyphens in plugin names are normalized when building environment option variable names, so options for hyphenated plugins resolve to the correct variable.

    1.18.1release notes

  • Context formatting is applied to the lock-filename environment option, resolving fields such as {env_name} and {matrix:...} when computing the lock file path.

    1.18.1release notes

  • Environment creation no longer crashes when a metadata hook exists but is not installed in the hatch CLI environment.

    1.18.0release notes

  • Environment creation now selects the distribution matching Hatch's running interpreter, rather than silently installing a GIL-enabled distribution.

    1.18.0release notes

  • Commands run through hatch run can again be interrupted with Ctrl-C because the parent process's ignored SIGINT is no longer inherited by the child.

    1.18.0release notes

  • Stale coverage data is erased before tests run with coverage.

    1.18.0release notes

  • The generated Pyrefly config is valid on Windows; backslashes in absolute paths are no longer interpreted as TOML escape sequences.

    1.18.0release notes

  • Environment dependency extras are no longer dropped when a metadata hook is configured.

    1.17.1release notes

  • Hatch no longer injects a Ruff extend key when ruff.toml already contains one.

    1.17.1release notes

  • The uv locker passes --no-header so generated lockfiles are deterministic.

    1.17.1release notes

  • Workspace-member extras are resolved from the member's own metadata.

    1.17.1release notes