Changelog ========= All notable changes to genro-storage will be documented here. The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_. Unreleased ---------- In development for next release. 0.4.2 - October 2025 -------------------- Added ~~~~~ - Git backend support for Git repositories - GitHub backend support for GitHub repositories - WebDAV backend support (Nextcloud, ownCloud, SharePoint) - LibArchive backend support (RAR, 7z, ISO, and 20+ formats) - Native permission control for all backends (readonly, readwrite, delete) - Comprehensive permission tests for all backend types - Validation of permissions against backend capabilities at configuration time - Test coverage improvements: 79% → 85% (411 tests, 401 passing) - Complete test coverage for RelativeMountBackend (75% → 96%) - Complete test coverage for BackendCapabilities (88% → 100%) - Docker services for integration testing (Azurite, fake-gcs-server, SFTP, SMB, WebDAV) Changed ~~~~~~~ - Improved CI workflow with all Docker services for integration tests - Enhanced test infrastructure with service emulators 0.4.1 - October 2025 -------------------- Added ~~~~~ - SMB/CIFS backend support for Windows and Samba shares - SFTP backend support for SSH File Transfer Protocol - ZIP archive backend support (read and write) - TAR archive backend support (with gzip, bzip2, xz compression) - Configuration tests for new backends - Backend capability tests 0.4.0 - October 2025 -------------------- Added ~~~~~ - Relative mounts with permissions - Unified read/write API - RelativeMountBackend for path prefixing and permission enforcement Changed ~~~~~~~ - Improved permission handling architecture - Enhanced backend configuration system 0.3.0 - October 2025 -------------------- Added ~~~~~ - Async/await support via AsyncStorageManager - AsyncStorageNode for async file operations - Integration with asyncer for automatic sync→async conversion - FastAPI compatibility examples - Async tests and documentation 0.2.0 - October 2025 -------------------- Added ~~~~~ - Virtual nodes (iternode, diffnode) - Interactive Jupyter notebooks tutorials - Binder support for online tutorials - Enhanced testing infrastructure - Copy strategy improvements 0.1.0-beta - October 2025 ------------------------- **Beta Release** - Ready for production testing Added ~~~~~ - Complete API implementation with stable interface - Support for 7 storage backends: Local, S3, GCS, Azure, HTTP, Memory, Base64 - Comprehensive test suite with 195 tests (79% coverage) - CI/CD testing on Python 3.9, 3.10, 3.11, 3.12 - Full ReadTheDocs documentation - Mount point configuration system - StorageManager for managing mount points - StorageNode for file/directory operations - Configuration from YAML and JSON files - Cross-storage copy and move operations - Intelligent copy skip strategies (exists, size, hash, custom) - MD5 hashing and content-based equality - Base64 backend with writable mutable paths - call() method for external tool integration (ffmpeg, imagemagick, etc.) - serve() method for WSGI file serving (Flask, Django, Pyramid) - mimetype property for automatic content-type detection - local_path() context manager for external tools - Callable path support for dynamic directories - Cloud metadata get/set (S3, GCS, Azure) - URL generation (presigned URLs, data URIs) - S3 versioning support - MinIO integration testing Technical ~~~~~~~~~ - Battle-tested code extracted from Genropy (Python web framework since 2006) - Storage abstraction layer refined over 6+ years of production use (since 2018) - Full type hints with Python 3.9+ compatibility - Powered by fsspec for backend abstraction