Skip to content

Document BSON value semantics and enforce strict docs - #154

Merged
quinnj merged 1 commit into
masterfrom
maintenance/bson-nested-documentation
Oct 4, 2026
Merged

quinnj merged 1 commit into
masterfrom
maintenance/bson-nested-documentation

Conversation

@quinnj

@quinnj quinnj commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

The BSON docstring promises Dict-like mutation, but indexing an embedded document returns a decoded copy. Changing b["foo"]["bar"] leaves b unchanged, while assigning an existing key appends another field. Document these behaviors and execute a small dictionary-to-BSON rebuild example during the manual build.

The recipe is limited to ordinary decoded values supported by BSON's constructor. It states that dictionary conversion collapses duplicate keys and can lose binary subtype information; BSONTimestamp and BSONUnsupported require an explicit encoding. The example checks the nested result, original document, unrelated field, and unique field count.

Enable strict documentation checks after adding three missing type entries and fixing the existing BSONValue reference. Unchanged master fails those exact strict checks; the repaired complete manual passes. Package runtime code, dependencies, exports, versions, and workflows are unchanged.

Validation:

  • Strict Documenter 0.27 builds pass on Linux Julia 1.6.7 and 1.13.0, including the executable example's five assertions and rendered tutorial/API checks.

  • Sixteen public controls verify the nested-copy, array-copy, encoded-child snapshot, duplicate-key, and safe ordinary-value rebuild behavior on current source with both runtimes, and on the existing v0.9.0 source with Julia 1.13.0. These controls use native MongoC 1.30.8; the issue's historical Julia 1.9.3/native-driver combination was not recreated.

  • Exact head d6da3368c6ac9939134203e7d0262d3baa3ab239 passes all 22 checks: both complete ten-job push/PR workflows and both coverage gates. All 18 expected uploads explicitly target Mongoc and that head; the public report is complete with 18 sessions at 83.77%.

  • A private review of the complete source/documentation diff found no remaining blocker. This does not provide GitHub approval.

  • Merged as 5d68e41a214ca1fbb0b0aff281b49d987d0ddab3; all ten main-branch jobs pass. All nine expected coverage uploads are accepted for that commit, with nine processed sessions at 84.14%. The tested and merged Git trees are identical.

  • The published tutorial and API manual return HTTP 200 and include the corrected content. All 60 API source links point to the merge commit.

Relates to #113. The request for live nested mutation remains open; this change documents current behavior.

Co-authored by Codex

AI disclosure: This work was prepared with assistance from OpenAI Codex.

Explain decoded-copy and append semantics, and execute a dictionary-to-BSON
rebuild example during documentation builds. Include the three missing
documented types and correct the BSONValue reference so the complete manual
passes strict Documenter checks.

Relates to #113; runtime mutation behavior remains unchanged.

AI disclosure: This work was prepared with assistance from OpenAI Codex.
@codecov

codecov Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.14%. Comparing base (78508ac) to head (d6da336).
⚠️ Report is 6 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #154      +/-   ##
==========================================
+ Coverage   84.01%   84.14%   +0.12%     
==========================================
  Files          11       11              
  Lines        1652     1652              
==========================================
+ Hits         1388     1390       +2     
+ Misses        264      262       -2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@quinnj
quinnj merged commit 5d68e41 into master Oct 4, 2026
22 checks passed
@quinnj
quinnj deleted the maintenance/bson-nested-documentation branch October 4, 2026 17:22
@quinnj

quinnj commented Oct 4, 2026

Copy link
Copy Markdown
Member Author

Merged as 5d68e41a214ca1fbb0b0aff281b49d987d0ddab3. All ten main-branch jobs pass, and all nine expected coverage reports are accepted and processed for that commit (84.14%). The merge tree matches the tested tree.

The published tutorial and API manual return HTTP 200 with the corrected text; all 60 API source links name the merge commit. Issue #113 remains open for live nested mutation.

AI disclosure: This work was prepared with assistance from OpenAI Codex.

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