* Add a work-around for pure-python modules that do not specify encoding via
:pep:`263` encoding header but contain non-ASCII characters in local
(non-UTF8) encoding. When such characters are present only in code comments,
python still loads and runs the module, but attempting to retrieve its source
code via the loader's ``get_source()`` method results in a
:class:`UnicodeDecodeError`, which interrupts the analysis process. The error
is now caught and a fall-back codepath attempts to retrieve the source code as
raw data to avoid encoding issues. (:issue:`7622`)
Bugfix
* (Windows) Avoid writing collected binaries to binary cache unless
they need to be processed (i.e., only if binary stripping or ``upx``
processing is enabled). (:issue:`7595`)
* Fix a regression in bootloader that caused crash in onefile executables
when encountering a duplicated entry in the PKG/CArchive and the
``PYINSTALLER_STRICT_UNPACK_MODE`` environment variable not being set.
(:issue:`7613`)
Deprecations
</code></pre>
<ul>
<li>The <code>TOC</code> class is now deprecated; use a plain <code>list</code> with the same
three-element tuples instead. PyInstaller now performs explicit
normalization (i.e., entry de-duplication) of the TOC lists passed
to the build targets (e.g., <code>PYZ</code>, <code>EXE</code>, <code>COLLECT</code>) during their
instantiation. (:issue:<code>7615</code>)</li>
</ul>
<p>Bootloader</p>
<pre><code>
* Fix bootloader building with old versions of ``gcc`` that do not
support the ``-Wno-error=unused-but-set-variable`` compiler flag
(e.g., ``gcc`` v4.4.3). (:issue:`7592`)
Documentation
</code></pre>
<ul>
<li>Update the documentation on TOC lists and <code>Tree</code> class to reflect the</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/413cce49ff28d87fad4472f4953489226ec90c84"><code>413cce4</code></a> Release v5.11.0. [skip ci]</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/75f86ee17da619d4b138b1ee66eda78579d51122"><code>75f86ee</code></a> hookutils: collect_delvewheel_libs_directory: collect .load_order file</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/e4ec2853ef9d890b7b124193338c2d4321117087"><code>e4ec285</code></a> modulegraph: add a work-around for modules with invalid characters (<a href="https://redirect.github.com/pyinstaller/pyinstaller/issues/7622">#7622</a>)</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/1c867390f670a6d89e26c7a87cc8f641c3eff2a8"><code>1c86739</code></a> building: ensure TOC de-duplication when dest_name contains pardir loops</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/bf46d025f70b19404bfe26cc03d57ce8c97113fa"><code>bf46d02</code></a> docs: update documentation on TOC lists</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/6ed6b50cf3d88e06889b6cd1716c8d8e7b958029"><code>6ed6b50</code></a> building: add deprecation warning to TOC class</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/ad5d1c70beeddb86d3945cf5a661a40a562a597d"><code>ad5d1c7</code></a> tests: add basic tests for the new TOC normalization helpers</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/2aa726cc5d6d610b0133fe9f88759e235c1ca948"><code>2aa726c</code></a> building: EXE: remove the work-around for merging PYZ.dependencies</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/02580411f4412619fb435198f69e27c91ffd53bb"><code>0258041</code></a> building: implement TOC list normalization helpers</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/91ba5c4c5011921999c389b38ebfe879343e6e1e"><code>91ba5c4</code></a> building: splash: fix detection of tkinter usage</li>
<li>Additional commits viewable in <a href="https://github.com/pyinstaller/pyinstaller/compare/v5.10.1...v5.11.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyinstaller&package-manager=pip&previous-version=5.10.1&new-version=5.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps pyinstaller from 5.10.1 to 5.11.0.
Release notes
Sourced from pyinstaller's releases.
Changelog
Sourced from pyinstaller's changelog.