Skip to content

0.4.5

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 08:38
10d54df

Features

  • Windows and macOS apps can now use conda to manage their Python environments. (#596)
  • Windows, macOS, iOS and Linux System apps can now use uv to manage their Python environments. (#2231)
  • Linux system packages (.deb, .rpm and .pkg.tar.zst) can now be signed with a GPG signing identity, using the --identity option to briefcase package. Signing is not currently supported when building with Docker. (#2396)
  • MSI installers can now provide the option to create a desktop shortcut using the [create_desktop_shortcut][] option. (#2914)
  • You can now set the BRIEFCASE_ALLOW_EMULATION environment variable to allow Briefcase to run when using an x86_64 Python executable on ARM64 hardware. (#2957)
  • Apps now use an isolated environment when installing requirements. This removes a source of error where the environment running Briefcase could have an impact the packages installed into a standalone app. (#2967)
  • Downloads of pinned third-party tools (such as the Java JDK, and the Android SDK command-line tools) and binary artefacts used by Briefcase (such as the support packages and stub binaries) can now be verified against a known-good hash, so corrupted or tampered downloads will be identified. (#2980)
  • Templates cloned by Briefcase are now verified against a known-good commit hash, protecting against a tampered or unexpectedly moved template branch tag. User specified templates (or template branch configurations) can provide a hash for verification purposes. (#2981)
  • Windows MSI install and uninstall options can now be limited to current-user or all-user installs. (#2986)
  • briefcase run iOS now automatically selects a recent "entry level" iPhone simulator (e.g., an iPhone SE, or iPhone 16e) on the most recent available iOS version if -d/--device isn't provided. Use -d auto to request this behavior explicitly, or -d with no value to see the full list of available simulators as before. (#3031)
  • briefcase run android now automatically selects a default Android emulator, creating an emulator if no default exists. Use -d auto to request this behavior explicitly, or -d with no value to see the full list of available simulators as before. (#3031)
  • Support for Python 3.15 was added. (#3035)
  • Templates are now able to identify if they have been generated by a 32-bit Python build. This may be useful on older and low-power Linux hardware. (#3043)

Bugfixes

  • Installing an APK now gives a specific, actionable error message when installation fails due to the existing app being signed with a different key, or because a newer version is already installed on the device. (#1362)
  • Windows apps packaged as ZIP bundles are now safe from the "Mark of the Web". (#1890)
  • When a non-streamed subprocess call fails, any output captured on the exception is now written to the log. (#1918)
  • New PySide6 projects now include an optional Flatpak module snippet for the Kerberos libraries required by QtWebEngineWidgets. (#2182)
  • When the Briefcase stub binary starts the Python interpreter, default Python signal handlers are now correctly installed. This means Briefcase-packaged apps will no longer terminate when sent a SIGPIPE, SIGXFZ or SIGXFSZ signal (matching the default behavior of a Python interpreter). (#3013)
  • Projects created by the new project wizard no longer generate an empty resources folder. (#3015)
  • The project wizard now generates a valid SPDX identifier for a project with a "Proprietary" or "Other" license. (#3016)
  • The end-of-app life cycle for a macOS and iOS application now guarantees that the embedded Python interpreter is not finalized before Objective C code has had a chance to auto-release any objects that might be under management. This could lead to segmentation faults on application exit, especially when an Objective C object was orphaned and in a cyclical reference with a Python object. (#3026)
  • Windows MSI installers now uses "(App name) Installation" as the title for all pages of the installation wizard, and "(App name) Uninstallation" as the title for all pages of the uninstallation wizard. (#3027)

Backward Incompatible Changes

  • Windows apps now enforce the use of binary artefacts when installing Python dependencies. If you have a dependency that is only available as a source tarball, ask the upstream maintainer to publish a wheel on PyPI; alternatively, you can build a wheel locally (using pip wheel), and then add the directory that contains the wheel to your requirements using requirement_installer_args. (#2967)
  • Built-in support for PyGame has been removed. PyGame CE is still supported through the Briefcase plugin provided by the PyGame CE project. (#3029)
  • Python 3.10 is no longer supported. (#3035)

Documentation

  • Requirements for iOS icon formats have been clarified. (#2942)

Misc