From 2faeea2a96a10b0bc46bb687d21394580c5b6262 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 29 May 2026 15:51:17 +0800 Subject: [PATCH 1/4] Add a may 2026 status update. --- .../posts/2026/buzz/may-2026-status-update.md | 52 +++++++++++++++++++ docs/spelling_wordlist | 2 + tox.ini | 7 ++- 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 docs/en/news/posts/2026/buzz/may-2026-status-update.md diff --git a/docs/en/news/posts/2026/buzz/may-2026-status-update.md b/docs/en/news/posts/2026/buzz/may-2026-status-update.md new file mode 100644 index 0000000000..fb78613737 --- /dev/null +++ b/docs/en/news/posts/2026/buzz/may-2026-status-update.md @@ -0,0 +1,52 @@ +--- +title: May 2026 Status Update +date: 2026-06-01 +authors: +- freakboy3742 +categories: +- Buzz +--- + +May was dominated by [PyCon US](https://us.pycon.org/2026/), where the BeeWare team ran another successful sprint, resulting in a number of improvements - many from first time contributors. + + + +## What we've done + +- We presented 2 main track talks at PyCon US - one on [mechanisms for distributing Python code](https://us.pycon.org/2026/schedule/presentation/36/), and one on [switching your project documentation from Sphinx to Markdown](https://us.pycon.org/2026/schedule/presentation/6/). We also presented at the [Web Assembly Summit](https://us.pycon.org/2026/events/webassembly-summit/), and [Packaging Summit](https://us.pycon.org/2026/events/packaging-summit/). +- We rolled out a series of updates to our GitHub Action workflows, simplifying our use of Dependabot, and adding some improvements to help users [identify if they haven't filled out our PR template](https://github.com/beeware/.github/pull/357) or [provided a Towncrier change note](https://github.com/beeware/.github/pull/361). +- We adopted the use of our new warning banner helper [throughout the Briefcase repository](https://github.com/beeware/briefcase/pull/2842), replacing the existing banners. +- We [improved Briefcase's validation of bundle identifiers](https://github.com/beeware/briefcase/pull/2825), allowing single-dot bundle IDs while still rejecting invalid ones. +- Now that [Python.net supports Python 3.14](https://github.com/pythonnet/pythonnet/issues/2610), we have [removed the warning in the BeeWare tutorial that advised against using Python 3.14 on Windows](https://github.com/beeware/beeware-tutorial/pull/78). +- We modified [Toga's `Canvas` widget to expose drawing-context attributes (`fill_style`, `stroke_style`, `line_width`, `line_dash`) along with `save`/`restore` methods](https://github.com/beeware/toga/pull/4332), continuing the alignment with the HTML5 Canvas API, and completed a [comprehensive revamp of the documentation of the `Canvas` widget](https://github.com/beeware/toga/pull/4362). +- We implemented [dark mode detection in Toga for iOS, web, and Windows](https://github.com/beeware/toga/pull/4408). +- We addressed some [reliability problems with Toga's app-level dialogs on macOS 26](https://github.com/beeware/toga/pull/4363). +- We modified Toga's [`Window` initialization process to ensure event handlers exist before the underlying widget is constructed](https://github.com/beeware/toga/pull/4359). +- We added [keyboard toggling for nodes in the Toga's WinForms Tree widget](https://github.com/beeware/toga/pull/4360). +- We [modified the handling of static HTML content in the Android `WebView`](https://github.com/beeware/toga/pull/4410), fixing a rendering problem observed when content contained characters such as `#`. +- We [improved Toga's GTK `MapView` handling of null values](https://github.com/beeware/toga/pull/4379). +- We corrected an issue with the Toga testbed app that caused [tests to fail if the user had multiple monitors](https://github.com/beeware/toga/pull/4428). +- We [documented the limitations of `OptionContainer` on mobile platforms](https://github.com/beeware/toga/pull/4369). +- We ensured Toga's codebase [checks for default encoding warnings](https://github.com/beeware/toga/pull/4365), and corrected some examples where encoding wasn't being explicitly specified. +- We [improved the resilience of Toga's `WebView` tests under Qt](https://github.com/beeware/toga/pull/4424). +- We [migrated Briefcase's project template to include a Markdown README](https://github.com/beeware/briefcase-template/pull/258). +- We [improved the BeeWare overview page with details about the platforms that BeeWare supports](https://github.com/beeware/beeware.github.io/pull/783). +- We [corrected a configuration issue that broke compilation of Python for iOS on macOS 26](https://github.com/python/cpython/pull/150444). +- We landed [the `cibuildwheel` improvements needed for building NumPy and related packages on Android](https://github.com/pypa/cibuildwheel/pull/2695), and [added Android support to `auditwheel`](https://github.com/pypa/auditwheel/pull/643). Together, these are the foundation that will let `cibuildwheel` build a much wider range of scientific-Python wheels for Android. + +Much of this work is due to the contributions of members of the BeeWare community, many of these users contributed at the PyCon US Sprints. Thanks to Abdo ([@abdnh](https://github.com/abdnh)), Abdur-Rahmaan Janhangeer ([@Abdur-rahmaanJ](https://github.com/Abdur-rahmaanJ)), [@AJTheDataGuy](https://github.com/AJTheDataGuy), [@albertchae](https://github.com/albertchae), Aman Sachan ([@AmSach](https://github.com/AmSach)), Aqil Aziz ([@aqilaziz](https://github.com/aqilaziz)), [@atuseract](https://github.com/atuseract), Audrey Dang ([@audreydng](https://github.com/audreydng)), Campbell ([@ceggy91](https://github.com/ceggy91)), [@changquan](https://github.com/changquan), Andy P Fundinger ([@Ciemaar](https://github.com/Ciemaar)), [@drewRB](https://github.com/drewRB), Chris Patti ([@feoh](https://github.com/feoh)), Grant Wang ([@gwdio](https://github.com/gwdio)), Michael Wilson ([@hyperboloid](https://github.com/hyperboloid)), Ian Dolge ([@iandolge](https://github.com/iandolge)), Joel Peter ([@joelpeter-c](https://github.com/joelpeter-c)), John ([@johnzhou721](https://github.com/johnzhou721)), Jorge ([@jvigueras](https://github.com/jvigueras)), [@lihua-xinghun](https://github.com/lihua-xinghun), Matthew Wygal ([@matthew-wy](https://github.com/matthew-wy)), Miro ([@Mirochill](https://github.com/Mirochill)), [@mrds555](https://github.com/mrds555), Matt Van Horn ([@mvanhorn](https://github.com/mvanhorn)), [@Nando301](https://github.com/Nando301), Oliver Leigh ([@Oliver-Leigh](https://github.com/Oliver-Leigh)), Taiwo Osunrinde ([@osunrinde](https://github.com/osunrinde)), Puneet Dixit ([@puneetdixit200](https://github.com/puneetdixit200)), Robert J Spencer ([@Rjvs](https://github.com/Rjvs)), [@Rowlando13](https://github.com/Rowlando13), Shannon ([@shannonmcin](https://github.com/shannonmcin)), Darryl Wang ([@Tridwoxi](https://github.com/Tridwoxi)), [@tylerboutwell](https://github.com/tylerboutwell), Vinicius Gubiani Ferreira ([@vinigfer](https://github.com/vinigfer)), and David_C ([@YuDavidCao](https://github.com/YuDavidCao)) for their code and documentation contributions this month. + +## What's next? + +On the technical front, in the coming month, we'll also be looking into options for updating code in a running app; and continuing work on the "big picture" app navigation plan published earlier in the year. If time permits, we'll begin investigations into the use of Conda environments in Briefcase apps. + +We're also planning to step up our efforts to build the BeeWare community. We've developed a reputation at PyCon US for running extremely effective sprints; but we need to do more of that outreach for people who can't make it to PyCon. We've already begun doing an audit of our outstanding issues in the hope of curating a more actionable list of work for contributors; and we're going to start being more active on social media, including reaching out to more social media channels. We're also going to host our first Community Call - a live video event where members of the core team and community members can share what they've been working on. [Join us on Discord on June 11 at 11PM UTC (7PM EDT, 4PM EDT, 9AM AEST)](https://discord.gg/U6RfbGDN?event=1509015071890870443) (and yes - we're planning to add calls at other times more convenient for European and Asian audiences). + +## Want to get involved? + +Want to get involved? We curate issues that should be approachable for first-time contributors to BeeWare. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users: + +- If you're interested in the tooling for deploying applications to various platforms, take a look at [Briefcase](https://github.com/beeware/briefcase/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22). +- Or, if you're interested in GUI widgets, take a look at [Toga](https://github.com/beeware/toga/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22). + +These lists can also be filtered by platform - so you can find issues that are specific to your preferred operating system. Pick one of these tickets, drop a comment on the ticket to let others know you're looking at it, and try your hand at a PR! We have a [contribution guide](https://beeware.org/contributing/guide/); but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the [BeeWare Discord server](https://beeware.org/bee/chat/). diff --git a/docs/spelling_wordlist b/docs/spelling_wordlist index f65328240a..9ddfd9d42b 100644 --- a/docs/spelling_wordlist +++ b/docs/spelling_wordlist @@ -1,6 +1,7 @@ AAB ABI ABIs +AEST accelerometers accessor accessors @@ -279,6 +280,7 @@ TLS TODO toolchains toolkits +Towncrier TradesCloud TradesCloud's transpilation diff --git a/tox.ini b/tox.ini index 6fdb0039d9..3d59ca39f6 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,14 @@ [tox] -envlist = docs-lint,docs-all +envlist = pre-commit,docs-lint,docs-all [docs] docs_dir = {tox_root}{/}docs{/}en +[testenv:pre-commit] +skip_install = true +dependency_groups = pre-commit +commands = pre-commit run --all-files --show-diff-on-failure --color=always + [testenv:docs{,-translate,-lint,-en,-ar,-cs,-da,-de,-es,-fa,-fr,-it,-ja,-ko,-pl,-pt,-ru,-tr,-zh_CN,-zh_TW,-all,-serve,-live}] # Docs are always built on Python 3.13. See also the RTD config. base_python = py313 From 155bc0edca6c42f030233e373355d483ba4d9484 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 29 May 2026 15:51:57 +0800 Subject: [PATCH 2/4] Add a skill for generating status update drafts. --- .../generate-monthly-status-update/skill.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 skills/generate-monthly-status-update/skill.md diff --git a/skills/generate-monthly-status-update/skill.md b/skills/generate-monthly-status-update/skill.md new file mode 100644 index 0000000000..7e0e9a0f5e --- /dev/null +++ b/skills/generate-monthly-status-update/skill.md @@ -0,0 +1,72 @@ +--- +name: draft-monthly-status-update +description: Generate a draft blog post that describes the notable project updates from the past month. +--- + +# Generate monthly status update + +Produce a blog post draft in a file named `docs/en/news/posts//--status-update.md`, substituting the year and month as appropriate. If this skill is run after the 20th day of the month it will be a summary of the current month. At any other time, it will be a summary of the previous month. + +## Steps + +1. Generate a stub `docs/en/news/posts//--status-update.md` that follows the following template: + +```markdown +--- +title: { month } { year } Status Update +date: { first day of the next month, in YYYY-MM-DD format } +authors: +- { username } +categories: +- Buzz +--- + +{ summary } + + + +## What we've done + +- { work item } +- { work item } + +Much of this work is due to the contributions of members of the BeeWare community. Thanks to { contributors } for their code and documentation contributions this month. + +## What's next? + +A summary of coming activity. + +## Want to get involved? + +Want to get involved? We curate issues that should be approachable for first-time contributors to BeeWare. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users: + +- If you're interested in the tooling for deploying applications to various platforms, take a look at [Briefcase](https://github.com/beeware/briefcase/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22). +- Or, if you're interested in GUI widgets, take a look at [Toga](https://github.com/beeware/toga/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22). + +These lists can also be filtered by platform - so you can find issues that are specific to your preferred operating system. Pick one of these tickets, drop a comment on the ticket to let others know you're looking at it, and try your hand at a PR! We have a [guide on setting up a Briefcase development environment](https://briefcase.beeware.org/en/latest/how-to/contribute/how/dev-environment/); but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the [BeeWare Discord server](https://beeware.org/bee/chat/). + +``` + +2. Fill out the document Markdown preamble with appropriate values. Ask the user for their Github username. +3. Build a list of all GitHub pull requests that have been merged into a repository in the `beeware` or `dmgbuild` project, except for those whose primary author is `dependabot` or `brutusthebee`. +4. Add to that list any pull request merged into a project owned by the `python`, `pypa`, or `PyO3` organziations where the author is `freakboy3742` or `mhsmith`: +5. Replace the bullet points in the "What we've done" section of the template document with the pull requests that have been found. Each bullet point should be a 1 sentence summary of the pull request, including a Markdown hyperlink to the pull request that spans the key part of the description (i.e., don't link preamble at the start of the sentence as part of the Markdown link) +6. Build a list of authors who contributed to the full list of pull requests found. Exclude any user who is a member of the BeeWare core team. +7. Replace the `{contributors}` block of the Markdown template with a list of authors that was found, sorted alphabetically by GitHub username. If the user has a full name listed in their Github profile, include their name as `[John Smith ([@johnsmith](https://github.com/johnsmith))]`; if they don't have a full name in their profile, use `[@johnsmith](https://github.com/johnsmith)`. The full list should be comma separated, with `, and` for the last entry in the list. + +## Content guidelines + +* The initial summary should be as short as possible. +* The bullet points created in step 5 should generally be one issue per bullet point. Multiple PRs should not be merged into a single bullet point unless they are near identical in content across multiple repositories, or are *extremely* closely related changes in the same repository. +* The summaries should be functional summaries describing what has changed from the perspective of the user, not how the feature was implemented. +* Do not attempt to draft the "What's next" section. Leave this for human authors. + +## Validation + +The final document should be a valid Markdown document with no spelling errors, as validated by running `tox -m pre-commit,docs-lint`. + +If any words are identified as spelling errors by the `docs-lint` step, the user should be prompted to approve those words for addition in the `docs/spelling_wordlist` file. If a word is approved, it should be added to the file in alphabetical order. + +## Examples + +Any existing post in the `docs/en/news/posts//buzz` folder with a `-status-update.md` suffix can be used as an example. Newer examples should be considered better than older ones. From 148a2d303f131b4944912895648287ba18549955 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Sun, 31 May 2026 11:08:14 +0800 Subject: [PATCH 3/4] Correct call time and frequency description. --- docs/en/news/posts/2026/buzz/may-2026-status-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/news/posts/2026/buzz/may-2026-status-update.md b/docs/en/news/posts/2026/buzz/may-2026-status-update.md index fb78613737..1b3b536544 100644 --- a/docs/en/news/posts/2026/buzz/may-2026-status-update.md +++ b/docs/en/news/posts/2026/buzz/may-2026-status-update.md @@ -40,7 +40,7 @@ Much of this work is due to the contributions of members of the BeeWare communit On the technical front, in the coming month, we'll also be looking into options for updating code in a running app; and continuing work on the "big picture" app navigation plan published earlier in the year. If time permits, we'll begin investigations into the use of Conda environments in Briefcase apps. -We're also planning to step up our efforts to build the BeeWare community. We've developed a reputation at PyCon US for running extremely effective sprints; but we need to do more of that outreach for people who can't make it to PyCon. We've already begun doing an audit of our outstanding issues in the hope of curating a more actionable list of work for contributors; and we're going to start being more active on social media, including reaching out to more social media channels. We're also going to host our first Community Call - a live video event where members of the core team and community members can share what they've been working on. [Join us on Discord on June 11 at 11PM UTC (7PM EDT, 4PM EDT, 9AM AEST)](https://discord.gg/U6RfbGDN?event=1509015071890870443) (and yes - we're planning to add calls at other times more convenient for European and Asian audiences). +We're also planning to step up our efforts to build the BeeWare community. We've developed a reputation at PyCon US for running extremely effective sprints; but we need to do more of that outreach for people who can't make it to PyCon. We've already begun doing an audit of our outstanding issues in the hope of curating a more actionable list of work for contributors; and we're going to start being more active on social media, including reaching out to more social media channels. We're also going to host our first Community Call - a monthly live video event where members of the core team and community members can share what they've been working on. [Join us on Discord on June 11 at 11PM UTC (7PM EDT, 4PM PDT, 9AM AEST)](https://discord.gg/U6RfbGDN?event=1509015071890870443) (and yes - we're planning to add calls at other times more convenient for European and Asian audiences). ## Want to get involved? From 62c91f4048c0343964e3d0919481f60e05fa99be Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 1 Jun 2026 08:01:46 +0800 Subject: [PATCH 4/4] Add unital to link exclusion list. --- tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 3d59ca39f6..1746709af3 100644 --- a/tox.ini +++ b/tox.ini @@ -28,7 +28,8 @@ commands: # MaxCDN has been acquired and their blog no longer exists # Play store has delisted Travel Tips for now. # Github and wikipedia have an aggressive rate limiter - lint : markdown-checker --dir {[docs]docs_dir} --func check_broken_urls --skip-urls-containing=https://www.maxcdn.com/blog/beeware-be-sticky/,https://play.google.com/store/apps/details,https://github.com/python/cpython,https://github.com/beeware,https://github.com/freakboy3742,https://en.wikipedia.org/wiki/ + # unital.dev is regularly flagged invalid due to response time + lint : markdown-checker --dir {[docs]docs_dir} --func check_broken_urls --skip-urls-containing=https://www.maxcdn.com/blog/beeware-be-sticky/,https://play.google.com/store/apps/details,https://github.com/python/cpython,https://github.com/beeware,https://github.com/freakboy3742,https://en.wikipedia.org/wiki/,https://unital.dev/ en : build_md_translations {posargs} en ar : build_md_translations {posargs} ar cs : build_md_translations {posargs} cs