Features
- When running
briefcase devon 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
sourcesandtest_sourceshas duplicated structure, Briefcase will now merge those structures rather than raise an error. (#2636) - Post-install scripts for MSI installers now expose an
INSTALLER_PATHenvironment variable. (#2637) - The
opencommand now accepts a-a/--appoption 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 publishchannels. (#2687)
Bugfixes
- Briefcase now accepts PEP 440
requires-pythonversion 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
universal2and 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 both1.2RC3and1.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, andlibxcb-cursor0. To support Ubuntu 22.04, you will also need to includelibxcb-icccm4,libxcb-keysyms1,libxcb-shape0andlibxkbcommon-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
- #2525, #2596, #2597, #2598, #2599, #2600, #2609, #2610, #2611, #2612, #2613, #2615, #2616, #2617, #2618, #2619, #2622, #2623, #2625, #2627, #2629, #2631, #2633, #2641, #2643, #2644, #2645, #2646, #2647, #2648, #2649, #2650, #2652, #2655, #2657, #2660, #2661, #2662, #2663, #2665, #2666, #2670, #2671, #2672, #2673, #2674, #2675, #2676, #2677, #2679, #2681, #2682, #2683, #2684, #2685, #2686, #2687, #2688, #2704, #2705, #2708, #2710, #2713, #2715, #2716, #2717, #2718, #2719