Repository navigation
fix: align the research lock with the pandas constraint - #303
Merged
Merged
Conversation
Resolve pandas 3.1.0 in a read-only CI job and retain the complete lock artifact. Reject unrelated dependency identity changes and preserve the QPK record.
Record only the public generated lock as numbered base64 chunks with length and digest. Preserve the artifact, dependency constraints and all validation guards.
Base automatically changed from
fix/phase1-normal-wheel-runtime-dependencies
to
main
November 1, 2026 14:08
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
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.
AI assistance
ChatGPT (GPT-6 Astra Pro) prepared this change. Acceptance uses automated
checks, independent AI review of the exact candidate tree, and repository risk
classification. This PR remains a draft stacked on #300.
What changed
The research extra already declares
pandas>=3.1.0, while the shared projectlock selected Pandas 3.0.5 and recorded a stale
>=3.0.5research edge. Theexisting QPK reference check did not detect that inconsistency.
This change commits the lock produced by uv 0.13.4 with
uv lock --upgrade-package pandas==3.1.0, adds regression checks for declaredrequirements and selected versions, and updates ADR 0002. The temporary
candidate-generation workflow is replaced by strict lock validation and frozen
research installation on Python 3.11 and 3.12.
The resolved package change is Pandas 3.0.5 to 3.1.0, including its generated
source and wheel metadata. Its dependency edges and registry source are
unchanged. NumPy versions 2.4.6 and 2.5.3, the complete QPK record at
c7646a7168b3dafa763ef7751a182d23e8de7790, and all other package records areunchanged. The root research edge now matches the existing declaration.
The resolver also updates the lock format revision from 3 to 5 and normalizes
ordering of the same resolution markers and root dependency metadata. The
committed lock preserves the generated bytes. The repository had no prior uv
tool pin; validation uses uv 0.13.4 and makes no compatibility claim for older
resolver versions.
There is one shared
uv.lock, so Pandas 3.1.0 applies to both normal frozenproject sync and research sync. Runtime wheel NumPy/Pandas requirements remain
unbounded. The QPK source pin, downstream consumer pins, and the Binance
Pandas 3.0.3/NumPy 2.4.6 installation constraints remain unchanged. Runtime
source, trading logic, accounts, risk controls, secrets, IAM, schedules and
production configuration are unchanged.
How verified
cases and two expected failures, then passes all five cases with the
generated lock. Existing metadata checks are preserved.
succeeded. The generated lock was recovered from 23 numbered public log
chunks, checked against the declared 67,857-byte length and SHA-256
918fe5cf3c9c6fffedfef6d09b3830967bf54a122873b557e36e097967ba650a,and matched the original artifact candidate hash. The native artifact is
retained. Its documented local materialization failed, so the follow-up
diagnostic exposed only the same public lock bytes in the job log.
changes described above. The other 92 base files and their Git modes match
fix: Declare numeric runtime dependencies for normal installs #300 exactly.
outline advisory; all 36 documentation-check tests pass. Workflow YAML,
embedded Python and diff whitespace checks pass.
206277736a750bfa58c25285a8f9b53f90f13505and the subsequent workflow-contextcorrection in final tree
6cfb18ea6a1a320819860f83fb471b8ce41dd4dd.The reviewer independently decoded the generated lock, checked the complete
four-file change and 92 unchanged base entries, and ran all five metadata
cases successfully with zero network attempts. The follow-up review verified
the exact environment-scope correction and all 95 unchanged files.
uv lock --check, verifies the committed lock remainsunchanged, performs
uv sync --frozen --extra research --no-editableandchecks installed dependency consistency. An isolated entrypoint probe
verifies NumPy/Pandas versions, the exact QPK Git source, installed module
origins and absence of import-time network attempts.
454b97d9a82b4d1c910015331d4a23251a67cdc3,repository CI
passed: 270 tests and 195 subtests, Ruff, QPK reference consistency,
dependency checks, sdist/wheel build, actionlint and all three normal-wheel
profiles. The Binance-constrained wheel still installs Pandas 3.0.3.
passed with Pandas 3.1.0: NumPy 2.4.6 on Python 3.11 and NumPy 2.5.3 on
Python 3.12. Both verified the unchanged QPK commit, module origins inside
their fresh environments, and zero import-time network attempts. The lock
checks succeeded without changing the committed file.
and engineering checks,
including commit-message validation and Gitleaks, passed. The actual CI
checkout
5a05bde613aac049974d5a93ed27dcd92894fdf8has the same tree asthe independently reviewed PR head.
The first final candidate failed actionlint because
runner.tempwas placedin job-level
env, where that context is unavailable. Commit454b97d9a82b4d1c910015331d4a23251a67cdc3moved the identical environmentsetting into the two consuming steps. Independent review confirmed that the
commands, assertions, paths and dependency files were unchanged; fresh
actionlint and both frozen-install jobs then passed. The earlier failure is
retained in the PR history.
Governance status
All ten code and static-check jobs passed on the reviewed head. The
trusted PR risk gate
and PR-template status also pass after a separate
owner-approvedlabel eventwas recorded on the PR. This task did not apply that label. The earlier failed
governance runs remain in history; no gate or assertion was changed to obtain
the current result.
This PR remains a draft stacked on #300. Its successful commit-message check
covers its own PR range and does not resolve #300's historical commitlint
failure. No merge, deployment, or live operation has been performed.
Rollback
Revert this lock, its recurrence checks, the strict validation workflow and the
corresponding ADR reconciliation together through a reviewed change. This
restores the previous research-lock mismatch while preserving #300's runtime
dependency declarations. Runtime-declaration adoption and any production
consumer change remain separate operations.