Repository navigation
Release v0.3.0
TopMark v0.3.0 — Release Notes
🚀 A major milestone introducing a stable public API surface, new CLI subcommands, and an expanded documentation system.
✨ Added
- Stable public API surface under
topmark.apiandtopmark.registry.- Functions:
check(),strip(),version(),get_filetype_info(),get_processor_info(). - Result/metadata types:
Outcome,FileResult,RunResult,FileTypeInfo,ProcessorInfo,WritePolicy. - Structural protocols for plugins:
PublicFileType,PublicHeaderProcessor. Registryfacade for read-only discovery of file types, processors, and bindings.- Public API tests and snapshot (
tests/api/public_api_snapshot.json) to guard semver stability.
- Functions:
- Docs overhaul for API & internals:
- New
docs/api/public.md(stable public API) anddocs/api/internals.md(internals landing). - New
docs/gen_api_pages.pygenerator for per-module internals with breadcrumbs and first-line summaries. - MkDocs wiring via
mkdocs-gen-files&autorefs. - Local typing stub
typings/mkdocs_gen_files/__init__.pyito avoid plugin requirement in dev envs. - Stability policy & semver guardrails added to CONTRIBUTING.
- New
- CLI improvement:
- Re-export
cliattopmark.cliforfrom topmark.cli import cli.
- Re-export
- New
processorscommand:- Lists registered header processors and their file types.
- Options:
--long,--format default|json|ndjson|markdown. - Shared Click-free
markdown_tablehelper for Markdown output.
🔄 Changed
- CLI refactor:
- Explicit subcommands and unified input planning.
- Migrated away from custom
typed_*helpers to native Click decorators. - Standardized exit policy & summaries.
- Subcommands include:
check,strip,dump-config,filetypes,init-config,show-defaults,version.
- Config layer:
- Now accepts
ArgsLikemapping (CLI-free). - No longer requires a Click namespace in public API entry points.
- Now accepts
- Docs:
- Split monolithic API page into public vs internals.
- Added generator-based internals.
- Fixed breadcrumb/link regressions.
- Aligned pre-commit and mdformat settings with new docs layout.
- Output formatting:
- Adopt Click’s built-in styling.
- Unified Markdown views for
filetypes&processors.
- Tooling:
- Bumped pre-commit hooks (ruff v0.12.12, pyright v1.1.405).
- Project version set to
0.3.0inpyproject.tomlandCONTRIBUTING.md.
⚠️ Breaking
- The public API surface is explicitly defined from this release forward and will follow semver.
- Low-level registries and internals remain unstable.
- Implicit default CLI command removed:
topmark --…→ usetopmark check --….
- Legacy
typed_*Click helpers removed.
🐛 Fixed
- Correct enum comparisons for
OutputFormatacross commands. - Markdown rendering branches trigger consistently; format handling unified.
- Docs warnings around internal links/breadcrumbs resolved.
- Configs aligned with
api/public.md.
📦 Installing / Upgrading
pip install -U topmarkLinks
- PyPI: https://pypi.org/project/topmark/
- Docs: https://shutterfreak.github.io/topmark/
- Full changelog: see
CHANGELOG.mdin the repo - Full Changelog: v0.2.1...v0.3.0