Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
Added¶
- Schema Auto-Detection (Phase 0):
ValidationEnginenow defaults toschema_version="auto" - Detects version from
$schema,@context, ortypearray - New
detect_schema_version()andis_dpp_document()functions - JSON-LD Semantic Validation (Phase 1): PyLD-based expansion validation
JSONLDValidatorclass withCachingDocumentLoaderfor remote contexts- New error codes: JLD001-JLD004 for context and term validation
- Enable with
ValidationEngine(validate_jsonld=True) - Extended Code Lists (Phase 2): UNECE Rec 46, HS codes, GTIN validation
validate_gtin(),is_valid_material_code(),is_valid_hs_code()- GS1 Digital Link URL parsing and validation
- 85 UNECE Rec 46 material codes, 156 textile HS codes (Chapters 50-63)
- New rules: VOC003, VOC004, VOC005
- Verifiable Credential Verification (Phase 3): DID resolution and signatures
CredentialVerifier,DIDResolver,SignatureVerifierinverifier/- Support for
did:webanddid:keyresolution - Ed25519, ES256, ES384 signature algorithms
- New
ValidationResultfields:signature_valid,issuer_did - Enable with
ValidationEngine(verify_signatures=True) - Deep/Recursive Validation (Phase 4): Supply chain traversal
DeepValidatorwith async crawling, rate limiting, retry logic- Cycle detection for circular references
- New
ValidationEngine.validate_deep()async method CredentialStatusmodel for W3C VC v2 revocation checkingcredentialStatusfield onDigitalProductPassportScope1,Scope2,Scope3values toOperationalScopeenum (GHG Protocol)- SHA-256 integrity hash for schema v0.6.1
pytest-asynciofor native async test supportCONTRIBUTING.mdwith development guidelines- Stable error code mapping (
PYDANTIC_ERROR_CODES) for model validation
Changed¶
- Breaking:
ValidationEngine()defaults toschema_version="auto" - Architecture: Validation expanded from 3 to 5 layers
- Core dependencies:
httpx,jsonschema,pyld,cryptographynow required - Removed all
HAS_*conditional checks from source code has_vc_support()now always returnsTrueoperational_scopeis now optional inEmissionsPerformance- Replaced bare
except Exceptioncatches with specific exception types - Consolidated error system: removed unused
EnhancedValidationErrorclass - Version now read from
pyproject.tomlviaimportlib.metadata - Async validation uses
asyncio.to_thread()instead of deprecated API
Fixed¶
- README plugin API example now matches actual
SemanticRuleprotocol - Model error codes are now deterministic (based on Pydantic error type)
- Unused imports and arguments cleaned up across verifier module
- Flaky
test_engine_never_crashes_on_binarydeadline increased to 500ms
0.1.0 - 2026-01-29¶
Added¶
- Initial release
Materialmodel for fiber composition with ISO 2076 codesSupplyChainNodemodel for traceabilityDigitalProductPassportmodel following EU ESPR regulations- JSON-LD export for Semantic Web compatibility
- Unit tests for all models and validators
- GitHub Actions CI/CD pipeline
- Pre-commit hooks with ruff