Repository navigation
Release v0.6.0
TopMark v0.6.0 — Release Notes
🚀 A feature-packed release introducing a new configuration architecture, public API docs, snapshot tooling, and stricter quality gates.
✨ Added
-
Public API docs
- Document configuration via mappings.
- Clarify that runtime uses an immutable
Config.
-
API snapshot tooling
tools/api_snapshot.pyto generate a curated public API snapshot.- Make targets:
public-api-update,.public-api-updatepublic-api-check,public-api-ensure-clean
- Tox envs:
py{310,311,312,313}-apito run the snapshot test only.
-
Docs quality
- Standardized Google-style docstrings.
- Integrated
pydoclint. - Improved MkDocs + mkdocstrings rendering.
🔧 Changed
-
Configuration architecture
- Introduced
MutableConfig(internal builder) and immutableConfig(runtime snapshot). - Public API continues to accept
Mapping[str, Any] | None. - Inputs normalized internally and frozen before execution.
- Renderer constructs an effective snapshot without mutating inputs.
- Introduced
-
Config resolution (CLI)
- Resolution order now explicit:
- Packaged defaults
- Project config in CWD (
pyproject.toml [tool.topmark], elsetopmark.toml) unless skipped - Explicit
--configfiles (in order) - CLI overrides
- Resolution order now explicit:
-
Header field ordering
topmark checknow enforces the configured field order consistently.
-
Typing/import hygiene
- Postponed annotations.
- Type-only imports under
TYPE_CHECKING. - Narrower typing imports.
- Faster imports and fewer cycles.
🐛 Fixed
- CLI & pipeline
- Header order now deterministic — no more “up-to-date” false negatives.
- Type-checking & lint
- Casts, variable redefinitions, analyzer false positives fixed in CLI helpers and resolver paths.
📚 Docs
- Added “Configuration via mappings (immutable at runtime)” section to public API docs.
- Concise note mirrored in
topmark.apimodule docstring. - Normalized docstrings across the codebase.
- Removed Sphinx roles in favor of Markdown-friendly mkdocstrings.
🧪 Tooling
- Added
pydoclintto dev toolchain. - Wired into Makefile and pre-commit.
- Reordered pre-commit hooks for faster feedback.
- Snapshot workflow integrated into Makefile and CI-friendly checks.
🧹 Chore
- Repository-wide header reformat to new field order (no functional changes).
📝 Notes
- No public API surface changes:
topmark.api.check()andtopmark.api.strip()signatures unchanged. MutableConfigremains internal and is not part of the stable API.
Public callers should pass a mapping or a frozenConfig.
📦 Installing / Upgrading
pip install -U topmark🙌 Thanks
Thanks to everyone who tested configuration changes and verified doc rendering across environments.
Links
- PyPI: https://pypi.org/project/topmark/
- Docs: https://shutterfreak.github.io/topmark/
- Changelog: see
CHANGELOG.mdin the repo - Full Changelog: v0.5.1...v0.6.0