# Changelog ## v1.0.1 (May 11, 2026) - Include docs and tests in sdist again (#322) - Fix long path issue on Windows (#321) - Fix date in changelog (#324) - Use `os.path.abspath()` instead of `Path.resolve()` for performance (#326) ## v1.0.0 (Mar 28, 2026) - Drop support for Python 3.9, 3.8, and 3.7 (#305, #242, #206) - Add support and Python 3.13 and 3.14 (#201, #282) - Add `--overwrite-existing` CLI option (#216) - Add `--validate-record` CLI option (#161) - Support installing multiple wheels (#203) - Handle invalid hash algorithms (#179) - Stream-based validation instead of in-memory (#98) - Add validate_stream methods (#99) - Consolidate and refine validation APIs (#108, #111) - Sort entries before writing RECORD (#245) - Do not install __pycache__ from wheels (#307) - Fix a path traversal bug (#317) - Update launcher scripts and Windows behavior (#212, #181) - Fix Windows relpath bug (#286) - Migrate to dataclasses (#200) - Use cached_property for memoization (#243) - Refactor installer.scripts (#239) - Decouple test modules (#104) - Avoid cross-module imports from .utils (#102) - Lazy imports for performance (#226) - Complete type annotations and enforce strict mypy (#173) - Deprecate RecordEntry.validate (#186) - Fix documentation typos and grammar (#309, #210) - Improve docstrings and internal documentation (#100) ## v0.7.0 (Mar 17, 2023) - Improve handling of non-normalized `.dist-info` folders (#168) - Explicitly use `policy=compat32` (#163) - Normalize `RECORD` file paths when parsing (#152) - Search wheels for `.dist-info` directories (#137) - Separate validation of `RECORD` (#147, #167) ## v0.6.0 (Dec 7, 2022) - Add support for Python 3.11 (#154) - Encode hashes in `RECORD` files correctly (#141) - Add `py.typed` marker file (#138) - Implement `--prefix` option (#103) - Fix the unbound `is_executable` (#115) - Construct `RECORD` file using `csv.writer` (#118) - Move away from `import installer.xyz` style imports (#110) - Improve existing documentation content (typos, formatting) (#109) ## v0.5.1 (Mar 11, 2022) - Change all names in `installer.__main__` to be underscore prefixed. - Update project URL after move to the `pypa` organisation. - Rewrite imports to be compatible with `vendoring`. ## v0.5.0 (Feb 16, 2022) - Add a CLI, to install a wheel into the currently-running Python. - Convert Windows paths to `/` separated when writing `RECORD`. - Drop support for Python 3.6 and lower. - Preserve the executable bit from wheels being installed. - Write records in `RECORD` with relative paths. - Improve API documentation. ## v0.4.0 (Oct 13, 2021) - Pass schemes into {any}`WheelDestination.finalize_installation`. ## v0.3.0 (Oct 11, 2021) - Add support for ARM 64 executables on Windows. - Improve handling of wheels that contain entries for directories. ## v0.2.3 (Jul 29, 2021) - Fix entry point handling in {any}`installer.install`. ## v0.2.2 (May 15, 2021) - Teach {any}`SchemeDictionaryDestination` to create subfolders. ## v0.2.1 (May 15, 2021) - Change {any}`parse_record_file` to yield the elements as a tuple, instead of {any}`RecordEntry` objects. - Implement {any}`WheelFile`, completing the end-to-end wheel installation pipeline. - Generate {any}`RecordEntry` for `RECORD` file in the {any}`installer.install`, instead of requiring every `WheelDestination` implementation to do the exact same thing. ## v0.2.0 (May 3, 2021) - Initial release. --- Thank you to [Dan Ryan] and [Tzu-ping Chung] for the project name on PyPI. The PyPI releases before 0.2.0 come from and have been [yanked]. [dan ryan]: https://github.com/techalchemy [tzu-ping chung]: https://github.com/uranusjr [yanked]: https://www.python.org/dev/peps/pep-0592/#abstract