* (Windows) Implement support for resolving executable's true location
when launched via a symbolic link. (:issue:`8300`)
* Implement an option to explicitly specify the bytecode optimization level
for collected python code, independent of the optimization level in the
python process under which PyInstaller is running. At the .spec file level,
this is controlled by optional ``optimize`` argument in the ``Analysis``
constructor. At the CLI level, this is controlled by new
:option:`--optimize` command-line option, which sets the ``optimize``
argument for ``Analysis`` as well as :ref:`interpreter run-time options
<specifying python interpreter options>` in the generated spec file.
See :ref:`bytecode optimization level` for details. (:issue:`8252`)
Bugfix
* (macOS) Explicitly convert the value of ``version`` argument to ``BUNDLE``
into a string, in order to mitigate cases when user accidentally enters
an integer or a float. The version value ends up being written to
``Info.plist`` as the ``CFBundleShortVersionString`` entry, and if this
entry is not of a string type (for example, is an integer), the
generated .app bundle crashes at start. (:issue:`4466`)
* (Windows) Avoid trying to import ``PySimpleGUI`` in the subprocess that
analyzes dynamic library search modifications made by packages prior to
the binary dependency analysis. When imported for the first time,
``PySimpleGUI`` 5.x displays a "first-run" dialog, which poses a problem
for unattended PyInstaller builds running in a clean environment, for
example, in a CI pipeline. (:issue:`8396`)
* (Windows) Implement a work-around for running PyInstaller under python
process with ``-OO`` (or ``PYTHONOPTIMIZE=2``) with ``cffi`` installed.
We now temporarily disable import of ``cffi`` while importing
``pywin32-ctypes`` in ``PyInstaller.compat`` to ensure that ``ctypes``
backend is always used, as the ``cffi`` backend uses ``pycparser`` and
requires docstrings, which makes it incompatible with the ``-OO`` mode.
(:issue:`6345`)
Hooks
~~~~~
* Update ``PySide6.Qt3DRender`` hook for compatibility with ``PySide6``
6.7.0 (add hidden import for ``PySide6.QtOpenGL`` module). (:issue:`8404`)
* Update ``scipy.special._ufuncs`` hook for compatibility with SciPy 1.13.0
(add ``scipy.special._cdflib`` to hidden imports). (:issue:`8394`)
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/5d7a0449ecea400eccbbb30d5fcef27d72f8f75d"><code>5d7a044</code></a> Release v6.6.0. [skip ci]</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/edf1694e2d06866fe027439aaba3d62dba5f2b86"><code>edf1694</code></a> hooks: PySide6.Qt3DRender: add hiddenimport of PySide6.QtOpenGL</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/1964b413378e6da9d499a476304c2165925dbef5"><code>1964b41</code></a> tests: bump PySide6 to 6.7.0</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/4f194dc2411b9e1b33d8673ea6c4f95df4af6884"><code>4f194dc</code></a> building: avoid importing PySimpleGUI prior to binary dep. analysis</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/5fe069177c9fda8ae7e362cdaa5b39c5b64fe4f5"><code>5fe0691</code></a> hooks: update scipy.special._ufuncs hook for SciPy >= 1.13.0</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/6dbafa1f2f7b1c2f6c8c49242367514a986fa511"><code>6dbafa1</code></a> Tests: Requirements: Scheduled weekly dependency update for week 14 (<a href="https://redirect.github.com/pyinstaller/pyinstaller/issues/8394">#8394</a>)</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/3fd6f5d1d5e162b28845a9e325e0d2474262969b"><code>3fd6f5d</code></a> doc: extend documentation on temporary directory for onefile programs</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/e8dac24c866e0cc3284ca44b716b5e6f2fb04284"><code>e8dac24</code></a> tests: add a test for bootloader fully resolving symlinked executable</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/3b219631c1f81db3fe197d1e8d80660d8654a82b"><code>3b21963</code></a> bootloader: remove extended path indicator from resolved symbolic link</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/ae69efa818e7ff92c1a889d9e56f30cca0c1eac4"><code>ae69efa</code></a> bootloader: resolve symlinks in Windows codepath of pyi_path_resolve</li>
<li>Additional commits viewable in <a href="https://github.com/pyinstaller/pyinstaller/compare/v6.5.0...v6.6.0">compare view</a></li>
</ul>
</details>
<br />
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 show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@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)
Updates the requirements on pyinstaller to permit the latest version.
Release notes
Sourced from pyinstaller's releases.
Changelog
Sourced from pyinstaller's changelog.