Skip to content

chore(deps): support PyGObject 3.50 on older Linux libraries - #127

Merged
abrichr merged 5 commits into
mainfrom
dependabot/pip/pygobject-gte-3.46-and-lt-3.59
Sep 10, 2026
Merged

abrichr merged 5 commits into
mainfrom
dependabot/pip/pygobject-gte-3.46-and-lt-3.59

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

The Linux extra now accepts PyGObject 3.46 through 3.50.x and locks 3.50.2. This lets Linux users install the current 3.50 maintenance release while retaining the older system-library requirements.

The original <3.59 proposal includes releases that need GLib and girepository-2.0 2.80+. Pip doesn't check system-library versions, so that range can select a dependency that an older Linux host can't build. PyGObject 3.50.2 still requires GLib 2.64+ and gobject-introspection 1.64+; 3.52.0 changes that native boundary. The declaration and archive validator both use <3.51, and the lock selects 3.50.2. The rejection test covers the original wider range as well as a missing upper bound.

The existing Python 3.10 CI leg now runs on Ubuntu 22.04. It builds the locked Linux extra, starts a synthetic GTK application in an isolated D-Bus/Xvfb session, and reads its button through Capture's real AT-SPI adapter. The test checks the button's name, role, action, bounds, parent, and process identity. It makes no fake-runtime substitutions. The adapter now calls get_parent() before its legacy property fallback: reading the GI parent struct field raises RuntimeError on the real binding and previously stopped ancestry collection. The native check also verifies the button's window ancestry. The Python 3.11/3.12 legs and the Windows/macOS main checks remain in place; no matrix leg was added.

Local validation: 102 focused tests passed, with two expected platform skips. Ruff checks passed for the changed Python files. Built wheel and source distribution passed the archive and source-boundary validators. The native Linux check passed with Python 3.10.21, PyGObject 3.50.2, GLib 2.72.4, and gobject-introspection 1.72.0. That job also passed the regular suite: 786 tests passed and 23 skipped. All required PR checks pass on e11f9fcc76778ccaee8dad6821674e39236ab58f.

This change keeps PyGObject as an external optional dependency. It doesn't bundle its LGPL code or change Capture's release triggers.

@dependabot @github

dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot
dependabot Bot requested a review from abrichr as a code owner August 31, 2026 14:38
Updates the requirements on [pygobject](https://pygobject.gnome.org) to permit the latest version.

---
updated-dependencies:
- dependency-name: pygobject
  dependency-version: 3.58.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/pygobject-gte-3.46-and-lt-3.59 branch from 9e41777 to 55e9a58 Compare August 31, 2026 15:23
@abrichr abrichr changed the title chore(deps-dev): update pygobject requirement from <3.50,>=3.46 to >=3.46,<3.59 chore(deps): support PyGObject 3.50 on older Linux libraries Sep 10, 2026
@abrichr
abrichr merged commit 5579c47 into main Sep 10, 2026
12 checks passed
@abrichr
abrichr deleted the dependabot/pip/pygobject-gte-3.46-and-lt-3.59 branch September 10, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant