Conversation
The query the SDK renders for a cardinality-many relationship asked for `count` next to `edges`, but nothing ever read it back: the manager is built from the edges alone, and only the top-level pagination count is consumed. Infrahub resolves that nested count with one extra database query per returned node and per relationship, awaited before the peers are loaded, which also splits the batched peer read into several partial ones. Measured on 25 nodes carrying one Attribute-kind relationship (the shape every `all()` query renders by default): 62 database queries with the count, 9 without. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Deploying infrahub-sdk-python with
|
| Latest commit: |
f256649
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://1fa31eeb.infrahub-sdk-python.pages.dev |
| Branch Preview URL: | https://pog-em-upgrade-mypy-18mrd.infrahub-sdk-python.pages.dev |
A change to a workflow file or to the path filters themselves could previously leave jobs skipped, so a bad edit landed green and broke the next unrelated PR instead. Three concrete gaps, confirmed by simulating dorny/paths-filter against the old filters: - ci.yml only: `documentation` skipped, because `documentation_all` never included `ci_config`. - file-filters.yml only: `markdown-lint`, `action-lint`, `uv-lock-check` and `documentation` skipped, because `github_workflows` was `.github/workflows/*.yml`, which does not match a file one level up. - define-versions.yml only: `python-lint`, `unit-tests`, `integration-tests` and `validate-generated-documentation` skipped, because `ci_config` listed only `ci.yml` - so a bad `UV_VERSION` pin, consumed by every Python job, went untested. Widen `ci_config` to all of `.github/workflows/**` plus `.github/file-filters.yml`, point `github_workflows` at it, and fold it into `documentation_all` and `documentation_generated_all`. Every output that gates a job now includes it. Also parenthesize the `validate-generated-documentation` condition. It read `... && A || B`, and `&&` binds tighter than `||`, so `documentation_generated == 'true'` alone satisfied the whole expression and bypassed the `always() && !cancelled() && !contains(needs.*.result, 'failure')` guards. Latent before; the change above makes that output true on every CI-config change, which would have started firing it. Verified with `yamllint -s .` and `actionlint`, plus a picomatch simulation showing zero skipped jobs for all three CI-config cases and no change in selectivity for python-only, docs-only or generated-docs-only changes.
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## develop #1297 +/- ##
========================================
Coverage 84.24% 84.24%
========================================
Files 147 147
Lines 13066 13066
Branches 1940 1940
========================================
Hits 11007 11007
Misses 1494 1494
Partials 565 565
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
ogenstad
approved these changes
Aug 28, 2026
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.
Merging stable into develop after merging pull request #1294.
Summary by cubic
Stops requesting the peer
counton cardinality-many relationships and fixes CI so changes to workflow or filter files run the full pipeline.count, and Infrahub resolved it with an extra database query per node per relationship, which also prevented peer reads from batching..github/workflows/**or.github/file-filters.yml, so bad edits could pass silently.ci_configto all workflow files, pointgithub_workflowsat it, and fold it into documentation job filters.validate-generated-documentationcondition so it no longer bypasses the failure and cancellation guards.Written for commit f256649. Summary will update on new commits.