Skip to content

docs: repair CHANGELOG structure and add the v0.7.0 migration guide - #237

Merged
s2x merged 1 commit into
mainfrom
docs/changelog-structure-v0.7
Sep 29, 2026
Merged

s2x merged 1 commit into
mainfrom
docs/changelog-structure-v0.7

Conversation

@s2x

@s2x s2x commented Sep 29, 2026

Copy link
Copy Markdown
Member

Follow-up to the v0.7.0 milestone merge (#229–#235). No code change; the suite runs green before and after.

What was broken

Merging seven branches into a moving main left the [Unreleased] section structurally broken:

  • Four consecutive ### Fixed headings. Keep a Changelog expects one per category, and GitHub renders the duplicates as separate lists, so entries after the first looked detached from the section.
  • Four missing blank lines between adjacent entries, which merged them into a single Markdown list item — the entries after the first were swallowed visually.

Only [Unreleased] is touched. The historical sections keep their formatting, including their own pre-existing duplicate headings, which are not this PR's business.

What was missing

The test-command change was not in the changelog at all. That is the one thing in this milestone that can break someone's workflow, and it was undocumented. .github/scripts/run-tests.sh already handled both halves correctly, so the defect was documentation only.

The open allocator finding (#228) was invisible. It is a real undefined-behaviour issue with the prebuilt SDK, currently benign but not going away. Added under a new ### Known issues heading, explicitly marked as not the cause of the exit crash that was fixed, because that confusion already happened twice during this milestone.

MIGRATION.md had no v0.7.0 section

Six additive API changes, a prebuilt SDK switch, and the invocation change — with nothing written down. Added a full section, plus a file-level index at the top since it now covers two upgrades. Each entry states whether it is backward compatible; only the test command is not, and that is called out on its own.

Guarding against a repeat

test_docs_consistency.phpt now asserts that the migration guide exists, states the change is additive, and documents each of the eight new public API names:

v0.7.0 section: present
v0.7.0 states additive: yes
forIvfRabitq               documented
setIvfRabitqParams         documented
twoPassBuild               documented
setVamanaPrefetch          documented
jiebaDictDir               documented
ftsBruteForceByKeysRatio   documented
getIoBackendType           documented
indexParams                documented

Without that check the guide silently falls behind the README again — which is exactly how it ended up with no v0.7.0 section.

Verification

Number of tests : 202               202
Tests skipped   :   0 (  0.0%)
Tests failed    :   0 (  0.0%)
Tests passed    : 200 ( 99.0%)

test_dbs/ is left with only .gitignore.

Note

This is deliberately not a 0.7.0 release. The milestone still has open issues (#222, #226, #217, #219, …), and the final ## [Unreleased] → ## [0.7.0] cut plus a tag is a separate step once those land. Doing it now would just need redoing.

🤖 Generated with Claude Code

Structural repairs to the [Unreleased] section, all of which came from merging
several branches into a moving main:

- Four consecutive `### Fixed` headings collapsed into one. Keep a Changelog
  expects one heading per category, and GitHub renders the duplicates as
  separate lists, so the later entries looked detached from the section.
- Missing blank line between four adjacent entries, which merged them into a
  single Markdown list item. Only the [Unreleased] section is touched; the
  historical sections keep their existing formatting.

Two content gaps:

- The v0.7.0 work changed how the suite must be invoked, and that was not
  recorded anywhere in the changelog. `php run-tests.php -n tests/` skipped 172
  of 189 tests on a glibc host because `-n` strips the conf.d ini that provides
  FFI. `.github/scripts/run-tests.sh` already handled both halves correctly, so
  the defect was documentation only.
- The cross-module allocator mismatch tracked as #228 is a real, still-open
  undefined-behaviour finding. Added under a new `### Known issues` heading so
  it is discoverable without reading the issue, and clearly marked as not the
  cause of the exit crash that was fixed.

MIGRATION.md gained a v0.6.0 -> v0.7.0 section covering the six additive API
changes, the prebuilt SDK switch, and the test-command change. All of it is
backward compatible except the invocation change, which is called out. The file
now opens with an index of both guides instead of a single title.

README gained the bundled zvec version, a pointer to the migration guide, the
corrected `zvec-install` example version, and three corrected test commands
with the reason the extra flag is needed.

test_docs_consistency.phpt now checks that the migration guide exists, states
the change is additive, and documents each of the eight new public API names.
Without that check the guide would silently fall behind the README again,
which is how it ended up with no v0.7.0 section at all.

Tests: 202/202, 0 skipped, 0 failed, 2 expected fail.
@s2x
s2x merged commit 58a0cf9 into main Sep 29, 2026
11 of 12 checks passed
@s2x
s2x deleted the docs/changelog-structure-v0.7 branch September 29, 2026 08:38
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