chore(deps): support PyGObject 3.50 on older Linux libraries - #127
Merged
Merged
Conversation
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
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
Bot
force-pushed
the
dependabot/pip/pygobject-gte-3.46-and-lt-3.59
branch
from
August 31, 2026 15:23
9e41777 to
55e9a58
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.59proposal includes releases that need GLib andgirepository-2.02.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 GIparentstruct field raisesRuntimeErroron 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.