Skip to content

Release Notes

1.3.1 [2025-07-15]

Maintenance:

  • Migrated from poetry to uv for dependency management
  • Updated python from 3.12.10 to 3.12.11
  • Standardized Dockerfile FROM statement casing to use uppercase AS

1.3.0 [2025-06-10]

Enhancements:

  • Added delete-reason configuration option to specify deletion reason when removing original files on validated instances

1.2.7 [2025-06-02]

Enhancements:

  • Added file type validation to deid-profile input (requires source code type)
  • Added file type validation to subject-csv input (accepts tabular data type)

Fixes:

  • Updated flywheel-sdk to ^20.3 to address compatibility issues

Maintenance:

  • Updated python from 3.12.9 to 3.12.10
  • Updated flywheel-migration constraint from ^13.10.2 to ^13.10
  • Updated pytest-cov from ^3.0.0 to ^6.1
  • Updated pytest-mock from ^3.8.2 to ^3.14
  • Updated build system requirement from poetry>=0.12 to poetry-core>=1.0.0

Documentation:

  • Improved formatting of poetry configuration link in CONTRIBUTING.md

1.2.6 [2025-05-29]

Maintenance:

  • Pinned setuptools to 80.9.0 and removed pre-existing versions from base image to ensure consistent dependency resolution
  • Changed container runtime user to flywheel (UID/GID 31337) for improved security

1.2.5 [2025-05-12]

Enhancements:

  • Added support for asymmetric encryption/decryption using public and private keys via new public_key and private_key configuration options
  • Added support for symmetric encryption/decryption using secret keys via new secret_key configuration option
  • Added key file retrieval functionality that downloads encryption keys from specified Flywheel paths

Fixes:

  • Fixed bug in pixel scrubbing through updated flywheel-migration and fw-gear-deid-export dependencies

Maintenance:

  • Updated fw-gear-deid-export from ^1.7.0 to ^1.8
  • Updated flywheel-migration from 13.9.1 to ^13.10.2
  • Updated pytest from ^6.1 to ^8.3
  • Updated CI reference from main to sse
  • Updated pre-commit hooks reference from main to sse
  • Increased pytest coverage threshold from 0 to 52
  • Enabled VALIDATE_CLASSIFICATION in CI configuration
  • Enabled markdownlint pre-commit hook
  • Removed git package installation from Dockerfile
  • Refactored parse_config() to return single RunConfig dataclass instead of tuple
  • Added .markdownlint.jsonc configuration file
  • Added executable permissions to run.py in Dockerfile
  • Updated .dockerignore to remove unnecessary test exclusions
  • Removed empty __init__.py file

Documentation:

  • Added detailed documentation for new encryption key configuration options (private_key, public_key, secret_key)
  • Fixed line length formatting throughout README.md to meet style guidelines
  • Updated CONTRIBUTING.md formatting for consistency

1.2.4 [2025-03-11]

Fixes:

  • Added deid package to explicit dependencies to enable pixel-scrubbing functionality

Maintenance:

  • Updated fw-gear-deid-export from 1.6.1 to ^1.7.0
  • Added flywheel-migration 13.9.1 with pixel extras for enhanced DICOM deidentification support

1.2.3 [2025-02-11]

Fixes:

  • Fixed metadata deidentification returning None for file info in some cases
  • Improved error handling and logging when deidentified file save fails
  • Added validation to prevent processing when no files are deidentified

Enhancements:

  • Removed automatic addition of filename key to YAML config files

Documentation:

  • Added note to README about requiring flywheel section in deid profile to preserve file metadata

Maintenance:

  • Removed add_or_replace_filenames() function and related tests

1.2.2 [2025-01-21]

Enhancements:

  • Added support for deidentifying file metadata using the flywheel section in deid profiles
  • Added new RunConfig dataclass to encapsulate gear runtime configuration

Fixes:

  • Fixed issue where garbage collection could delete deidentified files by working on symbolic links instead of original files

Maintenance:

  • Updated git from 2.47.1-r0 to 2.48.1-r0
  • Removed build-base package from Dockerfile
  • Pinned flywheel-sdk to 16.19.2 (downgraded from ^19)
  • Removed flywheel-migration dependency
  • Added fw-gear-deid-export dependency at version 1.6.1
  • Refactored file deidentification logic into separate deid_file module
  • Refactored output processing logic into main module for better separation of concerns
  • Moved utility functions (create_tag, add_tags_metadata, validate_destination) from run.py to utils.py
  • Updated .gitignore to exclude all files by default with specific inclusions

1.1.1 [2025-01-06]

Enhancements:

  • Added gear classification metadata to manifest including function, modality, organ, species, and therapeutic area

Fixes:

  • Improved conditional logic structure in find_profile_element() function in fw_gear_deid_inplace/deid_template.py

Maintenance:

  • Updated git from 2.46.2-r0 to 2.47.1-r0 in Dockerfile
  • Added build-base package to Dockerfile
  • Migrated flywheel-migration dependency from Git reference to PyPI version ^13.9
  • Removed unnecessary return statement in add_or_replace_filenames() function
  • Reordered imports in run.py to follow standard conventions
  • Applied code formatting improvements to test files using parenthesized context managers

1.1.0 [2024-10-10]

Enhancements:

  • Added git package (2.46.2-r0) to Docker image for version control capabilities

Maintenance:

  • Updated flywheel-migration to use git reference e737a2d4 with pixel extras
  • Added --no-cache-dir flag to all uv pip install commands to reduce Docker image size
  • Added requirements-dev.txt to .dockerignore and .gitignore whitelist
  • Removed .idea/.gitignore IDE configuration file
  • Relaxed pytest version constraint from ^6.1.2 to ^6.1

1.0.1 [2024-10-03]

Enhancements:

  • Added Docker build cache support for faster CI builds
  • Added cache clearing capability to GitLab CI pipeline

Fixes:

  • Replaced subprocess.call with shutil.move for more reliable file operations

Maintenance:

  • Migrated Dockerfile from Debian to Alpine base image
  • Implemented multi-stage Docker build for optimized image size
  • Updated flywheel-sdk from 16.16.2 to ^19
  • Updated Jinja2 from ^2.11.2 to ^3
  • Added rpds-py ^0.20.0 dependency
  • Removed unused backoff import from run.py
  • Removed explicit pinning of several dependencies (pyaml, joblib, dotty-dict, jsonschema, MarkupSafe, fs)
  • Added .idea/* to .gitignore for IDE configuration exclusion
  • Updated .dockerignore to include all requirements files
  • Set PUBLISH_POETRY to true in GitLab CI configuration
  • Configured test stage to use Podman instead of Docker
  • Added environment variables to manifest (PATH, VIRTUAL_ENV, PYTHON_VERSION, PYTHONPATH, TERM)
  • Removed unused git and libexpat1 system dependencies from Dockerfile
  • Removed non-root user configuration from Dockerfile

1.0.0 [2024-09-27]

Enhancements:

  • Added profile-based de-identification functionality for multiple file types including DICOM, JPG, PNG, TIFF, XML, JSON, CSV, TSV, and text files
  • Added support for field transformations including remove, replace-with, increment-date, increment-datetime, hash, hashuid, jitter, encrypt, decrypt, and regex-sub
  • Added DICOM pixel data masking based on pre-defined coordinates
  • Added subject-specific de-identification configuration via CSV mapping
  • Added configurable file tagging with -PASS or -FAIL suffixes
  • Added option to delete original files or create versioned copies via delete-original configuration
  • Added debug logging configuration option

Documentation:

  • Added comprehensive README with usage instructions, examples, and supported file types
  • Added CONTRIBUTING guide with development setup and workflow instructions
  • Added FAQ documentation file
  • Added MIT LICENSE file

Maintenance:

  • Added CI/CD pipeline configuration with .gitlab-ci.yml
  • Added pre-commit hooks for code quality checks including ruff, pytest, yamllint, jsonlint, and hadolint
  • Added poetry for dependency management with python ^3.12 requirement
  • Added flywheel-sdk ==16.16.2, flywheel-gear-toolkit ^0.6.18, and flywheel-migration ^13.8.5 dependencies
  • Added comprehensive test suite with unit tests for main modules, parser, and utilities
  • Added .dockerignore and .gitignore for build optimization
  • Added Dockerfile with python 3.12 base image and security hardening