Release Notes
1.3.1 [2025-07-15]
Maintenance:
- Migrated from
poetrytouvfor dependency management - Updated
pythonfrom3.12.10to3.12.11 - Standardized Dockerfile
FROMstatement casing to use uppercaseAS
1.3.0 [2025-06-10]
Enhancements:
- Added
delete-reasonconfiguration 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-profileinput (requiressource codetype) - Added file type validation to
subject-csvinput (acceptstabular datatype)
Fixes:
- Updated
flywheel-sdkto^20.3to address compatibility issues
Maintenance:
- Updated
pythonfrom3.12.9to3.12.10 - Updated
flywheel-migrationconstraint from^13.10.2to^13.10 - Updated
pytest-covfrom^3.0.0to^6.1 - Updated
pytest-mockfrom^3.8.2to^3.14 - Updated build system requirement from
poetry>=0.12topoetry-core>=1.0.0
Documentation:
- Improved formatting of
poetryconfiguration link inCONTRIBUTING.md
1.2.6 [2025-05-29]
Maintenance:
- Pinned
setuptoolsto80.9.0and removed pre-existing versions from base image to ensure consistent dependency resolution - Changed container runtime user to
flywheel(UID/GID31337) for improved security
1.2.5 [2025-05-12]
Enhancements:
- Added support for asymmetric encryption/decryption using public and private keys via new
public_keyandprivate_keyconfiguration options - Added support for symmetric encryption/decryption using secret keys via new
secret_keyconfiguration option - Added key file retrieval functionality that downloads encryption keys from specified Flywheel paths
Fixes:
- Fixed bug in pixel scrubbing through updated
flywheel-migrationandfw-gear-deid-exportdependencies
Maintenance:
- Updated
fw-gear-deid-exportfrom^1.7.0to^1.8 - Updated
flywheel-migrationfrom13.9.1to^13.10.2 - Updated
pytestfrom^6.1to^8.3 - Updated CI reference from
maintosse - Updated pre-commit hooks reference from
maintosse - Increased pytest coverage threshold from
0to52 - Enabled
VALIDATE_CLASSIFICATIONin CI configuration - Enabled
markdownlintpre-commit hook - Removed
gitpackage installation fromDockerfile - Refactored
parse_config()to return singleRunConfigdataclass instead of tuple - Added
.markdownlint.jsoncconfiguration file - Added executable permissions to
run.pyinDockerfile - Updated
.dockerignoreto remove unnecessary test exclusions - Removed empty
__init__.pyfile
Documentation:
- Added detailed documentation for new encryption key configuration options (
private_key,public_key,secret_key) - Fixed line length formatting throughout
README.mdto meet style guidelines - Updated
CONTRIBUTING.mdformatting for consistency
1.2.4 [2025-03-11]
Fixes:
- Added
deidpackage to explicit dependencies to enable pixel-scrubbing functionality
Maintenance:
- Updated
fw-gear-deid-exportfrom1.6.1to^1.7.0 - Added
flywheel-migration13.9.1withpixelextras for enhanced DICOM deidentification support
1.2.3 [2025-02-11]
Fixes:
- Fixed metadata deidentification returning
Nonefor 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
filenamekey to YAML config files
Documentation:
- Added note to README about requiring
flywheelsection 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
flywheelsection in deid profiles - Added new
RunConfigdataclass 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
gitfrom2.47.1-r0to2.48.1-r0 - Removed
build-basepackage fromDockerfile - Pinned
flywheel-sdkto16.19.2(downgraded from^19) - Removed
flywheel-migrationdependency - Added
fw-gear-deid-exportdependency at version1.6.1 - Refactored file deidentification logic into separate
deid_filemodule - Refactored output processing logic into
mainmodule for better separation of concerns - Moved utility functions (
create_tag,add_tags_metadata,validate_destination) fromrun.pytoutils.py - Updated
.gitignoreto 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 infw_gear_deid_inplace/deid_template.py
Maintenance:
- Updated
gitfrom2.46.2-r0to2.47.1-r0inDockerfile - Added
build-basepackage toDockerfile - Migrated
flywheel-migrationdependency from Git reference to PyPI version^13.9 - Removed unnecessary
returnstatement inadd_or_replace_filenames()function - Reordered imports in
run.pyto follow standard conventions - Applied code formatting improvements to test files using parenthesized context managers
1.1.0 [2024-10-10]
Enhancements:
- Added
gitpackage (2.46.2-r0) to Docker image for version control capabilities
Maintenance:
- Updated
flywheel-migrationto use git referencee737a2d4withpixelextras - Added
--no-cache-dirflag to alluv pip installcommands to reduce Docker image size - Added
requirements-dev.txtto.dockerignoreand.gitignorewhitelist - Removed
.idea/.gitignoreIDE configuration file - Relaxed
pytestversion constraint from^6.1.2to^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.callwithshutil.movefor more reliable file operations
Maintenance:
- Migrated Dockerfile from Debian to Alpine base image
- Implemented multi-stage Docker build for optimized image size
- Updated
flywheel-sdkfrom16.16.2to^19 - Updated
Jinja2from^2.11.2to^3 - Added
rpds-py^0.20.0dependency - Removed unused
backoffimport fromrun.py - Removed explicit pinning of several dependencies (
pyaml,joblib,dotty-dict,jsonschema,MarkupSafe,fs) - Added
.idea/*to.gitignorefor IDE configuration exclusion - Updated
.dockerignoreto include all requirements files - Set
PUBLISH_POETRYtotruein 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
gitandlibexpat1system 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, andregex-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
-PASSor-FAILsuffixes - Added option to delete original files or create versioned copies via
delete-originalconfiguration - 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, andhadolint - Added
poetryfor dependency management withpython^3.12requirement - Added
flywheel-sdk==16.16.2,flywheel-gear-toolkit^0.6.18, andflywheel-migration^13.8.5dependencies - Added comprehensive test suite with unit tests for main modules, parser, and utilities
- Added
.dockerignoreand.gitignorefor build optimization - Added Dockerfile with
python3.12base image and security hardening