Files
pyappengine/release_note.txt
2026-04-12 19:06:07 +02:00

52 lines
2.2 KiB
Plaintext

Release notes — pyappengine 0.7
================================
Documentation
-------------
- Added full API reference (Google-style docstrings on all public classes and
methods: AppEngine, CommandsLoader, Commands, AEErrs, AppEngineException).
- Set up MkDocs with Material theme and mkdocstrings for auto-generated
documentation site.
- Added docs/index.md (overview and quick-start example).
- Added docs/getting-started.md (project structure, module authoring guide,
dependency declaration, help system, error handling).
- Added docs/api.md (API reference page, auto-generated from docstrings).
Tests
-----
- Added test suite based on pytest and pytest-cov (88% → 91% coverage).
- tests/conftest.py: shared fixtures and SampleModule helper class.
- tests/test_errors.py: tests for is_number, AEErrs, AppEngineException.
- tests/test_commands.py: tests for Commands (val_to_print, logging, stop,
help, list_modules, execute_command, dispatch).
- tests/test_commands_loader.py: tests for dynamic module loading, nickname
override, config section injection, dependency injection (list and dict
forms), threaded module lifecycle.
- tests/test_app_engine.py: tests for AppEngine init, config parsing, log
setup, stop mechanism.
Bug fixes
---------
- AEErrs.__str__: ERROR_MESSAGES was keyed by enum members but looked up by
integer value (.value). Fixed to look up by enum member.
- execute_command: after resolving an underscore/hyphen module alias, the
original (non-aliased) name was still used for dispatch, causing a KeyError.
Fixed to use the resolved alias.
- execute_command: when parsing "help <module>" (no function name), args were
not cleared before dispatch. This caused cmd_help() to receive the module
name as an argument and return "No command with this name". Fixed to clear
args and kwargs after resolving the module name.
Project / packaging
-------------------
- pyproject.toml: added optional dependency groups [docs] and [dev].
- pyproject.toml: added [tool.pytest.ini_options] (testpaths, pythonpath,
default coverage options).
- .gitignore: added site/, .coverage, htmlcov/, .pytest_cache/.
- README.md: added Development section (installation, running tests, coverage
reports, documentation preview and build).