ci: keep exact-coupled Python dependency updates atomic - #101
ci: keep exact-coupled Python dependency updates atomic#101seonghobae wants to merge 19 commits into
Conversation
|
@cwl-noema-review |
|
Warning Review limit reachedNext included review available in 57 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughDependabot에 결합 의존성 업데이트 그룹을 추가했습니다. 개발 의존성 잠금 파일을 갱신했습니다. CI와 테스트는 Changes의존성 정책 및 검증
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: 🟡 Moderate · up to The PR adds dual-lock dependency validation, but the current CI comparison includes generated headers that the repository contract excludes, so the required regression check will fail. Merge should wait until CI compares the lock bodies as intended. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head685de59cb7c453f8fb7c01701a7eaa46c8056224. -
Head SHA:
685de59cb7c453f8fb7c01701a7eaa46c8056224 -
Workflow run: 31796432516
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (5 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (5 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Workflow: ci.yml"]
S2 --> I2["GitHub Actions review job"]
I2 --> R2["Review risk: Workflow: ci.yml"]
R2 --> V2["actionlint plus required checks"]
Evidence --> S3["Test: test_dependency_update_policy.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_dependency_update_policy.py"]
R3 --> V3["targeted test run"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage evidence job did not run or did not publish coverage evidence. Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (5 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (5 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Workflow: ci.yml"]
S2 --> I2["GitHub Actions review job"]
I2 --> R2["Review risk: Workflow: ci.yml"]
R2 --> V2["actionlint plus required checks"]
Evidence --> S3["Test: test_dependency_update_policy.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_dependency_update_policy.py"]
R3 --> V3["targeted test run"]
|
|
@opencode-agent Please review current head |
|
|
|
@opencode-agent Please re-review exact current head 50dd9c9. The prior REQUEST_CHANGES review was bound to an earlier coverage-evidence failure; current hosted Checks for this exact head are terminal-success. Bind any new review/approval to this SHA only, verify current-head coverage and security evidence, and do not transfer predecessor evidence or self-approve. |
|
@opencode-agent Please independently review exact current head |
|
Current-head review request: Please re-review the exact current head |
|
Review only exact current HEAD |
|
Exact-head audit for SHA 50dd9c9: no additional change was needed because the current workflow already runs uv export --locked and compares the tracked and exported lock bodies, then installs the hash-locked export and runs both uv pip check validations. test_dependency_update_policy.py asserts those workflow contracts. A local exact comparison found 36 locked packages, 36 exported packages, and no version or package differences. No approval or merge action. |
|
Exact-head re-audit for |
|
Independent exact-head dependency verification for
This is verification evidence, not a formal approval. All listed Checks are terminal success/skipped, but the PR still needs a fresh independent approval and protected latest-head review. |
|
Please run a fresh independent review against exact current head |
|
Current-head independent review request: please review exact SHA 50dd9c9 against main and publish a substantive verdict bound only to this SHA. Re-read the complete changed-file diff, security/data/operability impact, and current hosted Checks; do not transfer predecessor approval or CHANGES_REQUESTED state, self-approve, merge, or enable bypass. No merge claim is made by this request. |
|
@opencode-agent please perform a fresh independent substantive review against exact current head 50dd9c9 and base ce207df. The current coverage-evidence and hosted Checks are green; re-read the complete current CI/dependency-policy diff and publish a verdict bound only to this SHA. |
Duplicate stale infrastructure verdict: later exact-head hosted coverage evidence is terminal-success. Fresh exact-head independent review remains required; no approval or merge is created.
|
Fresh exact-head independent review request: review the complete current head 50dd9c9 against main@ce207dfd42975db61c82a5963e206fc1db14ac2b. Current hosted Checks are terminal-success with no failures; the prior coverage-only CHANGES_REQUESTED reviews were dismissed with audit reasons. Publish a substantive verdict bound only to this SHA; do not transfer predecessor evidence, self-approve, bypass, or merge. |
|
Exact-current-head independent review request: please review |
# Conflicts: # CHANGELOG.md # services/account_unification/pyproject.toml # services/account_unification/requirements-dev.txt # services/account_unification/uv.lock
Dismissed as stale predecessor-head evidence. This review is explicitly tied to 685de59cb7c453f8fb7c01701a7eaa46c8056224, while the current exact head is 9173bf4621cf8dddaf5b0ce2cc240d0307c776d9. The current-head coverage-evidence and opencode-review checks are terminal-success. This dismissal does not count as approval and does not bypass the live independent-review requirement.
Summary
pydanticwithpydantic-coreandhttpx2withhttpcore2for Dependabot version updatesuv.lockenvironment and a fresh environment built from the exported hash-lockedrequirements-dev.txtuv.lockfailureCHANGELOG.mdWhy
Dependabot produced split transitive updates in #91, #94, and #95. Those pull requests exercised only one dependency representation and could therefore present an unsupported exact-child pair in the exported requirements graph. PR #98 separately demonstrated the inverse drift:
pyproject.tomlandrequirements-dev.txtmoved to Ruff 0.16.2 whileuv.lockremained at 0.16.1, causinguv sync --lockedto fail before tests.A first exact-file comparison also failed because uv embeds the chosen output path in the generated file's two-line header. The package/version/hash bodies were identical, so the current contract ignores only that environment-specific header and still compares the full dependency graph byte-for-byte.
Exact-head validation
Current head:
50dd9c96cab5c230f775685e8baea939fba390dd.uv sync --locked --extra devuv pip checkuv export --locked --extra dev --no-emit-projectcmpand diagnosticdiffuv pip install --require-hashes -r requirements-dev.txtuv pip checkSafety
No runtime source, permissions, secret flow, database object, or production dependency version changes are included. All published review threads are resolved. Auto-merge remains gated on current-head independent approval and protected-branch requirements.