Release Notes
0.6.0 [2025-04-28]
Enhancements:
- Added
session-suffixconfiguration option to append suffixes to session labels when moving to target project - Added
intermediate-groupconfiguration option to specify alternate group for temporary smart-copy project creation - Implemented asynchronous container moves with retry logic for improved reliability and performance
- Replaced dataview-based container retrieval with parallel async fetching for faster operations
Fixes:
- Fixed
copy_offield handling to use empty string instead ofNoneto prevent errors - Improved error handling during project deletion to handle 404 responses gracefully
- Enhanced duplicate detection logic to properly track and report conflicting containers
Maintenance:
- Migrated from
poetrytouvfor dependency management - Renamed modules to snake_case convention:
SoftCopy.pytosoft_copy.py,Movers.pytomovers.py,MoveOrchestrator.pytomove_orchestrator.py,SoftCopyReport.pytosoft_copy_report.py - Split
Movers.pyinto separatemovers.pyandmover_models.pymodules for better organization - Refactored move execution to use
MoveContextandAsyncCallabstractions - Updated
parser.pyto usepydanticBaseModelfor configuration validation - Replaced
flywheel-gear-toolkitwith directpydanticmodels for configuration parsing - Enhanced test coverage with comprehensive unit tests for new async functionality
- Updated
h11dependency to^0.16
Documentation:
- Enhanced
session-suffixparameter documentation with detailed example of duplicate handling behavior
0.5.0 [2025-03-12]
Enhancements:
- Added
exclude-filterconfiguration option to exclude sessions matching specific criteria using flywheel finder format - Enhanced
target-projectconfiguration to accept project labels without group specification, automatically resolving to the source project's group
Fixes:
- Fixed typo in function parameter name from
source_proejct_dftosource_project_dfinpopulate_initial_report() - Fixed handling of empty or
Nonefilter values to pass empty lists instead of raising errors
Maintenance:
- Renamed
file-filterconfiguration option toinclude-filterfor clarity and consistency - Updated
SmartCopierinitialization to support both include and exclude filter rules - Updated type hints in
parse_config()to reflect additional return value forexclude_filter
Documentation:
- Updated README.md to document the new
exclude-filteroption - Clarified
include-filterdescription to note it uses flywheel finder format likesmart-copy - Added note that
include-filtercan be left blank to copy everything - Updated
target-projectdescription to explain label-only behavior
0.4.0 [2025-02-27]
Enhancements:
- Added session-level soft copy functionality between Flywheel projects
- Added smart-copy integration with configurable file filters for selective session copying
- Added duplicate handling strategies (skip or replace existing sessions)
- Added CSV report generation tracking all session move operations and their outcomes
- Added bulk session move operations for improved performance
- Added subject-level move support when subjects don't exist in target project
Maintenance:
- Migrated build system to use
uvfor dependency management - Updated
pythonfrom3.8to3.12 - Added
flywheel-gear-toolkit^0.6dependency - Added
flywheel-sdk^19dependency - Added
flywheel-transfer-smartcopy^0.3.5dependency - Added
flywheel-transfer-utils0.2.4dependency - Added
pandas^2.2.3dependency - Configured CI/CD pipeline with coverage threshold set to 0
- Added comprehensive test suite with
pytest,pytest-cov, andpytest-mock - Added pre-commit hooks for code quality enforcement (
ruff,hadolint,yamllint)
Documentation:
- Added comprehensive README with usage instructions and workflow diagrams
- Added CONTRIBUTING guide with development setup and dependency management
- Added FAQ documentation file
- Added LICENSE (MIT)