fix(ci): unblock pycairo build + clear ruff backlog#23
Merged
Conversation
The integrity + full-suite jobs have been failing since at least May 6 because `pip install -e ".[dev]"` builds pycairo from source, and the runner doesn't have the cairo headers installed. The lint job has been failing on 1,000+ E501 line-too-long warnings against long string literals that `ruff format` deliberately doesn't break. - workflow: install libcairo2-dev + pkg-config + python3-dev before pip install on both Python jobs so pycairo can build - workflow: install [dev,azure,gcp,voice] extras (not just [dev]) so Azure/GCP/voice tests can import their SDKs during pytest collection - ruff: ignore E501 in lint; `ruff format` already enforces line length where it can, and flagging long strings the formatter chose to keep intact just produces noise Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Applies `ruff check --fix --unsafe-fixes` and `ruff format` to clear the backlog of style violations that have accumulated in src/shasta/aws/ and src/shasta/azure/. Plus 8 small manual fixes the linter can't auto-resolve: - N806: rename function-local UPPER_CASE vars to lowercase (REQUIRED, FULL_SCOPE, DEFAULT_SA_SUFFIX, IMPERSONATION_ROLES, MIN_RETENTION_DAYS) — they aren't module constants and PEP 8 wants lowercase for function-scoped values - E741: rename ambiguous `l` to `listener` in the AWS pentest LB loop - N803: keep `keyTypes` parameter on two GCP-IAM mock side-effects (the name has to match the GCP API kwarg) and silence with `# noqa: N803` All 851 tests still pass locally after the auto-fix pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
chore(ci)— workflow installslibcairo2-dev+pkg-config+python3-devbeforepip installso pycairo can build, and installs[dev,azure,gcp,voice]extras so Azure/GCP/voice tests can be collected and run.style—ruff check --fix --unsafe-fixes+ruff formatacross pre-existing code, plus 8 manual renames forN806/N803/E741cases the linter can't auto-resolve.E501is moved toignoreso the formatter owns line-length policy (it leaves long string literals intact by design — flagging them is just noise).Why
The integrity workflow has been red since at least May 6 (PR #20 merged red, PR #22 merged red). Two root causes:
libcairo2-devavailable — so every install-time step explodes before any test runs.E501against intentional long-string literals thatruff formatcorrectly leaves alone.Both are fixable mechanically and have been delayed long enough that they hide real CI regressions.
What this is not
This PR does not touch the GCP detection layer or any check logic. The renames are all function-local variables (
REQUIRED,FULL_SCOPE, etc.) and one list-comprehension variable. Theruff check --fix --unsafe-fixespass removed truly unused locals (F841) and reorganized imports (I001); no logic change.Test plan
ruff check src/ tests/— cleanruff format --check src/ tests/— 196 files already formattedpytest -q --ignore=tests/integration --ignore=tests/test_rainier— 851 passed🤖 Generated with Claude Code