Skip to content

Fix the checks the 1.1.0 release PR failed - #539

Merged
JE-Chen merged 9 commits into
devfrom
fix/release-1.1.0-checks
Nov 2, 2026
Merged

JE-Chen merged 9 commits into
devfrom
fix/release-1.1.0-checks

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Why

The release PR (#538, dev → main) runs workflows that never run on dev. Some of them failed on the merged tree. This fixes those failures.

Failures fixed

  • FreeBSD and X11 verifiers: since the X11 resources are deferred, platform_wrapper.mouse is a proxy with no __name__. The verifiers now ask the proxy's module which backend it selected.
  • Portal handshake: the informational classification step caught main's PortalConsentNotGranted, which dev's oeffis does not define. It now reads OeffisUnavailable's structured state.
  • typing-extras (PySide6 6.11.2): QPixmap.loadFromData's format argument is typed bytes in 6.11.2, while the runtime only accepts str. The call now passes no format; the JPEG header identifies the image.
  • Headless pytest inside the image: the image has PySide6 but no libEGL, and four agent GUI test modules errored at collection. They now skip when QtWidgets cannot be imported, like the other GUI tests.
  • SonarCloud, reliability: fixture threads no longer assert inside a handler that catches AssertionError.
  • SonarCloud, security:
    • the Android helper declares cleartext traffic off, and its release build uses R8 (CI builds the debug APK only);
    • the example's private value is no longer named password;
    • four false positives are marked inline with NOSONAR and a reason: the loopback server base, the CI tooling's own path arguments, its 0600 temp file, and the seeded fixture generator.

Gradle lock files and test flakes

  • Lock files: native/android_helper now locks every dependency configuration. A temporary step in the android-helper workflow writes the lock files with --write-locks and keeps them as an artifact. That workflow runs on the push to dev after this merges. A follow-up PR commits the files and removes the step.
  • Flaky presence tests: the presence tests' lease helper now retries after a missed 0.25 s request deadline. It failed once on each Ubuntu runner of the release PR.

…erifiers

Since the X11 resources are deferred, platform_wrapper.mouse is a proxy
object with no __name__, so the FreeBSD and X11 verifiers failed on a
backend they had in fact selected. They now ask the proxy's module which
backend it chose.
The informational classification step still caught main's
PortalConsentNotGranted, which the development line's oeffis does not
define, and the AttributeError ended the whole portal job.
PySide6 6.11.2 types loadFromData's format as bytes, 6.12.0 also accepts
str, and the runtime takes only str: no spelling satisfied both stubs in
the typing-extras job. The JPEG header identifies the image anyway.
The container image has PySide6 but no libEGL, so importing QtWidgets
fails; importorskip("PySide6") let these four modules error at
collection instead of skipping like the rest of the GUI tests.
- Fixture threads raise or record a mismatch instead of asserting inside
  the handler that forwards every failure to the parent test.
- The Android helper declares cleartext traffic off and shrinks its
  release build with R8, keeping the instrumentation it is started by.
- The workspace example's private value is no longer called a password.
- The loopback server base, the CI tooling's own path arguments, its
  0600 temp file and the seeded fixture generator are marked as reviewed,
  each with its reason.
@codacy-production

codacy-production Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 2 duplication

Metric Results
Complexity 0
Duplication 2

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

A request is capped at 0.25 s, and on the Quality workflow's Ubuntu
runners the observer sometimes had not polled within it, so the helper's
first acquire raised 'deadline exhausted' and the test failed before
reaching what it checks. A timed-out request allocates no lease, so the
helper now retries it like a busy source, within five seconds.
SonarCloud flags the helper build because its dependency versions are not
pinned by a lock file. Every configuration is now locked; while no
gradle.lockfile exists Gradle resolves as before. A temporary step in the
instrumentation job writes the lock files with --write-locks and keeps them
as an artifact, so the real files can be committed and the step removed.
The checks resolved the wrapper module from the proxy's __module__ with
importlib, which static analysis reads as importing arbitrary code. The
wrapper is always _platform_linux, so it is imported directly and the proxy
is checked to be its _Mouse.
@sonarqubecloud

sonarqubecloud Bot commented Nov 2, 2026

Copy link
Copy Markdown

@JE-Chen
JE-Chen merged commit b10aece into dev Nov 2, 2026
11 of 12 checks passed
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