Skip to content

Commit beb2384

Browse files
authored
Merge pull request #51 from vcon-dev/release/0.7.0
Release/0.7.0
2 parents 2aba493 + b48b905 commit beb2384

23 files changed

+8664
-498
lines changed

CHANGELOG.md

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,166 @@
1+
# Changelog
2+
3+
## [0.7.0] - 2025-07-19
4+
5+
### 🎉 Major Release: Complete vCon 0.3.0 Specification Compliance
6+
7+
This release implements full compliance with the IETF vCon 0.3.0 specification, adding comprehensive support for all new fields, validation, and features while maintaining complete backward compatibility.
8+
9+
### ✨ Added
10+
11+
#### **vCon Object Level Features**
12+
- **Extensions Support**:
13+
- `extensions` field for declaring extension capabilities
14+
- `must_support` field for specifying required extensions
15+
- Helper methods: `add_extension()`, `remove_extension()`, `get_extensions()`
16+
- Helper methods: `add_must_support()`, `remove_must_support()`, `get_must_support()`
17+
- Automatic duplicate prevention and validation
18+
19+
#### **Enhanced Party Object Support**
20+
- **New Contact Methods**:
21+
- `sip` field for SIP URI contact information
22+
- `did` field for Decentralized Identifier (blockchain-based identity)
23+
- `jCard` field for vCard format contact information (RFC 7095)
24+
- `timezone` field for party timezone information
25+
- **Civic Address Support**: Complete GEOPRIV specification compliance
26+
- All administrative areas (a1-a6)
27+
- Street and building information (sts, hno, hns, prd, flr)
28+
- Location and identification fields (country, pc, nam, lmk, loc, pod)
29+
30+
#### **Enhanced Dialog Object Support**
31+
- **Session Management**:
32+
- `session_id` field for session tracking
33+
- `content_hash` field for content integrity verification (replaces alg/signature)
34+
- `application` field for application identification
35+
- `message_id` field for email/text dialog identification
36+
- **Content Integrity**:
37+
- `calculate_content_hash()` method with SHA-256 support
38+
- `verify_content_hash()` method for integrity verification
39+
- Automatic content hash calculation for external files
40+
41+
#### **Party History Event Tracking**
42+
- **New PartyHistory Class**: Complete implementation of party history events
43+
- Support for all 6 specification event types: `join`, `drop`, `hold`, `unhold`, `mute`, `unmute`
44+
- Event validation with `VALID_EVENTS` list
45+
- ISO 8601 time serialization for all events
46+
- Proper error handling for invalid events
47+
48+
#### **Enhanced Media Type Support**
49+
- **Specification-Compliant Media Types**:
50+
- Added `audio/x-mp3` and `audio/x-mp4` (specification required)
51+
- Enhanced video format support (MP4, WebM, AVI, MKV, MOV, FLV, 3GP)
52+
- Complete audio format coverage (WAV, MP3, MP4, OGG, WebM, AAC)
53+
- Image and document support (JPEG, TIFF, PDF)
54+
55+
#### **Disposition Values for Incomplete Dialogs**
56+
- **Complete Disposition Support**: All 6 specification values implemented
57+
- `no-answer`: Call attempted but no answer
58+
- `congestion`: System load prevented completion
59+
- `failed`: Call/connection failed
60+
- `busy`: Party was busy
61+
- `hung-up`: Party hung up before conversation
62+
- `voicemail-no-message`: Voicemail answered but no message left
63+
- **Validation**: Automatic validation for incomplete dialog types
64+
65+
#### **Transfer Dialog Enhancements**
66+
- **Updated Field Names**: Consistent underscore naming convention
67+
- `transfer-target``transfer_target`
68+
- `target-dialog``target_dialog`
69+
- **Enhanced Transfer Support**: Complete transfer operation tracking
70+
71+
#### **Comprehensive Documentation**
72+
- **Updated Class Documentation**: Complete docstrings for all classes
73+
- Vcon class with vCon 0.3.0 feature documentation
74+
- Party class with new contact method documentation
75+
- Dialog class with session and content hash documentation
76+
- CivicAddress class with GEOPRIV compliance documentation
77+
- PartyHistory class with event tracking documentation
78+
- **Enhanced README**: Comprehensive usage examples and feature documentation
79+
- **API Documentation**: Complete API reference with examples
80+
81+
### 🔧 Changed
82+
83+
#### **Property Handling**
84+
- **Updated Allowed Properties**: All new fields added to property lists
85+
- `_ALLOWED_VCON_PROPERTIES`: Added extensions, must_support
86+
- `_ALLOWED_PARTY_PROPERTIES`: Added sip, did, jCard, timezone
87+
- `_ALLOWED_DIALOG_PROPERTIES`: Added session_id, content_hash, application, message_id
88+
- **Enhanced Property Processing**: Improved handling in all modes (default, strict, meta)
89+
90+
#### **Validation Enhancements**
91+
- **Comprehensive Validation**: Enhanced validation for all new fields
92+
- Party history event validation
93+
- Disposition value validation for incomplete dialogs
94+
- Media type validation with specification compliance
95+
- Civic address field validation
96+
- **Backward Compatibility**: All validation maintains backward compatibility
97+
98+
#### **Serialization Improvements**
99+
- **ISO 8601 Compliance**: All datetime fields properly serialized
100+
- **Content Hash Integration**: Automatic content hash calculation and verification
101+
- **Extension Management**: Proper serialization of extensions and must_support fields
102+
103+
### 🧪 Testing
104+
105+
#### **Comprehensive Test Coverage**
106+
- **149 Tests Passing**: Complete test suite with 7 skipped (advanced features)
107+
- **New Feature Tests**: Extensive testing for all new vCon 0.3.0 features
108+
- Party history event validation tests
109+
- Disposition value validation tests
110+
- Media type validation tests
111+
- Extension management tests
112+
- Content hash calculation tests
113+
- **Backward Compatibility Tests**: Verification that existing functionality works unchanged
114+
- **Validation Tests**: Comprehensive validation testing for all new fields
115+
116+
### 📚 Documentation
117+
118+
#### **Complete Documentation Update**
119+
- **Class Documentation**: Updated all class docstrings with vCon 0.3.0 features
120+
- **README Enhancement**: Comprehensive usage examples and feature documentation
121+
- **API Reference**: Complete API documentation with examples
122+
- **Workplan Documentation**: Complete implementation tracking in IETF-123-WORKPLAN.md
123+
124+
### 🔄 Migration Support
125+
126+
#### **Version Migration**
127+
- **Automatic Migration**: Seamless migration from older vCon versions
128+
- **Strict Mode Support**: Optional strict version checking
129+
- **Backward Compatibility**: Full compatibility with existing vCon files
130+
131+
### 🔑 Security
132+
133+
#### **Enhanced Security Features**
134+
- **Content Integrity**: SHA-256 content hashing for external files
135+
- **Digital Signatures**: JWS support for vCon signing
136+
- **Validation**: Comprehensive validation for all security-related fields
137+
138+
### 📄 Sample Files
139+
140+
#### **Updated Sample Files**
141+
- **Version 0.3.0 Compliance**: All sample files updated to vCon 0.3.0
142+
- **New Field Examples**: Sample files demonstrating new features
143+
- **Backward Compatibility**: Existing sample files continue to work
144+
145+
### 🔧 Technical Details
146+
147+
#### **Implementation Quality**
148+
- **149 Tests Passing**: Comprehensive test coverage
149+
- **Zero Breaking Changes**: Complete backward compatibility
150+
- **Specification Compliance**: Full vCon 0.3.0 specification implementation
151+
- **Performance**: Optimized implementation with minimal overhead
152+
- **Error Handling**: Comprehensive error handling and validation
153+
154+
#### **Code Quality**
155+
- **Type Hints**: Complete type annotation coverage
156+
- **Documentation**: Comprehensive docstrings and comments
157+
- **Linting**: Clean code with minimal linting issues
158+
- **Modularity**: Well-structured, maintainable code
159+
160+
---
161+
162+
## [0.6.0] - Previous Version
163+
1164
- Updated the `__init__` methods in `Dialog` and `Party` classes to accept additional keyword arguments (`**kwargs`) for flexibility.
2165
- Simplified attribute assignment by using `locals()` to set non-None values.
3166
- Enhanced the `to_dict` method in `Dialog` to return all non-None attributes.

GUIDE.md

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ from vcon.dialog import Dialog
8484
vcon = Vcon.build_new()
8585

8686
# Create from dictionary
87-
vcon = Vcon({"uuid": "...", "vcon": "0.0.1"})
87+
vcon = Vcon({"uuid": "...", "vcon": "0.3.0"})
8888

8989
# Create from JSON
9090
vcon = Vcon.build_from_json(json_string)
@@ -276,14 +276,6 @@ if not is_valid:
276276
is_valid, errors = Vcon.validate_file("path/to/vcon.json")
277277

278278
# Validate a vCon JSON string
279-
json_str = '{"uuid": "...", "vcon": "0.0.1", ...}'
279+
json_str = '{"uuid": "123", "vcon": "0.3.0", ...}'
280280
is_valid, errors = Vcon.validate_json(json_str)
281-
```
282-
283-
The validation checks include:
284-
- Required fields (uuid, vcon, created_at)
285-
- Date format validation
286-
- Party references in dialogs
287-
- MIME type validation
288-
- Attachment and analysis format validation
289-
- Encoding validation
281+
```

0 commit comments

Comments
 (0)