Changelog¶
This page documents the version history and migration paths for the azure-functions-validation package.
Versioning Scheme¶
This project follows Semantic Versioning (semver.org). Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backward compatible manner
- PATCH version when you make backward compatible bug fixes
The changelog is generated from Conventional Commits using git-cliff. Breaking changes are explicitly listed under the "Breaking Changes" section for each release.
Migration Guides¶
Migrating from v0.3.0 to v0.5.0¶
The v0.5.0 release significantly reduced the public API surface to focus on the core validation decorator.
- Global error handler removed:
register_global_error_handlerandGlobalErrorHandlerRegistryare deleted. Use theerror_formatterparameter on the@validate_httpdecorator instead for per-handler or shared formatting. - OpenAPI utilities removed:
openapi.pyandgenerate_422_error_schemaare removed. Use theazure-functions-openapipackage for OpenAPI generation. - Contract testing removed:
contract.py,@contract_test, andverify_contractswere experimental and have been removed. - Metadata helpers removed:
metadata.pyhelpers are no longer part of the public API. - Exceptions merged:
exceptions.pyis merged intoerrors.py. You should now importResponseValidationErrordirectly from the package root.
Full Version History¶
v0.5.1 (2026-03-14)¶
Changed¶
- Switched to
TypeAdapterfor response validation; pass through native Pydantic v2 error types - Modernized type annotations to PEP 604 (
X | Yinstead ofOptional[X])
Fixed¶
- Guard against
UnicodeDecodeErrorwhen parsing non-UTF-8 request bodies - Harden error handling hierarchy: body → 400/422, query/path/headers → 400/422, unexpected → 500
- Sanitize 500 error responses to prevent leaking internal details
Added¶
- Test coverage for
UnicodeDecodeError, query/path/headers error branches, and 500 sanitization - CRUD API example (
examples/crud_api) with 21 smoke tests covering list, get, create, update, delete - Unified tooling: Ruff (lint + format), pre-commit hooks, standardized Makefile
- Comprehensive documentation overhaul (MkDocs site with 15+ pages)
- Translated README files (Korean, Japanese, Chinese)
- Runnable examples with smoke tests
Docs¶
- Remove stale
register_global_error_handlerandmetadata.pyreferences from docs - Update architecture docs to reflect v0.5.0 module structure
- Add
request_modelshorthand example to usage guide - Add CRUD API example documentation to mkdocs site
- Standardized nav structure and documentation quality across ecosystem
v0.5.0 (2026-03-11)¶
Breaking Changes¶
- Removed
registry.py—register_global_error_handler()andGlobalErrorHandlerRegistrydeleted - Removed
openapi.py—generate_422_error_schema()deleted - Removed
contract.py—@contract_testandverify_contracts()deleted - Removed
metadata.py - Removed
exceptions.py— merged intoerrors.py - Public API reduced to 3 exports:
validate_http,ErrorFormatter,ResponseValidationError
Changed¶
- Split
decorator.pyintodecorator.py(config/wiring),pipeline.py(runtime engine),errors.py(error types/formatting) - Rewrote all documentation: README, PRD, DESIGN.md, api.md aligned with actual implementation
- Removed demo directory and assets
- Removed
openapi_aligned_validationexample
Improved¶
- 120 tests, 98% coverage (up from 72 tests)
- 0 lint, 0 type errors, 0 security issues
make check-allpasses cleanly
v0.3.0 (2026-03-08)¶
Added¶
- Contract testing utilities MVP
- OpenAPI integration utilities for 422 error schemas
- Global error handler registration
- Custom error formatter hook
- Comprehensive HTTP validation for Azure Functions
- Technical design documentation
Fixed¶
- HTTP validation code quality issues
- Test failures and related code quality regressions
Changed¶
- Project metadata and repository tooling
- CI and GitHub templates
- Version management for the 0.3.0 release
- Documentation updates for PRD, process, and error handling
v0.2.0 (2025-12-28)¶
Added¶
- Core validation adapter with Pydantic v2
Changed¶
- Version management for the 0.2.0 release
v0.1.0 (2025-12-20)¶
Added¶
- Initial package layout and scaffolding
- Public API export