History¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Hatch¶
Unreleased¶
1.0.0 - 2022-04-28¶
This is the first stable release of Hatch v1, a complete rewrite. Enjoy!
1.0.0rc18 - 2022-04-28¶
Changed:
- Moved the version scheme plugin interface to Hatchling for the ability to use version management without requiring a heavy CLI installation
Added:
- Add
dep show requirements
command - Automatically run
version
commands in a build environment if dependencies are unavailable - Use
tomllib
on Python 3.11+ - Bump the minimum supported version of Hatchling
1.0.0rc17 - 2022-04-18¶
Changed:
- Rename environment collector API method
get_environment_config
toget_initial_config
and do not make it required
Added:
- Add the
env run
command as a more advanced form of therun
command - Add
--json
flag to theenv show
command - Add features and scripts to the
env show
command - Allow environment selection for the
env show
command - Add environment collector API methods
finalize_config
andfinalize_environments
- Add more conditions for environment option overrides
- Allow for environment option overrides of unknown/untyped options
- Add method to the environment interface for getting options from environment variables
- Allow selecting an explicit path for
virtual
environments - Add
detached
option to environments - Expose helper for lazily loading modules
- Normalize the names of environment features to adhere to the newly-introduced PEP 685
- Bump the minimum supported version of Hatchling
- Upgrade
tomlkit
for better formatting
1.0.0rc16 - 2022-03-20¶
Added:
- Add ability to select specific environments for command execution of matrices based on variables
- Support a
HATCH_PYTHON
environment variable that, for example, environments may use before defaulting to the Python executable Hatch is running on - Also use the
SHELL
environment variable fallback on Windows systems - Update project URLs metadata
1.0.0rc15 - 2022-03-18¶
Added:
- Bump the minimum supported version of Hatchling
1.0.0rc14 - 2022-03-06¶
Added:
- When building with no targets defined in config, default to
-t sdist -t wheel
rather than raising an error - Improve the output format of the
env show
command - Add
description
option to environments - Add
extra-dependencies
option to environments - Upgrade
actions/setup-python
action of the CI option for new projects tov3
- Bump the minimum supported version of Hatchling
- Update project metadata
1.0.0rc13 - 2022-02-13¶
Added:
- Update dependencies
Fixed:
- Remove the forced use of embedded seed packages for
virtual
environments since distributions like Debian and Fedora do not use those
1.0.0rc12 - 2022-02-05¶
Added:
- Switch project to a
src
-layout structure - Update dependencies
1.0.0rc11 - 2022-01-23¶
Changed:
- Change environment storage configuration to allow for exact paths per type of environment
- Add new required method
find
to the environment interface
Added:
- Add more informative help text for the arguments of the
run
command
1.0.0rc10 - 2022-01-19¶
Fixed:
- Handle edge case for displaying text while showing a status message
1.0.0rc9 - 2022-01-18¶
Added:
- Add ability to set the non-preview variant of versions
- Improve collection of information about Python interpreters within environments
- Update dependencies
Fixed:
- Relax restriction on the contents of
build-system.requires
- The
version
command now properly handles statically defined versions - Fix typo preventing the Python executable fallback for environments when there is no
python
alongPATH
1.0.0rc8 - 2022-01-08¶
Added:
- Support Python 3.7
1.0.0rc7 - 2022-01-08¶
Added:
- Bump the minimum supported version of Hatchling
1rc6 - 2022-01-06¶
Added:
- Bump the minimum supported version of Hatchling
1rc5 - 2022-01-02¶
Fixed:
- Reduce default verbosity of config file creation for new users
1rc4 - 2022-01-01¶
Added:
- Bump the minimum supported version of Hatchling
Fixed:
- Ensure Python subprocesses use unbuffered output to display real live progress
- Ensure that build environments honor environment variable filters
1rc3 - 2021-12-30¶
Added:
- Bump the minimum supported version of Hatchling
1rc2 - 2021-12-29¶
This is the first release candidate for Hatch v1, a complete rewrite.
Hatchling¶
Unreleased¶
0.24.0 - 2022-04-28¶
Added:
- Change the
Generator
name of wheel metadata fromhatch
tohatchling
to be more precise
0.23.0 - 2022-04-28¶
Added:
- Add a
version
command - Add option to force include files from arbitrary paths
- Add option to the
wheel
builder to ship files that will be installed globally - Add option to the
wheel
builder to ship extra metadata files - Support symlinks
- Upgrade
editables
dependency - Use
tomllib
on Python 3.11+
Fixed:
- Always include the root
hatch.toml
config file, if present, for source distributions
0.22.0 - 2022-03-26¶
Added:
- Change the default dev mode mechanism to
pth
files for better compatibility with static analysis tools & IDEs (see microsoft/pylance-release#2114)
Fixed:
- Fix downstream test suite to avoid versions of
setuptools
with support for PEP 621 without PEP 639
0.21.1 - 2022-03-22¶
Fixed:
- Relax normalization of dependency definitions
- Update project URLs metadata
0.21.0 - 2022-03-17¶
Changed:
- In order to simplify configuration, metadata hooks are now configured under
tool.hatch.metadata.hooks
rather than directly undertool.hatch.metadata
Added:
- Add option to allow the use of direct references for dependencies
- Make the default pattern for the
regex
version source case insensitive - Deduplicate and normalize dependency definitions before writing metadata for wheels and source distributions
- Normalize the names of optional dependency groups to adhere to the newly-introduced PEP 685
0.20.1 - 2022-03-07¶
Fixed:
- Allow test execution from within Hatchling's source distribution
0.20.0 - 2022-03-07¶
Added:
- Relax dependency constraints
0.19.0 - 2022-03-06¶
Added:
- Add option for builds to declare dependence on a project's runtime dependencies
Fixed:
- Disallow direct references for dependency definitions
0.18.0 - 2022-02-27¶
Added:
- Add ability to rewrite the distributed path of files
0.17.0 - 2022-02-26¶
Added:
- Always include any root
.gitignore
file for source distributions so recursive builds are guaranteed to be identical
Fixed:
- Fix metadata handling of non-ASCII characters in README files for source distributions on Python 2
0.16.0 - 2022-02-26¶
Added:
- Always include the default build script location for source distributions
- Automatically remove fields from
project.dynamic
that were added by metadata hooks
0.15.0 - 2022-02-23¶
Added:
- Fail builds early for invalid project metadata
- When building with no targets defined in config, default to
-t sdist -t wheel
rather than raising an error - Update project metadata
0.14.0 - 2022-02-16¶
Added:
- Add
code
version source that can load arbitrary Python code
Fixed:
- Also exclude compiled Python extensions by default for cases where there is no
.gitignore
0.13.0 - 2022-02-16¶
Added:
- Exclude Python byte code files by default for cases where there is no Git checkout and therefore no
.gitignore
file providing default exclusion patterns
Fixed:
- Fix metadata handling of non-ASCII characters in README files on Python 2
0.12.0 - 2022-02-13¶
Added:
- Add option to exclude non-artifact files that do not reside within a Python package
0.11.3 - 2022-02-13¶
Fixed:
- Replace the build data
zip_safe
withpure_python
0.11.2 - 2022-02-05¶
Fixed:
- Fix custom hooks on Python 2
0.11.1 - 2022-02-05¶
Fixed:
- Change the default location of custom build scripts from
build.py
tohatch_build.py
so the packaging tool build can be used (if desired) at the project root
0.11.0 - 2022-02-04¶
Added:
- Switch project to a
src
-layout structure - Ship downstream tests with
hatchling
source distributions
Fixed:
- Ship license with
hatchling
0.10.0 - 2022-01-20¶
Added:
- Support
text/plain
content type forproject.readme
metadata
0.9.0 - 2022-01-18¶
Added:
- Build hooks now have access to project metadata
Fixed:
- Improve check for satisfied dependencies
0.8.2 - 2022-01-16¶
Fixed:
- Fix plugins on Python 2
0.8.1 - 2022-01-14¶
Fixed:
- Update project metadata
0.8.0 - 2022-01-09¶
Added:
- The
regex
version source now supports the^
/$
multi-line characters by default
Fixed:
- Fix greedy matching in the default pattern for the
regex
version source
0.7.0 - 2022-01-08¶
Added:
- Improve default file selection to account for
src
-layout structures and namespaced packages
Fixed:
- The normalization of project versions no longer strips trailing zero release segments
0.6 - 2022-01-06¶
Added:
- Add ability to conditionally execute build hooks
Fixed:
- Disregard hook dependencies when building without hooks
0.5 - 2022-01-01¶
Added:
- Add option to clean build hook artifacts after each build
Fixed:
- Properly include artifacts like C extensions that are built outside of package directories (with the intention of being placed directly inside
site-packages
) for projects with asrc
-layout structure - For wheels, the ordering of generated
.dist-info
files now matches the ordering of files included from the local file system
0.4 - 2021-12-30¶
Changed:
- In order to simplify configuration, build file selection options (
include
,exclude
, etc.) can no longer be defined as comma separated strings.
Added:
- Refactor builder config handling into its own class
- Allow build hooks to access builder configuration
0.3.1 - 2021-12-30¶
Fixed:
- Ignore non-Python files for editable wheels
0.3 - 2021-12-29¶
This is the initial public release of the Hatchling build system. Support for Python 2 will be dropped in version 1.