Releases: Sayrrexe/Wiverno
Releases · Sayrrexe/Wiverno
Release 1.0.4
What’s New
HTTP Status Validation
wiverno/core/http/validator.py— runtime validation of HTTP response status codes;
raisesInvalidHTTPStatusErrorfor invalid or non-standard codeswiverno/core/exceptions.py— structured exception hierarchy- Integration tests
tests/integration/test_http_status.pyand unit tests
tests/unit/test_http_validator.py(300+ checks)
Enhanced Built-in Servers (#13)
- Dev server (
wiverno/dev/dev_server.py) redesigned: hot reload, improved
error pages, enhanced logging wiverno/core/server.pyextended with lifecycle hooks and configuration options
Refactored Routing System (#6, #8)
- Page logic moved into separate classes; imports simplified
- Fixed query parameter overwrite bug (#7)
- Added alternative routing methods (#4)
- Refactored
routing/registry.py,routing/base.py,routing/patterns.py
Developer Experience
Annotated[Type, Doc(...)]docstrings added to all__init__parameters (#15)- Package publishing to PyPI via CI (#10)
- Project version updated to 1.0.4
Documentation
- New guides:
guide/running.md,guide/status-codes.md - New API reference:
api/dev/dev-server.md - Updated: quickstart, routing, requests, project structure
mkdocs.ymlexpanded with new navigation sections
Release 1.0.3
HTTP Status Code Validation
- Added comprehensive HTTP status code validation system
- Automatic normalization to WSGI-compliant format
- Support for integer and string status codes (200, "404 Not Found", etc.)
- Auto-correction of malformed status strings
- New
HTTPStatusValidatorclass inwiverno.core.http.validator - New
InvalidHTTPStatusErrorexception
Enhanced Built-in Servers
- RunServer: Graceful shutdown with SIGINT/SIGTERM signal handling
- RunServer: New
stop()method for programmatic shutdown - RunServer: Configurable
request_queue_sizeparameter - DevServer: Refactored API with
serve()as main entry point - Improved logging for server lifecycle events
📚 Documentation
- New comprehensive "Running Your Application" guide
- New "HTTP Status Codes" guide with best practices
- Dedicated API reference pages for DevServer and RunServer
- Updated all code examples across documentation
- Fixed CLI command references
🐛 Bug Fixes
- Fixed CI workflow branch names
- Removed obsolete HTTP status codes from tests
- Updated HTTP 413 status code documentation
⚠️ Breaking Changes
- Default error handlers (404/405/500) now return integer status codes
DevServer.start()is now private - useDevServer.serve()instead- Custom error handlers should return integers or properly formatted strings
📊 Testing
- Added 45 new tests (35 unit + 10 integration)
- Coverage increased to 96.45%
- All 280 tests passing
Fixed requirements Installation
Fixed
- CLI Installation: Fixed
ModuleNotFoundErrorwhen runningwivernocommand after installation. The CLI dependencies (typer,rich,watchdog) are now included in the main package requirements instead of being optional dev dependencies.
Changed
- Documentation: Updated all examples to use
run.pyas the default application module name instead ofapp.py, matching the framework's intended conventions. - CLI Usage: Simplified CLI commands by removing unnecessary
--app-moduleflags from documentation. The defaults are nowrun.py(module) andapp(variable name).
Breaking Changes
- Users who previously relied on CLI dependencies being optional will now have them installed automatically. This increases the base installation size but ensures the
wivernocommand works out of the box.
First Version
v1.0.0 fix(pyproject): fix project version