diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f9b84ca..08d6905 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,5 +38,14 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] + python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13-dev" ] framework: [ "toga", "pyside6", "pygame", "console" ] + + exclude: + # PySide6 hasn't published 3.13 wheels. + - python-version: "3.13-dev" + framework: "pyside6" + + # Pygame hasn't published 3.13 wheels. + - python-version: "3.13-dev" + framework: "pygame" diff --git a/{{ cookiecutter.format }}/briefcase.toml b/{{ cookiecutter.format }}/briefcase.toml index c94ed8a..8f67b89 100644 --- a/{{ cookiecutter.format }}/briefcase.toml +++ b/{{ cookiecutter.format }}/briefcase.toml @@ -1,21 +1,28 @@ # Generated using Python {{ cookiecutter.python_version }} +[briefcase] +# This is the start of the framework-based support package era. +target_version = "0.3.20" + [paths] app_path = "{{ cookiecutter.formal_name }}.app/Contents/Resources/app" app_packages_path = "{{ cookiecutter.formal_name }}.app/Contents/Resources/app_packages" info_plist_path = "{{ cookiecutter.formal_name }}.app/Contents/Info.plist" entitlements_path = "Entitlements.plist" -support_path = "{{ cookiecutter.formal_name }}.app/Contents/Resources/support" +support_path = "{{ cookiecutter.formal_name }}.app/Contents/Frameworks" +runtime_path = "Python.xcframework/macos-arm64_x86_64/Python.framework" {{ { - "3.8": "support_revision = 14", - "3.9": "support_revision = 12", - "3.10": "support_revision = 8", - "3.11": "support_revision = 3", - "3.12": "support_revision = 2", + "3.9": "support_revision = 13", + "3.10": "support_revision = 9", + "3.11": "support_revision = 4", + "3.12": "support_revision = 3", + "3.13": "support_revision = 0", }.get(cookiecutter.python_version|py_tag, "") }} -stub_binary_revision = 8 +stub_binary_revision = 9 cleanup_paths = [ - "{{ cookiecutter.formal_name }}.app/Contents/Resources/support/Python.xcframework", - "{{ cookiecutter.formal_name }}.app/Contents/Resources/support/platform-site", + "{{ cookiecutter.formal_name }}.app/Contents/Frameworks/Python.framework/**/Headers", + "{{ cookiecutter.formal_name }}.app/Contents/Frameworks/Python.framework/**/include", + "{{ cookiecutter.formal_name }}.app/Contents/Frameworks/Python.framework/**/config-*-darwin", + "{{ cookiecutter.formal_name }}.app/Contents/Frameworks/Python.framework/**/pkg-config", ] icon = "{{ cookiecutter.formal_name }}.app/Contents/Resources/{{ cookiecutter.app_name }}.icns" {% for extension, doctype in cookiecutter.document_types.items() -%}