Features
- Cookiecutter filters for escaping XML content and attributes have been added. (#2103)
- Briefcase now supports the use of
HISTORY,NEWSandRELEASESas filenames for the change log of a project (in addition toCHANGELOG). It also supports the use of.md,.rstand.txtextensions on those files. (#2116) - It is now possible to ask boolean question using the Console Interface. (#2128)
- The
create,build,packageandupdatecommands can now be run on a single app within a multi-app project by using the-a/--appoption. (#2148) - The Toga app bootstrap now generates apps that use Toga 0.5. (#2193)
- An app can now enforce a minimum supported OS version by defining a
min_os_versionconfiguration item on a per-platform basis. This minimum value will be used on macOS, iOS and Android deployments. (#2233) - The Flatpak runtimes for new projects were updated.
org.gnome.Platformwill now default to 47; andorg.kde.Platformwill now default to 6.9. (#2258) - Android packages are now built using version 19.0 of Android's Command-line Tools; this version will be automatically installed at first use. (#2260)
- When creating a new project with
briefcase new, or converting an existing project withbriefcase convert, Briefcase will now try to infer the author's name and email address from the git configuration. (#2269)
Bugfixes
.pthfiles created by packages installed as dependencies are now correctly processed during application startup on macOS, Windows, Linux and iOS. (#381)- Error handling during JDK upgrades has been improved. (#1520)
- The iOS log filter was improved to hide an message about
getpwuid_rthat can be ignored. (#2163) - New apps using Toga on Linux will impose an upper version pin on PyGObject, limiting that package to
< 3.52.1. This is required to ensure that older Debian-based distributions are supported by default. This pin can be removed if these support for these distributions is not required, as long as some additional changes are made to thesystem_requiresandsystem_runtime_requiresdefinitions. The required changes are included (commented out) as part of the new project template. (#2190) - License names now follow the SPDX License List. (#2270)
Backward Incompatible Changes
- Briefcase can no longer install pure Python macOS packages from a source archive (i.e., a
.tar.gzfile published on PyPI). If a package is pure Python, it must be provided as apy3-none-anywheel. Briefcase's macOS platform documentation contains details on how to provide apy3-none-anywheel when PyPI does not provide one. (#2163) - The
app_packagesfolder now occurs after theappfolder in the package resolution path on Windows, Linux, macOS and iOS. This will result in subtle changes in behavior if you have packages defined in yoursourcesthat have the same name as packages installed from yourrequires. (#2204) - The iOS app template no longer uses the
iphoneos_deployment_targetsetting to configure the minimum OS version. This variable was undocumented; you should modify any usage of this variable to the newly added (and documented)min_os_versionsetting. (#2233) - If you have a PySide6 app deployed to macOS, you must add
min_os_version = "12.0"to your macOS project configuration. As of PySide 6.8.0, PySide6 macOS wheels are tagged with a minimum supported macOS version of 12.0. Previously, Briefcase would install the macOS 12 wheel, but the Briefcase app would declare itself as supporting macOS 11. This would cause errors if the app was run on macOS 11. Briefcase will no longer install macOS wheels that are incompatible with the minimum OS version declared by the app (11.0 by default). The additionalmin_os_versionconfiguration option is now required to allow Briefcase to resolve the installation of PySide6 wheels. (#2240) - Java JDK 17.0.15+6 is now used to package Android apps. Use
briefcase upgrade javato update your Briefcase-installed JDK instance to this version. (#2259) - The
newcommand now uses SPDX identifiers when referring to licenses. If you have been using the-Q license=XXXoption to automate application creation, you will need to modify the value provided to match the SPDX specifier for that license (e.g.,MITinstead ofMIT license, andBSD-3-Clauseinstead ofBSD). (#2270)
Documentation
- A how to guide for command-line apps was added. (#1947)
- Platform notes were added on removing static binary content from iOS and macOS apps. (#2161)
- The macOS and Windows platform documentation has been simplified to remove duplication of content between output formats. (#2162)
Misc
- #1696, #2153, #2155, #2158, #2159, #2160, #2168, #2169, #2170, #2171, #2172, #2174, #2175, #2176, #2177, #2178, #2179, #2184, #2185, #2186, #2196, #2205, #2206, #2207, #2208, #2209, #2210, #2215, #2217, #2218, #2219, #2220, #2221, #2222, #2223, #2237, #2247, #2248, #2249, #2262, #2263, #2264, #2265, #2266, #2267, #2276, #2277, #2278