github beeware/briefcase v0.4.0
0.4.0

5 hours ago

Features

  • When running briefcase dev on Linux, system requirements are now checked before attempting to install Python requirements. (#1137)
  • Development mode now runs apps in an isolated virtual environment, rather than the environment running Briefcase. (#1735)
  • Android apps can now be built and run in debug mode. (#2351)
  • CachyOS is now detected as an "Arch-like" Linux distribution when creating a system package. (#2591)
  • If content in sources and test_sources has duplicated structure, Briefcase will now merge those structures rather than raise an error. (#2636)
  • Post-install scripts for MSI installers now expose an INSTALLER_PATH environment variable. (#2637)
  • The open command now accepts a -a/--app option to allow opening a single app in a multi-app project. (#2651)
  • Android apps can now revoke permissions before startup via --revoke-permission. (#2664)
  • Publication channels are now discovered via entry points, allowing third-party plugins to provide custom briefcase publish channels. (#2687)

Bugfixes

  • Briefcase now accepts PEP 440 requires-python version ranges (e.g., >=3.14,<4.0). (#2604)
  • When using -a/--app, Briefcase now only finalizes the selected app instead of finalizing all apps in the project. (#2654)
  • macOS wheels that are tagged with both universal2 and individual architecture tags are now correctly processed as part of the architecture merging process. (#2690)
  • Briefcase now accepts more version numbers as valid, including leading zeros in version components (e.g., 25.09.2), and accepting all forms of capitalization in number suffixes (e.g., accepting both 1.2RC3 and 1.2rc3). (#2693)
  • Debian packages can now be built for projects that contain an underscore in the app name. Previously, this would raise an error as underscores are not allowed in Debian package names. The Debian package name will be based on the bundle name - that is, the app name, but with underscores replaced with hyphens. (#2699)
  • Linux projects can now install extras on requirements that are specified as a reference to a local source directory. (#2700)

Backward Incompatible Changes

  • Runtime requirements for Debian apps using PySide6 have been simplified. If you have an existing project, it may be possible to simplify your runtime requirements to only include libgl1, libqt6dbus6, libqt6gui6, and libxcb-cursor0. To support Ubuntu 22.04, you will also need to include libxcb-icccm4, libxcb-keysyms1, libxcb-shape0 and libxkbcommon-x11-0. (#2592)
  • Bundle names and identifiers are now normalized to lower case. Bundle identifiers are derived from domain names, so they should always be lower case; Briefcase now enforces this. If you have historically used upper case letters in your bundle identifier or app name, your bundle name will change as a result of this update. (#2699)

Documentation

  • The documentation now contains a comprehensive contribution guide. (#2605)

Misc

Don't miss a new briefcase release

NewReleases is sending notifications on new releases.