Skip to content

docs(criteria): re-measure the 1.0 requirements from the 2026-10-27 main run (#195) - #401

Merged
DrunkOnJava merged 5 commits into
mainfrom
docs/release-criteria-refresh
Oct 28, 2026
Merged

DrunkOnJava merged 5 commits into
mainfrom
docs/release-criteria-refresh

Conversation

@DrunkOnJava

@DrunkOnJava DrunkOnJava commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

This PR contains #398's commit (f540e7e, merged into the branch) and must land after #398. Once #398 is on main its diff drops out of this one.

Re-measures the requirements of docs/release-1.0-criteria.md that a green main run can re-measure, and changes only what that run proves. One status flips: X1 (DXF) goes from not measured to failed. Every other status is unchanged. R-numbering and wording are otherwise intact.

Spec reference

None; no code. Refs #195 (the epic; it stays open) and #169, #381.

Evidence: CI run 40542129639, the ci.yml run on main at 61255e9, every job success, artifact corpus-measurement (corpus-results.json, oracle-summary.md, oracle.tsv, dxf-header-probe.log, dxf-tables-probe.log, dxf-entities-probe.log, dxf-blocks-probe.log, header-probe.log). The R3 counts come from docs/data/spec-coverage.tsv at that commit.

Test plan

What changed, row by row (before, after, evidence):

Row Status Before After Evidence
header n/a "Last measured 2026-10-21, b268e884" 2026-10-27, 61255e9, run linked the run
R2 failed, unchanged R14 to R2018 open and walk on at least four drawings per release same, plus 52 drawings, 15,541 records decoded, 0 errored, with the run linked corpus-results.json: per release 8, 8, 8, 8, 8, 8 and 4 drawings (R14 to R2018)
R3 failed, unchanged 0 of 138 complete; 34 missing, 31 partial, 6 decoder, 67 closes 0 of 138; 28 missing, 7 partial, 6 decoder, 97 closes the TSV with #398 (138 rows excluding the n/a chapter 1). On main alone it is 29, 13, 6 and 90; #398's seven moves to closes and §22 to partial are proven by run 40532346172, the run #398 cites
R4 failed, unchanged 46 sections scored, 19 values disagree (#241-#244) 53 sections scored, 22 values disagree (#241-#244, #381) oracle-summary.md: 53 spec sections with records; differences BLOCK 3, LTYPE 4, VIEW_CONTROL 6, APPID_CONTROL 4, VPORT 2, MULTILEADER 3. MULTILEADER was scored by #385; its 3 differences are #381.
R8 failed, unchanged 308 records error honestly (#226, #227, #228, #71) 0 records error, 15,541 decode, 533 are skipped for want of a decoder, each named by kind corpus-results.json: errored 0, errors empty on every drawing, 28 skipped kinds. The status stays failed: the AppInfo misreading (#137) is still open and the run cannot show otherwise, so that clause is kept.
X1 not measured -> failed "Written for R12 to R2018; checked only syntactically" the HEADER, TABLES, ENTITIES and BLOCKS probes pair every written record with AutoCAD's export by handle: on 42 drawings 0 groups disagree and none is extra (HEADER 9,583 variables, 9,410 agree and 173 hold a stated relation; TABLES 1,239 records, 8,831 of 8,840 groups agree and 9 by relation; ENTITIES 803 records, 5,627 of 5,627 groups; BLOCKS 1,532 records, 12,577 of 12,583 groups and 6 by relation). Not equal yet: 342 ENTITIES records of 18 kinds are not written, and the OBJECTS section is not written on main the four dxf-*-probe.log files. The bar is "equals AutoCAD's own DXF of the same drawing"; the doc defines failed as measured and not met, and not measured as no evidence either way, so the old status no longer fits.
S3 failed, unchanged "no 32-bit job" the library compiles for wasm32-unknown-unknown in the Clippy job (step "The library builds where usize is 32 bits"), but no job runs tests or a corpus walk on a 32-bit target the run's Clippy job steps

Rows I did not change, because the run does not move them: R1 (STATUS.md's other numbers are not shown to come from a run), R5 (VISUALSTYLE 1,008 records, 58,104 equal, 264 different, the view styles and MATERIAL still unscored: the run's numbers equal the page's), R6 (42 nextgis and 10 ACadSharp drawings in pins.tsv, matches), R7, W1 to W3, X2 to X5, S1, S2, S4 and P1 (no evidence in a main run either way). "No recorded fuzz durations" in S3 is kept for the same reason.

R3 and #398. The R3 counts include #398 (the spec-coverage refresh): it moves seven rows from partial to closes and §22 from missing to partial. This branch has #398's commit merged in (f540e7e, merge commit 27bc149), so python3 tools/ci/spec_coverage.py --check passes here (spec-coverage: 139 rows, 135 required sections, 0 problems) and R3 matches the TSV the branch carries. It must land after #398; the other rows are measured from run 40542129639 and do not depend on it.

Source-provenance declaration

By submitting this PR I certify that my contribution does not incorporate executable code from any source whose license is incompatible with Apache-2.0. Specifically:

  • No Autodesk DWG SDK source (RealDWG, ObjectARX, ObjectDBX) or NDA-protected Autodesk documentation was consulted or imported.
  • No Open Design Alliance Teigha / Drawings SDK source was consulted or imported. The ODA's public Open Design Specification for .dwg files PDF is explicitly allowed (see CLEANROOM.md).
  • No GPL-licensed DWG implementation source (LibreDWG, etc.) was consulted or imported. This matters because dwg-rs is Apache-2.0 and must remain compatible.

My contribution is based on:

  • The ODA's freely-redistributable Open Design Specification for .dwg files (v5.4.1);
  • Public reverse-engineering notes, research papers, or blog posts cited inline;
  • Reading algorithm-description comments (not executable code) in permissively-licensed projects (MIT / Apache / BSD) to resolve spec ambiguities — disclose any such reading in this PR body so it can be recorded in CLEANROOM.md.

See CLEANROOM.md for the full allowed/forbidden source list and the honest scope of what "clean-room" means for this project.

Developer Certificate of Origin

By submitting this PR, I certify that the contribution complies with the
Developer Certificate of Origin 1.1.
Specifically, I affirm that the contribution is my own work (or rightfully
licensed to me) and that it can be distributed under the project's Apache-2.0
license.

I will sign off commits with git commit -s when asked, which adds a
Signed-off-by trailer to the commit message asserting the DCO.

…d say what measured them (#140, #147, #148, #133, #127)

Seven rows leave partial for closes because no record of any kind errors on the
52 drawings of run 40532346172 and the errors their notes still quote were
fixed: TEXT, ATTRIB, ATTDEF (#258), MTEXT (#261), VIEW (#263, #284), DIMSTYLE
(#293) and HATCH (#264, the R14 records routed). §22 AcDb:Template goes from
missing to partial: dxf_header reads $MEASUREMENT from it (#320). §9 stays
closes, now tracked by #127 (R13) and carrying the per-release evidence behind
closing #128, #129 and #130. The page's Last measured line and the paragraph
that said closes came from a local 19-file corpus are updated.
…ain run (#195)

Header, R2, R3, R4, R8, X1 and S3 now carry what run 40542129639 (main 61255e9)
and docs/data/spec-coverage.tsv say: 52 drawings with 0 errored records and 533
skipped, 53 sections scored by the DXF oracle with 22 values disagreeing, 90
closes, 13 partial, 6 decoder and 29 missing rows, a wasm32 compile of the
library in the Clippy job. X1 (DXF) moves from not measured to failed: the HEADER,
TABLES, ENTITIES and BLOCKS probes pair the written records with AutoCAD's export
and find 0 groups disagreeing, and 342 entity records of 18 kinds and the OBJECTS
section are not written. No other status changes.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-28T16:52:31.982595Z 76bd093 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…t the rows it moves (#195)

This branch contains #398's commit f540e7e and must land after #398.
…6 decoder, 28 missing (#195)

The counts are those of docs/data/spec-coverage.tsv with #398, whose moves run
40532346172 proves.
# Conflicts:
#	docs/data/spec-coverage.tsv
#	docs/spec-coverage.md
@DrunkOnJava
DrunkOnJava enabled auto-merge (squash) October 28, 2026 16:59
@DrunkOnJava
DrunkOnJava merged commit 215246b into main Oct 28, 2026
24 checks passed
@DrunkOnJava
DrunkOnJava deleted the docs/release-criteria-refresh branch October 28, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant