121def reseed(changelog_md: Path, source_dir: Path) -> ReseedReport:
122 """Tile the legacy changelog into verbatim ``source/changelog/roadmap/*`` records."""
124 text = Path(changelog_md).read_text(encoding=
"utf-8")
126 out = Path(source_dir) /
"changelog" /
"roadmap"
127 for stale
in (Path(source_dir) /
"changelog").rglob(
"*.md"):
129 out.mkdir(parents=
True, exist_ok=
True)
132 for index, chunk
in enumerate(chunks, start=1):
134 if re.fullmatch(rc.ROADMAP_VERSION_RE, version):
135 report.store_versions += 1
137 schema_version=rc.SCHEMA_VERSION,
142 extensions={
"changelog_seq": index},
144 path = out / f
"{index:03d}-{_slug(chunk)}.md"
145 path.write_text(format_record_text(model, body=chunk), encoding=
"utf-8", newline=
"")
146 header = chunk.splitlines()[0]
if chunk
else ""
147 report.coverage.append((index, version, header[:80]))
148 report.records = len(chunks)
149 _dbg(
"OC_CHAT.MAIN", func, f
"reseeded {len(chunks)} segments", 2)