Releases: worldcoin/open-iris
v1.9.7
What's Changed
- Fix Error Handling and None Value Processing in Templates Aggregation Pipeline by @ShevchenkoRostyslav in #177
- Fix Error Handling and None Value Processing in Templates Aggregation Pipeline (#177) by @ShevchenkoRostyslav in #178
Full Changelog: v1.9.6...v1.9.7
v1.9.6
Description
Quick fix that preserves an image_id within the aggregation pipeline.
What's Changed
- Preserve Image_id within the aggregation pipeline by @ShevchenkoRostyslav in #172
- Bump iris version by @ShevchenkoRostyslav in #174
- Release v1.9.6 by @ShevchenkoRostyslav in #175
Full Changelog: v1.9.5...v1.9.6
v1.9.5
open-iris v1.9.5
Changed
- Add image denoising before segmentation
- Update the performance card
v1.9.4
Release 1.9.4
Description
Replaced DistanceMatrix serialization for better reliability/portability and added broader unit tests for metadata JSON serialization to cover edge cases and ensure consistent round-trips.
Limitations
Previously serialized DistanceMatrix artifacts may require re-generation or a one-time migration.
What's Changed
- Release 1.9.4 by @ShevchenkoRostyslav in #158
Full Changelog: v1.9.3...v1.9.4
v1.9.3
Release 1.9.2
Summary
- Add image_id to IRImage class #149
What's Changed
- Release 1.9.3 by @wiktorlazarski in #151
Full Changelog: v1.9.2...v1.9.3
v1.9.2
Release 1.9.2
Summary
- Introduces a new interpolation fusion method for multiview/multiframe processing.
- Preserves
numpy.ndarrayin safe serialization (no implicit list conversion).
Key Changes
- New interpolation fusion method for multiview/multiframe pipelines.
- Serialization: keep
numpy.ndarrayunchanged; update tests to match. - Version updates across codebase and pipeline configuration files.
Impact/Risk
- Potential adjustments where list conversion of arrays was assumed.
- Otherwise backward-compatible; no external API changes expected beyond serialization behavior.
What's Changed
- Release 1.9.2 by @ShevchenkoRostyslav in #147
Full Changelog: v1.9.1...v1.9.2
v1.9.1
Hotfix: Preserve sequence types in __safe_serialize, add tests
Summary
- Preserve original sequence types (list vs tuple) during safe serialization.
- Add focused unit tests for
__safe_serialize. - Strengthen multiframe E2E checks.
- Fix documentation module reference.
Changes
- src/iris/orchestration/output_builders.py
_nested_safe_serialize: returntype(obj)(...)for lists/tuples instead of alwayslist[...].__safe_serialize: returntype(object)(...)for lists/tuples instead of alwayslist[...].
- tests/unit_tests/orchestration/test_output_builders.py
- Add
TestSafeSerializetest suite (None, ImmutableModel, numpy array to list, list/tuple recursion with type preservation, primitive passthrough, unsupported type raises). - Access private serializer via
getattrto avoid dunder name-mangling.
- Add
- tests/e2e_tests/pipelines/test_e2e_multiframe_iris_pipeline.py
- Assert
individual_frames[0]["metadata"]["image_size"]is a tuple.
- Assert
Rationale
- Avoid unintended type coercion (tuple → list) during serialization, ensuring API consistency (e.g.,
image_sizeremains a tuple). - Add regression coverage around serialization behavior.
Testing
- Unit:
tests/unit_tests/orchestration/test_output_builders.pypasses. - E2E: strengthened assertion for multiframe pipeline metadata type.
Risk/Impact
- Low. Behavior change is limited to preserving container type during serialization; otherwise non-breaking.
What's Changed
- release 1.9.1 by @ShevchenkoRostyslav in #140
Full Changelog: v1.9.0...v1.9.1
v1.9.0
Open IRIS v1.9.0 Release Notes
🚀 New Features
✨ Multiframe Iris Pipeline
- New
MultiframeIrisPipelineclass: A comprehensive pipeline that combines individual iris processing with template aggregation - Unified configuration system: Single YAML configuration file that manages both iris processing and template aggregation phases
- Multi-image processing: Process multiple iris images and aggregate the resulting templates into a single high-quality template
- Enhanced output builders: New output builders specifically designed for multiframe pipeline results
🔧 Pipeline Architecture Improvements
- Renamed
MultiframeAggregationPipelinetoTemplatesAggregationPipeline: More descriptive naming for better clarity - Enhanced output builders: Extended
output_builders.pywith new functions for multiframe pipeline outputs - Improved error classes: Added new error types for better exception handling in template aggregation scenarios
🛠️ Infrastructure & DevOps
📚 Documentation Deployment
- Automated documentation deployment: New GitHub Actions workflow for automatic docs deployment on releases
- Enhanced build process: Improved documentation building with better handling of hidden files and build artifacts
- GitHub Pages integration: Streamlined deployment to GitHub Pages with proper
.nojekyllfile handling
📦 PyPI Publishing
- Automated PyPI publishing: New workflow for automatic wheel and source distribution publishing
- TestPyPI support: Support for publishing to TestPyPI for testing purposes
- Release-triggered publishing: Automatic publishing on GitHub releases and main branch pushes
🔍 Technical Details
Testing Improvements
- Comprehensive test coverage: Added extensive unit tests for the new multiframe pipeline (783+ lines of test code)
- End-to-end testing: New e2e tests for multiframe iris pipeline functionality
- Test refactoring: Improved existing tests to work with the new pipeline architecture
⚠️ Important Notes
Template Quality Requirements
The new multiframe pipeline includes important warnings about template quality and validation requirements. Users must ensure:
- Templates are from the same user and same eye
- Templates meet quality thresholds (no off-gaze, occlusion, poor focus)
- Appropriate validation criteria are established before production use
🔗 Migration Guide
For users upgrading from v1.8.x:
- The
MultiframeAggregationPipelinehas been renamed toTemplatesAggregationPipeline - New
MultiframeIrisPipelineclass is available for combined processing - Enhanced error handling provides better debugging capabilities
- Automated deployment workflows reduce manual intervention
What's Changed
- release v1.9.0 by @ShevchenkoRostyslav in #136
Full Changelog: v1.8.2...v1.9.0
v1.8.2
open-iris v1.8.2
Changed
- Add option to load weights from a given path
- Bug fix on hamming distance with
separate_half_matchingenabled, the maskbit count should be doubled when applying HD normalization.
v1.8.1
Bugfix
Removed the weights from the output_builders for the Multi-frame pipeline due to potential privacy concerns
What's Changed
- Iris multiview/aic 5848 by @ShevchenkoRostyslav in #116
Full Changelog: v1.8.0...v1.8.1