feat: add JSON Schema for diagnostic build metadata (Issue #34)#328
Open
feng83232 wants to merge 1 commit into
Open
feat: add JSON Schema for diagnostic build metadata (Issue #34)#328feng83232 wants to merge 1 commit into
feng83232 wants to merge 1 commit into
Conversation
Create schemas/diagnostic_metadata.schema.json (JSON Schema draft-07) describing the diagnostic build metadata report produced by build.py's build_diagnostic_report() function. Includes: - Schema file with full property definitions, types, and constraints - 3 example payloads in schemas/examples/ (2 valid, 1 invalid) - Validation script output confirming all examples pass/fail correctly - Diagnostic build artifacts from the current commit (3774a0c) Closes lobster-trap#34
Owner
|
Diagnostics are still blocking review on this PR. Please rebase onto the current upstream branch and run the repository build script so the script-generated diagnostic bundle is committed to this PR: git fetch upstream
git rebase upstream/main
python3 build.py
git push --force-with-leasePlease do not manually create, copy, or edit diagnostic files. A valid PR must include a matching |
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
Implements issue #34 by creating a JSON Schema (draft-07) for the diagnostic build metadata data structure — the JSON report produced by
build.py'sbuild_diagnostic_report()function. This report is generated on every build run and contains per-module pass/fail results, timing, encrypted log references, and summary counts.The data structure is defined in
build.py(lines 524–577, functionbuild_diagnostic_report()) and its real-world output can be found atdiagnostic/build-3774a0c8.json.Changes
schemas/diagnostic_metadata.schema.json— Full JSON Schema (draft-07) describing the diagnostic build report:$schema,$id,title,description,type,propertiesgenerated_at,commit,chunked,total_modules,passed,failed,modules,pr_notegenerated_at,commit,chunked,total_modules,passed,failed,modules,pr_notename,status(enum: PASS/FAIL),elapsed_seconds,artifact,outputdiagnostic_logdsupports single string, array of strings, or nulladditionalProperties: falseto catch unexpected fieldsschemas/examples/valid_full_build_failure.json— Valid payload matching the real build-3774a0c8.json (all 10 modules failed due to missing toolchains)schemas/examples/valid_full_build_success_chunked.json— Valid payload with successful build, chunked log, and all 3 modules passingschemas/examples/invalid_missing_fields_and_types.json— Invalid payload testing type violations, wrong enum values, missing required fields, wrong data typesDiagnostic artifacts:
diagnostic/build-3774a0c8.jsonanddiagnostic/build-3774a0c8.logd(generated by runningpython3 build.py --module frontend)Testing
Schema validation passed for all 3 example payloads:
Validation performed using Python
jsonschemalibrary (v4.19.2) against JSON Schema draft-07.Checklist