From 6d95306960f085d796fe14aec7889e5802700804 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 4 Sep 2026 08:08:48 +0800 Subject: [PATCH 1/4] Add rumdl configuration. --- .gitignore | 1 + .pre-commit-config.yaml | 5 +++++ CONTRIBUTING.md | 8 ++------ README.md | 10 +++++----- pyproject.toml | 29 +++++++++++++++++++++++++++++ 5 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 pyproject.toml diff --git a/.gitignore b/.gitignore index 0ab9c02..8b48444 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ .python-version .vscode .idea +.rumdl_cache stub/build stub/logs diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7fbcd4d..fa8eb19 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,11 @@ repos: - id: check-case-conflict - id: end-of-file-fixer - id: trailing-whitespace + - repo: https://github.com/rvben/rumdl-pre-commit + rev: v0.2.60 + hooks: + - id: rumdl + - id: rumdl-fmt - repo: https://github.com/zizmorcore/zizmor-pre-commit rev: v1.25.2 hooks: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fb0e74e..3b2f609 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,10 +2,6 @@ BeeWare <3's contributions! -Please be aware that BeeWare operates under a [Code of -Conduct](https://beeware.org/community/behavior/code-of-conduct/). +Please be aware that BeeWare operates under a [Code of Conduct](https://beeware.org/community/behavior/code-of-conduct/). -If you'd like to contribute to Briefcase development, our [contribution -guide](https://briefcase.readthedocs.io/en/latest/how-to/contribute/index.html) details how -to set up a development environment, and other requirements we have as part of our -contribution process. +If you'd like to contribute to Briefcase development, our [contribution guide](https://briefcase.readthedocs.io/en/latest/how-to/contribute/index.html) details how to set up a development environment, and other requirements we have as part of our contribution process. diff --git a/README.md b/README.md index 55a8c79..c2b5360 100644 --- a/README.md +++ b/README.md @@ -10,23 +10,23 @@ However, if you *do* want use this template directly... 1. Install [cookiecutter](https://github.com/cookiecutter/cookiecutter). This is a tool used to bootstrap complex project templates: - ```text + ```console pip install cookiecutter ``` 2. Run `cookiecutter` on the template: - ```text + ```console cookiecutter https://github.com/beeware/briefcase-macOS-Xcode-template ``` - This will ask you for a number of details of your application, including the `name` of your application (which should be a valid PyPI identifier), and the `Formal Name` of your application (the full name you use to describe your app). The remainder of these instructions will assume a `name` of `my-project`, and a formal name of `My Project`. + This will ask you for a number of details of your application, including the name of your application (which should be a valid PyPI identifier), and the formal name of your application (the full name you use to describe your app). The remainder of these instructions will assume a name of `my-project`, and a formal name of `My Project`. 3. [Obtain a Python Apple support package for macOS](https://github.com/beeware/Python-Apple-support), and extract it into the `Xcode/Support` directory generated by the template. 4. Add your code to the template, into the `Xcode/My Project/app`. directory. At the very minimum, you need to have an `app//__main__.py` file that will be run on startup. - If your code has any dependencies, they should be installed into the `Xcode/My Project/app_packages` directory. + If your code has any dependencies, they should be installed into the `Xcode/My Project/app_packages` directory. If you've done this correctly, a project with a formal name of `My Project`, with an app name of `my-project` should have a directory structure that looks something like: @@ -58,4 +58,4 @@ To do something interesting, you'll need to work with the native macOS system li Regardless of whether you use Toga, or you write an application natively, the template project will try to start a Python module matching the name of the `MainModule` property in the `Info.plist` file associated with the project. If that module can't be started, any error raised will be logged, and the Python interpreter will be shut down. All console output and errors are automatically redirected to the macOS system console. -If you have any external library dependencies (like Toga, or anything other third-party library), you should install the library code into the `app_packages` directory. This directory is the same as a `site_packages` directory on a desktop Python install. +If you have any external library dependencies (like Toga, or anything other third-party library), you should install the library code into the `app_packages` directory. This directory is the same as a `site_packages` directory on a desktop Python install. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..13b092d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,29 @@ +[tool.rumdl] +flavor = "mkdocs" +include = ["**/*.md"] +exclude = ["comment.md", "CODE_OF_CONDUCT.md"] +respect-gitignore = true +force-exclude = true + +# Disable rules: +# MD014: Forces commands in codeblocks to show output +# MD042: Empty link - buggy, still flagging on valid MkDocs formatting +# MD052: Reference link not found - buggy, flagging on valis MkDocs links +disable = ["MD014", "MD042", "MD052"] + +[tool.rumdl.MD007] +indent = 4 + +[tool.rumdl.MD013] # Line length +line_length = 999999 # Force reflow to paragraph content to remove linebreaks +reflow = true +reflow_mode = "normalize" + +[tool.rumdl.MD026] # Remove punctuation at the end of headings +punctuation = ",;:" + +[tool.rumdl.MD033] # No inline HTML +allowed_elements = ["nospell",] # pyspelling inline disable tag + +[tool.rumdl.MD046] +style = "fenced" From 0aad6c9048a21e8ede583dfdd9795f10cc50b956 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 4 Sep 2026 16:01:55 +0800 Subject: [PATCH 2/4] Bump support pacakges. --- .github/workflows/ci.yml | 8 ++------ {{ cookiecutter.format }}/briefcase.toml | 10 +++++----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a728436..1016a92 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,9 +42,5 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ] - framework: [ "toga", "pyside6", "pygame", "console" ] - # Pygame hasn't published 3.14 wheels yet. - exclude: - - python-version: "3.14" - framework: pygame + python-version: [ "3.11", "3.12", "3.13", "3.14", "3.15" ] + framework: [ "toga", "pyside6", "console" ] diff --git a/{{ cookiecutter.format }}/briefcase.toml b/{{ cookiecutter.format }}/briefcase.toml index 065c6a8..e258f35 100644 --- a/{{ cookiecutter.format }}/briefcase.toml +++ b/{{ cookiecutter.format }}/briefcase.toml @@ -11,11 +11,11 @@ entitlements_path = "{{ cookiecutter.class_name }}/{{ cookiecutter.app_name }}.e support_path = "Support" {{ { - "3.10": "support_revision = 14", - "3.11": "support_revision = 9", - "3.12": "support_revision = 9", - "3.13": "support_revision = 14", - "3.14": "support_revision = 10", + "3.11": "support_revision = 10", + "3.12": "support_revision = 10", + "3.13": "support_revision = 15", + "3.14": "support_revision = 11", + "3.15": "support_revision = 0", }.get(cookiecutter.python_version|py_tag, "") }} cleanup_paths = [ "Support/Python.xcframework/**/python*/config-*-darwin", From fa10760c87f4eb2ceba2e2fb6b78d5444f14f877 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Sat, 5 Sep 2026 08:07:39 +0800 Subject: [PATCH 3/4] Exclude pyside6 on 3.15. --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1016a92..e422fd6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,3 +44,7 @@ jobs: matrix: python-version: [ "3.11", "3.12", "3.13", "3.14", "3.15" ] framework: [ "toga", "pyside6", "console" ] + exclude: + # PySide6 hasn't published 3.15 wheels yet. + - python-version: "3.15" + framework: pyside6 From 5a4e5e0a0f63a3b505b512ef9f832d0ccc786a93 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Sat, 5 Sep 2026 08:12:13 +0800 Subject: [PATCH 4/4] Add a checkout step to release workflow. --- .github/workflows/update-binary.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/update-binary.yml b/.github/workflows/update-binary.yml index 1cd895d..644fb90 100644 --- a/.github/workflows/update-binary.yml +++ b/.github/workflows/update-binary.yml @@ -116,6 +116,13 @@ jobs: permissions: contents: write steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + fetch-depth: 0 + fetch-tags: true + - name: Get build artifacts uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: