Py2app

Latest version: v0.28.8

Safety actively analyzes 688746 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 11

2.0a0

------------

This will be a major update to py2app, although I'm currently
primarily focused on cleaning up the code base. At this phase
in development I'm primarily working with Python 3.10 and 3.11,
the code might not work on older versions due to using newish APIs.

* The ``install_requires`` option in setup.py is now
ignored by py2app. Ensure that requirements are installed
before invoking py2app.

* Drop support for Python 3.5 or earlier, including
Python 2.7.

The wheel metadata now contains "python_requires>=3.6",
which means pip will install py2app 0.28 for users of older
version of Python.

* Drop the "prefer_ppc" option, use the "arch" option instead

But see below: py2app no longer ships with stub executables
that target PPC systems.

* Drop the "force_syste_tk" option

The system version of Tcl/Tk is deprecated, and is buggy enough
that it is never a good option to use for Python applications.

* Use the ``install_requires`` keyword in the ``setup()`` call
is deprecated and will be removed in a future version.

* Previous versions would try to ``eval()``
the ``app`` and ``plugin`` keyword arguments, with unspecified
values in the local and global namespaces e.g.:

.. sourcecode:: python

setup(
app="[{ 'script': 'foo.py' }]"
)

This undocumented behaviour was removed.

* 423: The code is now formatted with black.

This is enforced by pre-commit configuration.

* 425: Use pyupgrade to modernize some code patterns

This is enforced by the pre-commit configuration

* Use codespell to avoid common typos.

This is enforced by the pre-commit configuration

* 432: Switch from setuptools to flit for building wheels and sdists

* Add a "maybe_packages" option that lists packages that
should be excluded from the zipfile when they are found
by the dependency checker.

* flake8 status is enforced in the pre-commit configuration

* 426: Remove code that supports Python 3.5 or earlier

* Add 'isort' to pre-commit configuration

* 433: Py2app now only ships with stub executables for
arm64, x86_64 and "Universal 2" (fat binaries with x86_64 and arm64)

Stub executables for PowerPC and 32-bit Intel were removed.

* Code cleanup: Drop all code related to multiple apps or plugins
from py2app, the code was inactive because the configuration parsing
code actively checked for exactly one app or plugin.

* Code cleanup: Drop some deprecated internal functions from
``py2app.util``.

* Extracting the application version from the ``__version__`` attribute
of the main script now actually works.

* Fix ``PythonShortVersion`` key in ``Info.plist`` for Python 3.10 or later

* Changed the (undocumented) entrypoint for resource converters, the
name of the entrypoint should now be the file suffix (without leading
dot).

* Switch from plain prints and distutils.log to using rich for printing
progress information.

* Switch to ``importlib.metadata`` and ``importlib.resources`` from ``pkg_resources``
where possible. This is enforced by a pre-commit check.

* Drop support for ancient versions of Xcode

The code now assumes that the "xcrun" command exists and can be
used to find converter tools, and no longer contains hardcoded
paths for some of the tools for use with Xcode 3.

* Adding type annotations to the code base

This lead to some minor bugfixes (mostly due to typos). The type annotations
will improve over time, and also have some rough edges in recipes due to
missing annations for 3th-party projects.

The annotations are fairly rough at this point, will be cleaned up
during refactoring the code base.

* Parsing of arguments in the setuptools commands was rewritten and can be
more strict, although valid configuration should be accepted just as before.

Known incompatibilities:

- pyapp 0.28 accepted "prescripts" as an alias for "extra_scripts" in a
target definition (e.g. "``setup(app=[{"script": "main.py", "prescripts": [ ...])``").

This is no longer supported and will result in an error.

- Unsupported extra keys in a target definition are now an error.

As a side effect of this it is now possible to specify a target without
an enclosing list, e.g.:

.. sourcecode:: python

setup(
app="script.py",
...
)

* The "py2applet" script has been removed.

* Add reporting on the supported macOS versions and CPU architectures
for a build artefact.

0.28.4

-------------

* Fix incompatibility with Python 3.11

0.28.3

-------------

* 453: Fix crash in py2applet when specifying a directory to
include in the application bundle.

0.28.2

-------------

* 453: Fix crash in py2applet when specifying a directory to
include in the application bundle.

0.28.1

-------------

* 448: Fix typo in qt6 recipe

* 444: Fix issue where the standard output and standard error streams
are set to non-blocking when using py2app.

For some reason the "ibtool" command (part of Xcode) sets these streams
to non-blocking when compiling NIB files. I've added a context manager that
resets the non-blocking status of these streams.

* PR 446: Fix Qt5 recipe for newer versions of PyQt5

PR by kangi.

* 447: Fix error when using ``py2applet --help``

Bug was introduced in the fix for 414

0.28

-----------

.. note::

This is the last version of py2app with compatibility with
Python 2.7. Future versions will require Python 3.6 or later.

* PR 410: Fix typo in NamedTemporyFile call

PR by MAKOMO

* 414 Workaround for autodiscovery in setuptools 61.0

Setuptools 61.0 introduces autodiscovery of distribution
attributes, and that broke py2app. This version introduces
a ``setuptools.finalize_distribution_options`` entrypoint
in py2app that will set the distributions's *name* and
*py_modules* attributes in a way that is compatible with
the main code of py2app when they are not yet set (before
autodiscovery kicks in).

In older versions of py2app buildin an app can fail in two
ways with setuptools 61.0 or later:

- The name of the generated application is not based on
the script name, but some other value.

- Calling ``python setup.py py2app`` results in an error
mentioning ``Multiple top-level modules discovered``.


* PR 418: Add recipe for black

PR by mrclary

* 417: Also include package dist-info for editable installs

* The qt5 and qt6 recipes used dodge logic to detect
if the Qt library itself is inside the python package,
resulting in duplicate copies of Qt.

* 406: Fix incompatibility with python 2.7

py2app 0.24 accidentally broke compatibility with Python 2.7, and
this release fixes this.

This is the last release with Python 2.7 support, the next
release will contain package metadata that ensures it can
only be installed on Python 3.

* 413: Find dist-info in included pythonXX.zip

By default the ``working_set`` of pkg_resources does not contain
distribution information from packages included in zip files, such
as the zipped-up stdlib + site-pakckages in py2app bundles.

Add some monkey patching to apps using ``pkg_resources`` to fix this.

* Fix hard crash in "rtree" recipe when the package contents doesn't
match the recipe expectations.

* 408: Add definition of ``site.PREFIXES``

* 412: Fix incompatibility with setuptools 60.8.1

The setuptools recipe did not recoginize all vendored dependencies
in ``pkg_resources`` and that breaks app bundles that use ``pkg_resoures``.

* PR 388: Add builtin definitions for 'quit' and 'exit' in site.py

PR by mcclary

* PR 388: Set "ENABLE_USER_SITE=False" in site.py

PR by mcclary

* PR 396: Update pygame recipe to remove missing icon

PR by glyph

Page 1 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.