chawan: update to 0.5.2.
0.5.2 (2026.11.08)
* fix term quit getting stuck on some broken terminals
* work around a Nim 2.2.14/2.4.0 regression
* fix a leak in QJS JS_ValueToAtom
* fix overflow in QJS variable capturing
* fix key being incorrectly removed in some cases in config
* fix default omni-rule overriding
* fix list-style-type disclosure-open/close mixup
* fix handling of unknown @charset at rules
* fix a bug in domainToAscii
* fix non-stylesheet link[title] setting the selected stylesheet's title
* update stb_image[_write] to latest version
* fix external QJS ArrayBuffers keeping free_func after detaching
* work around a distinct codegen bug in old Nim versions
* fix no-referrer Referrer-Policy with referer-from=false
SDL3: update to 3.4.20.
This is a stable bugfix release, with the following changes:
Fixed mouse wheel direction in mouse relative mode on Windows
Improved Wayland clipboard handling
Fixed color cursor alpha mask on X11
Fixed a crash when Vulkan texture memory binding fails
Fixed transparent windows using the Vulkan renderer
Improved handling of Nintendo Switch controller calibration
Fixed Nintendo Switch controllers failing because of missing stick and IMU calibration
Fixed reports stopping on the Flydigi Vader 5 Pro while the Flydigi Space Station service is running
Added support for rumble and trigger rumble on the Flydigi Vader 5 Pro
Added support for the 8BitDo Ultimate 2C Wireless controller via HIDAPI
Fixed a crash recording float audio on Android 10
Improved relative mouse mode handling on Android
Fixed window orientation on iOS 27
Fixed keyboard focus when using the latest Xcode on iOS
minizip: update to 1.4.
Changes in 1.4 (4 Nov 2026)
- Fix several vulnerabilities in contrib/minizip
- Fix minizip extra field overflows when almost full and need Zip64
- Use a PCG random number generator instead of rand() in minizip
devel/py-opentelemetry-test-utils: import py-opentelemetry-test-utils-0.66b2
This package provides internal testing utilities for the OpenTelemetry
Python project and provides no stability or quality guarantees.
Please do not use it for anything other than writing or running
tests for the OpenTelemetry Python project.
py-zensical: update to 0.1.0.
Exactly one year ago today, we released the first version of
Zensical. Today, Zensical reaches its 0.1.0 milestone.
This release closes the major remaining compatibility gaps with
MkDocs, including support for many of its most widely used plugins.
You can bring your existing MkDocs project to Zensical and continue
using the workflows you're familiar with.
With 0.1.0, Zensical enters beta for the next three months. Thousands
of projects already use it, and we expect it to work reliably in
production. The beta period gives us time to gather feedback,
address remaining issues, and continue refining the APIs and
ecosystem. If all goes as expected, we plan to move to stable after
those three months.
MkDocs compatibility has been essential to giving existing projects
a path forward. It also gives us a foundation for what comes next.
[14 lines not shown]
py-urwid: update to 5.1.0.
Security fixes 🛡
Keep web display sessions private to their user: the session id was the name of a FIFO in the shared pipe_dir, so any local user could list it, type into another user’s application and read its screen. Session files now live in a 0700 directory per user under hashed names, the daemon runs with umask 077, and max_clients counts only the user’s own sessions (GHSA-xm5p-pwm6-5w65) by @penguinolog in https://github.com/urwid/urwid/security/advisories/GHSA-xm5p-pwm6-5w65
Keep control characters of a Terminal child off the host terminal: a child that selected the IBM PC character set could run OSC 52, OSC 2 or CSI commands on the host terminal through a UTF-8 encoded C1 control; also see “Bug fixes” below: Harden the displays against hostile input and failed start or stop by @penguinolog in https://github.com/urwid/urwid/pull/1599
Stop buffering an over-long DECRPM reply from terminal input, which grew memory without limit and took quadratic time, and apply a DECRPM reply only as the answer to a query the raw display sent, so pasted text shaped like a reply cannot switch terminal modes by @penguinolog in https://github.com/urwid/urwid/pull/1599
Major features 🗹
Add Table: a fixed header over a scrolling body of rows whose columns share their widths, with TableColumn (packed, given or weighted width, per-column attribute map), TableRow and TableLayout for shared widths outside a Table by @penguinolog in https://github.com/urwid/urwid/pull/1550 and https://github.com/urwid/urwid/pull/1559
Add Tabs: a row of tab labels over the selected tab’s body, with overflow markers, an optional underline row, the Command.NEXT_TAB and Command.PREVIOUS_TAB commands and the "focus changed" signal by @penguinolog in https://github.com/urwid/urwid/pull/1566 and https://github.com/urwid/urwid/pull/1594
Add Edit(placeholder=...), whole-value validation (validator=, Severity, ValidationMessage, the "validation" signal) and completion (text_completer=, the "completion_cycle" signal) by @penguinolog in https://github.com/urwid/urwid/pull/1561
Add readline editing commands and CommandMap.bind_readline(), Edit(undo_limit=...) with undo and redo, and Edit(kill_buffer=...) with yank by @penguinolog in https://github.com/urwid/urwid/pull/1565
[111 lines not shown]
py-typing-inspection: update to 0.4.5.
What's Changed
Improve performance of get_literal_values() by @Viicos in #70
Expand chained type aliases in get_literal_values() by @mayankdhingra02 in #69
py-typer: update to 0.28.0.
Fixes
🐛 Ensure that the default option name is not changed by setting a metavar. PR #1957 by @svlandeg.
Docs
🎨 Enable Ruff formatting for Python in Markdown. PR #1978 by @tiangolo.
Internal
⬆ Bump certifi from 2025.11.12 to 2026.10.18. PR #1990 by @dependabot[bot].
⬆ Bump the python-packages group with 6 updates. PR #1994 by @dependabot[bot].
⬆ Bump the github-actions group with 6 updates. PR #1993 by @dependabot[bot].
⬆ Bump pre-commit hooks. PR #1995 by @pr-submit[bot].
py-soupsieve: update to 4.0.1.
4.0.1
FIX: Cache whether an element is or has a matching descendant when matching :has() to avoid quadratic time
on deeply nested documents.
FIX: Cache whether the parent matches when matching the child combinator (a > b) so it is matched once for
all of its children, avoiding quadratic time when the parent is expensive, such as div:has(> p) > span.
4.0
BREAK: The contents of an HTML template are no longer treated as part of the document. Selectors do not
descend into a template, and elements inside one can't see beyond it, which also applies to pseudo-classes such
as :lang(), :disabled, and :default. select and filter will still reach the contents of a template when
they are called on the template itself, for example soup.template.select('p'). See the
FAQ for more information.
BREAK: The contents of an iframe are no longer treated as a separate document, as they are not one in a
browser. Elements in an iframe are normal children, so :root does not match them, and :default,
:indeterminate, :checked, :dir(), :lang(), and :read-write treat them like any other element. Recent
[86 lines not shown]