|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +### Added |
| 11 | +- Comprehensive test suite with >90% coverage |
| 12 | +- Professional documentation with MkDocs |
| 13 | +- GitHub Actions for CI/CD and automated publishing |
| 14 | +- Type hints throughout the codebase |
| 15 | +- Integration examples for MNE-Python |
| 16 | + |
| 17 | +### Changed |
| 18 | +- Restructured package for professional distribution |
| 19 | +- Improved error handling and validation |
| 20 | +- Enhanced visualization capabilities |
| 21 | +- Optimized performance for large datasets |
| 22 | + |
| 23 | +### Fixed |
| 24 | +- Memory efficiency improvements |
| 25 | +- Edge cases in noise detection |
| 26 | +- Compatibility with latest NumPy and SciPy versions |
| 27 | + |
| 28 | +## [1.0.0] - 2024-01-XX |
| 29 | + |
| 30 | +### Added |
| 31 | +- Initial release of PyZaplinePlus |
| 32 | +- Core functionality for line noise removal using Zapline-plus algorithm |
| 33 | +- Automatic and manual noise frequency detection |
| 34 | +- Adaptive and fixed chunk segmentation |
| 35 | +- Comprehensive visualization of cleaning results |
| 36 | +- Integration with MNE-Python workflows |
| 37 | +- Support for Python 3.8-3.12 |
| 38 | +- MIT license |
| 39 | + |
| 40 | +### Features |
| 41 | +- **Automatic Line Noise Detection**: Detects power line noise (50/60 Hz) automatically |
| 42 | +- **Adaptive Processing**: Dynamically adjusts cleaning parameters |
| 43 | +- **Denoising Source Separation**: Uses DSS with PCA for precise noise removal |
| 44 | +- **Multiple Noise Frequencies**: Handles multiple frequencies simultaneously |
| 45 | +- **Flexible Segmentation**: Both fixed-time and adaptive chunking options |
| 46 | +- **Visualization Tools**: Built-in plotting for quality assessment |
| 47 | +- **Scientific Validation**: Based on peer-reviewed Zapline-plus research |
| 48 | + |
| 49 | +### Dependencies |
| 50 | +- numpy >= 1.20.0 |
| 51 | +- scipy >= 1.7.0 |
| 52 | +- scikit-learn >= 1.0.0 |
| 53 | +- matplotlib >= 3.3.0 |
| 54 | +- Optional: mne >= 1.0.0 for EEG integration |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +## Version History |
| 59 | + |
| 60 | +- **v1.0.0**: Initial professional release with full feature set |
| 61 | +- **v0.x.x**: Development versions (not publicly released) |
| 62 | + |
| 63 | +## Migration Guide |
| 64 | + |
| 65 | +### From Original pyZapline_plus |
| 66 | + |
| 67 | +If you were using the original development version: |
| 68 | + |
| 69 | +```python |
| 70 | +# Old way |
| 71 | +from pyZapline_plus.pyzaplineplus import PyZaplinePlus, zapline_plus |
| 72 | + |
| 73 | +# New way |
| 74 | +from pyzaplineplus import PyZaplinePlus, zapline_plus |
| 75 | +``` |
| 76 | + |
| 77 | +The API remains largely the same, but with improved: |
| 78 | +- Error handling |
| 79 | +- Documentation |
| 80 | +- Type safety |
| 81 | +- Performance |
| 82 | +- Testing coverage |
| 83 | + |
| 84 | +## Breaking Changes |
| 85 | + |
| 86 | +- Package name changed from `pyZapline_plus` to `pyzaplineplus` |
| 87 | +- Module imports simplified |
| 88 | +- Some internal function signatures improved for consistency |
| 89 | + |
| 90 | +## Support |
| 91 | + |
| 92 | +For questions about specific versions or migration help: |
| 93 | +- Open an issue on [GitHub](https://github.com/SinaEsmaeili/PyZaplinePlus/issues) |
| 94 | +- Check the [documentation](https://pyzaplineplus.readthedocs.io/) |
| 95 | + |
0 commit comments