Skip to content

Releases: Sayrrexe/Wiverno

Release 1.0.4

02 May 15:50

Choose a tag to compare

What’s New

HTTP Status Validation

  • wiverno/core/http/validator.py — runtime validation of HTTP response status codes;
    raises InvalidHTTPStatusError for invalid or non-standard codes
  • wiverno/core/exceptions.py — structured exception hierarchy
  • Integration tests tests/integration/test_http_status.py and 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.py extended 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.yml expanded with new navigation sections

Release 1.0.3

30 Dec 09:03
c95bf3f

Choose a tag to compare

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 HTTPStatusValidator class in wiverno.core.http.validator
  • New InvalidHTTPStatusError exception

Enhanced Built-in Servers

  • RunServer: Graceful shutdown with SIGINT/SIGTERM signal handling
  • RunServer: New stop() method for programmatic shutdown
  • RunServer: Configurable request_queue_size parameter
  • 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 - use DevServer.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

20 Nov 10:46

Choose a tag to compare

Fixed

  • CLI Installation: Fixed ModuleNotFoundError when running wiverno command 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.py as the default application module name instead of app.py, matching the framework's intended conventions.
  • CLI Usage: Simplified CLI commands by removing unnecessary --app-module flags from documentation. The defaults are now run.py (module) and app (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 wiverno command works out of the box.

First Version

19 Nov 16:53

Choose a tag to compare

v1.0.0

fix(pyproject): fix project version