Reconcile conformance/yaml-test-suite-gaps with main #1

Closed
opened 2026-07-04 19:56:33 +00:00 by Mihaela · 1 comment
Mihaela commented 2026-07-04 19:56:33 +00:00 (Migrated from codeberg.org)

Status (2026-07-04)

Open. This is the biggest structural decision in the repo right now.

The conformance/yaml-test-suite-gaps branch and main have genuinely diverged: the branch is 62 commits ahead of the merge base while main has 109 commits the branch does not have.

The branch carries the valuable work:

  • Full yaml-test-suite conformance, 402 of 402 cases passing per Tests/Fixtures/yaml-test-suite-manifest.yaml.
  • The PureYAMLJSON product.
  • The located-parse API with exact scalar end positions.
  • The start of the libyaml scanner port described in docs/LIBYAML_PORT.md.

Downstream, Bonsai pins its PureYAML dependency to this branch by name, so the branch cannot simply be deleted after a squash merge without coordinating that pin.

Fix:

  • Decide the merge strategy (merge, rebase, or promote the branch).
  • Land the result on main, cut a tag, and move the Bonsai pin to that tag.
## Status (2026-07-04) Open. This is the biggest structural decision in the repo right now. The `conformance/yaml-test-suite-gaps` branch and `main` have genuinely diverged: the branch is 62 commits ahead of the merge base while `main` has 109 commits the branch does not have. The branch carries the valuable work: - Full yaml-test-suite conformance, 402 of 402 cases passing per `Tests/Fixtures/yaml-test-suite-manifest.yaml`. - The `PureYAMLJSON` product. - The located-parse API with exact scalar end positions. - The start of the libyaml scanner port described in `docs/LIBYAML_PORT.md`. Downstream, Bonsai pins its PureYAML dependency to this branch by name, so the branch cannot simply be deleted after a squash merge without coordinating that pin. Fix: - Decide the merge strategy (merge, rebase, or promote the branch). - Land the result on `main`, cut a tag, and move the Bonsai pin to that tag.
Mihaela commented 2026-07-04 22:03:18 +00:00 (Migrated from codeberg.org)

Status (2026-07-05)

Divergence mapped; recommendation below.

Merge-base 16a47df. This branch is 63 commits ahead; main is 109 ahead. The two sides are architecturally forked: main kept patching the hand-rolled Scanner/TokenEventParser engine (~85 parsing fixes), while this branch replaced that engine wholesale with the libyaml port (Sources/Parsing/LibYAML.*) and deleted the hand-rolled files. Both sides also invented an opt-in located parse independently, and both evolved ParseError, Scalar, and EventStreamComposer.

A git merge-tree --write-tree main HEAD dry run reports 24 conflicting files: 12 modify/delete (all hand-rolled engine files main patched and this branch deleted) and 12 content or add/add conflicts (CHANGELOG.md, README.md, .githooks/pre-commit, the located-parse types and tests, and a few shared test files).

Recommended direction: merge this branch into main, not a rebase.

  • Rebasing would replay 63 port-building commits against an engine main kept mutating, re-hitting the same conflicts repeatedly.
  • Merging with the port as the winner collapses the 12 modify/delete conflicts immediately (keep the deletions; main's edits to deleted files are moot).
  • The real manual work is bounded: dedupe the located-parse types (pick one LocatedValue/SourcePosition design), merge the changelog/readme/githooks text, and fold the handful of shared test files.
  • Safety net before finalizing: treat main's ~85 post-fork fix(parsing) commit subjects as a checklist and run the canonical event-stream and in.json gates against the port, so no case main fixed regresses where the port lacked the equivalent. The whole-suite 402/402 gate on this branch already covers the official suite; the checklist covers anything main fixed outside it.

After the merge lands on main: cut a tag, then move the Bonsai pin from this branch name to that tag (Bonsai#1 follow-up).

## Status (2026-07-05) Divergence mapped; recommendation below. Merge-base `16a47df`. This branch is 63 commits ahead; main is 109 ahead. The two sides are architecturally forked: main kept patching the hand-rolled `Scanner`/`TokenEventParser` engine (~85 parsing fixes), while this branch replaced that engine wholesale with the libyaml port (`Sources/Parsing/LibYAML.*`) and deleted the hand-rolled files. Both sides also invented an opt-in located parse independently, and both evolved `ParseError`, `Scalar`, and `EventStreamComposer`. A `git merge-tree --write-tree main HEAD` dry run reports 24 conflicting files: 12 modify/delete (all hand-rolled engine files main patched and this branch deleted) and 12 content or add/add conflicts (`CHANGELOG.md`, `README.md`, `.githooks/pre-commit`, the located-parse types and tests, and a few shared test files). Recommended direction: **merge this branch into main**, not a rebase. - Rebasing would replay 63 port-building commits against an engine main kept mutating, re-hitting the same conflicts repeatedly. - Merging with the port as the winner collapses the 12 modify/delete conflicts immediately (keep the deletions; main's edits to deleted files are moot). - The real manual work is bounded: dedupe the located-parse types (pick one `LocatedValue`/`SourcePosition` design), merge the changelog/readme/githooks text, and fold the handful of shared test files. - Safety net before finalizing: treat main's ~85 post-fork `fix(parsing)` commit subjects as a checklist and run the canonical event-stream and `in.json` gates against the port, so no case main fixed regresses where the port lacked the equivalent. The whole-suite 402/402 gate on this branch already covers the official suite; the checklist covers anything main fixed outside it. After the merge lands on main: cut a tag, then move the Bonsai pin from this branch name to that tag (Bonsai#1 follow-up).
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: NodetteHQ/PureYAML#1
No description provided.