Migration from 0.1.x
Version 0.2 is a breaking release that narrows ttsready to a source-neutral preparation API. It does not preserve 0.1 application behavior behind compatibility wrappers.
Removed ownership
The following 0.1 areas are no longer part of ttsready:
SSMD and document/book parsing, source-specific models, file readers, and writers.
CLI commands, reporting workflows, caches, sidecars, planning, selection, and freeze/materialization.
Speaker/JEV scanning, registries, and speaker annotation workflows.
File-based locks, exports, and document-owned reproducibility operations.
Callers now own source parsing and I/O, output formats, workflow state, and persistence. The library accepts only caller-owned text data and returns in-memory values.
Replace the 0.1 preparation flow
A file- or document-oriented call such as load(...), load_ssmd(...), prepare_tts_plan(...), or a CLI command must be moved to the caller’s adapter. Pass the text and language directly to the library:
from ttsready import TextUnit, prepare_text, prepare_units
# One text unit:
prepared = prepare_text(source_text, language="en-US", unit_id="chapter-1")
print(prepared.spoken_text)
# Or an ordered set with per-unit language:
result = prepare_units(
(
TextUnit("chapter-1", source_text, "en-US", role="body"),
TextUnit("caption-1", caption_text, "fr-FR", role="caption"),
)
)
prepare_text() returns a PreparedUnit; prepare_units() returns a PreparationResult. Both expose exact source-relative changes, issues, and contexts. apply_changes() verifies and applies a change set to the exact source string supplied by the caller.
If the application reads or writes a file, keep that code outside ttsready. If it parses a format, convert relevant regions into TextUnit values and retain the mapping back to the caller’s source model.
Policy and state
Replace document annotations with caller-owned SpeechOverride values. Use global, unit, or occurrence scopes as appropriate; see overrides. Use check_units() and the issues attached to preparation results for residual QA. Use pure fingerprints and JSON serialization when building caller-owned records; ttsready no longer maintains caches, lock files, or persistent review state.
Dependency and packaging changes
The 0.2 runtime dependencies are spokenform>=0.4.5,<0.5 and phrasplit>=0.3.9,<1. SSMD/SSMDConvert, CLI, PyYAML, Utterplan, and PyJEV are no longer runtime dependencies. The CLI and speaker extras were removed; ttsready[lexical] remains optional.
Update imports to the source-neutral exports in ttsready.__all__, and pin the new major API boundary before upgrading. See Python API, ownership boundary, and reproducibility.