Skip to content

Release Notes

0.6.0 [2025-04-28]

Enhancements:

  • Added session-suffix configuration option to append suffixes to session labels when moving to target project
  • Added intermediate-group configuration 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_of field handling to use empty string instead of None to 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 poetry to uv for dependency management
  • Renamed modules to snake_case convention: SoftCopy.py to soft_copy.py, Movers.py to movers.py, MoveOrchestrator.py to move_orchestrator.py, SoftCopyReport.py to soft_copy_report.py
  • Split Movers.py into separate movers.py and mover_models.py modules for better organization
  • Refactored move execution to use MoveContext and AsyncCall abstractions
  • Updated parser.py to use pydantic BaseModel for configuration validation
  • Replaced flywheel-gear-toolkit with direct pydantic models for configuration parsing
  • Enhanced test coverage with comprehensive unit tests for new async functionality
  • Updated h11 dependency to ^0.16

Documentation:

  • Enhanced session-suffix parameter documentation with detailed example of duplicate handling behavior

0.5.0 [2025-03-12]

Enhancements:

  • Added exclude-filter configuration option to exclude sessions matching specific criteria using flywheel finder format
  • Enhanced target-project configuration 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_df to source_project_df in populate_initial_report()
  • Fixed handling of empty or None filter values to pass empty lists instead of raising errors

Maintenance:

  • Renamed file-filter configuration option to include-filter for clarity and consistency
  • Updated SmartCopier initialization to support both include and exclude filter rules
  • Updated type hints in parse_config() to reflect additional return value for exclude_filter

Documentation:

  • Updated README.md to document the new exclude-filter option
  • Clarified include-filter description to note it uses flywheel finder format like smart-copy
  • Added note that include-filter can be left blank to copy everything
  • Updated target-project description 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 uv for dependency management
  • Updated python from 3.8 to 3.12
  • Added flywheel-gear-toolkit ^0.6 dependency
  • Added flywheel-sdk ^19 dependency
  • Added flywheel-transfer-smartcopy ^0.3.5 dependency
  • Added flywheel-transfer-utils 0.2.4 dependency
  • Added pandas ^2.2.3 dependency
  • Configured CI/CD pipeline with coverage threshold set to 0
  • Added comprehensive test suite with pytest, pytest-cov, and pytest-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)