Task 14: verification and handoff - #14
Merged
Merged
Conversation
Record the final verification pass in the plan. 382 unit tests on 3.9 and on 3.14, 50 integration tests against PostgreSQL 16.15 in Docker, --check-safety clean over 14 SQL constants, ruff clean, working tree clean. An end-to-end run published a bundle with all ten members, manifest last, nine payloads hashed in it, no warnings. Every assignment in the local test configuration was searched for in the ZIP's stored bytes, in each member decompressed, and in captured stderr: host, port, user, password, the connection URL and the token key are absent from all three. The database name is present, in source.database, which is the bundle saying what it profiled rather than a credential. mypy --strict is not clean and mypy is not adopted. Run for the record it reports 51 errors, almost all missing annotations on internal helpers. All six non-annotation findings were read and none is a defect. Annotating the file is a real improvement to a file whose reviewability is the product, so it belongs in a change that is about that and nothing else. --version reports dev, so no tag can ship until VERSION is bumped on purpose. That is the release gate working, not an oversight. Co-Authored-By: roachdev-claude <roachdev-claude-bot@cockroachlabs.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.
The last task in the plan: run every check, prove the negative, and record the results.
Results
python3 -m unittestpython3.9 -m unittestpython3 dbprofiler.py --check-safetypython3 dbprofiler.py --versiondevpython3 -m unittest integration_testruff checkgit diff --checkAn end-to-end run against the live server published a bundle with all ten members —
manifest.jsonwritten last, nine payloads hashed in it, zero warnings,stats_resetrecorded.The credential sweep went after the bundle bytes, not just the source
Every assignment in the local test configuration was searched for in the published ZIP's stored bytes, in each member decompressed, and in captured stderr. Host, port, user, password, the connection URL, and the token key are absent from all three.
source.databaseinmanifest.jsonandprofile.jsondoes hold the database name. That is the bundle identifying what it profiled, next toschema.sql, and is not a credential.mypy --strictis not clean, and mypy is not adoptedThe checklist gates it on "if adopted", and it is not: no CI workflow, no config file, no pre-commit list. Run anyway for the record, it reports 51 errors — 27
no-untyped-defand 10no-untyped-callon internal helpers, 8type-arg, and six others. All six were read and none is a defect:violations = []needs an annotation mypy cannot infer,sum(1 for _ in ...)trips mypy'sbooloverload ofsum, andenv = os.environ if env is None else envwidens to_Environ[str], whichMapping[str, str]would have described better thandict[str, str] | None.Annotating the file to satisfy
--strictis a real improvement and a real diff across a file whose reviewability is the product, so it is left for a change that is about that and nothing else. Flagging it rather than quietly doing it here.Two things worth knowing
--versionreportsdev. Deliberate. The release workflow refuses to publish unless the tag equalsv$(dbprofiler.py --version), sodevmeans no tag can ship until someone bumpsVERSIONon purpose. The first release is aVERSIONcommit followed by a tag, not a tag alone.integration_test.py, so the standalone run profiled a server with no user tables. It proves bundle structure, manifest hashing, atomic publication, and the absence of credentials; the 50 integration tests are what prove content — table shape, FK fan-out, extended statistics, tokenization, and Tier 1 telemetry against a seeded schema.