Skip to content

v0.3.0-rc.5 errata from the first implementation - #62

Merged
callumalpass merged 4 commits into
mainfrom
errata/rc5-core-a
Oct 4, 2026
Merged

callumalpass merged 4 commits into
mainfrom
errata/rc5-core-a

Conversation

@callumalpass

Copy link
Copy Markdown
Collaborator

Errata found while implementing rc.5 in the first engine. All marked provisional.

  • CRLF-aware append separator (chapter 12A, reference model, fixture merge.append_separator_crlf).
  • Portable path rules made normative in chapter 02.
  • Discovered path collisions: a replicating tool MAY resolve a group by the collision rule.
  • Fixture fixes found by a second implementer.

Release notes and CHANGELOG updated. Executable tests (187), the level guardrail and the migration check pass. rc.5 stays unpublished until an engine implements it.

- 03: plain scalars resolve with the YAML 1.2 core schema (yes, on, 0777,
  1_000, timestamps; .inf/.nan stay strings).
- 12A: which lines belong to a frontmatter entry (column-0 comments inside a
  block sequence; indented comments after the value); the body alignment
  pinned to Myers' linear-space algorithm; a type_conflict during a merge
  merges as conflict; conflict order; append-append onto a base without a
  final line break adds no empty line.
- 10: \< and \> are literals; regex-lite-only syntax is invalid; portable
  regex limits (length, nesting, repetition count, program size); case
  mappings use the path-key Unicode version; RFC 8785 string(double); CEL
  map iteration in insertion order.
- 02: Unicode 17.0.0 for path keys. 07: RFC 8785 number text in path
  patterns.
- Model (scripts/concurrent_edits_model.py): YAML 1.2 core loader, entry
  splitting, Myers alignment, append rule, type_conflict fallback, conflict
  order, regex limits, RFC 8785 numbers.
- Tests: 11 new rc.5 tests (merge, regex, paths); ids for every
  cel/cel-profile.yaml test.
- Release notes: an errata section and updated provisional choices.
- regex.schema_pattern_ascii validated a record that matches no type; it now
  validates words/mixed.md, which matches the type and fails pattern.
- collection.unique_collection_scope: the record also has a path_glob slug
  duplicate; use issues_contain. The suite README now defines exact (set)
  versus _contain comparison of issue and diagnostic lists.
- optional-membership: the group relied on v0.2's write_empty_lists, which
  v0.3 does not define; v0.3 writes [] and keeps it distinct from missing,
  so the create succeeds (membership.empty_list_persisted, changed).
- 02: a tool that cannot hold two records with one path key (log-based or
  replicating engines) may resolve a discovered collision by the collision
  rule (provisional); its adapter skips paths.discovered_collision.
- Release notes updated.
- 12A: the append-append separator uses the body's line-ending style (the
  base's first terminator, else the appends', else \n), so a merge never mixes
  line endings. Model and fixture merge.append_separator_crlf.
- 02: a normative Portable Paths section (provisional): the path-safety
  rules every tool applies to records, resources and files, with a fixed,
  Unicode-version-independent comparison for .mdbase and node_modules
  (mdbase-next SEC-033).
- Release notes and CHANGELOG.
@callumalpass
callumalpass merged commit 2be7015 into main Oct 4, 2026
20 checks passed
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