Release Notes
0.3.2 [2025-12-16]
Fixes:
- Fixed incorrect method call from
context.metadata.update_file()tocontext.metadata.update_file_metadata()inutil.py:72andutil.py:75 - Corrected module docstring from
fw_gear_file_metadata_importertofw_gear_form_importer
Maintenance:
- Migrated from
poetrytouvfor dependency management - Updated base Docker image from
flywheel/python:3.12-maintoflywheel/python:3.12-wolfi-build - Upgraded
pythonfrom3.12.10to3.12.12 - Updated
fw-filefrom^1to^4.2.1 - Removed
file.typemetadata field from test expectations to align withfw-filelibrary changes
0.3.1 [2025-06-12]
Maintenance:
- Added
eolfixpre-commit hook to ensure consistent line endings - Fixed missing newline at end of
Dockerfile - Removed trailing whitespace from
README.md
0.3.0 [2025-05-15]
Enhancements:
- Added configurable
modalityoption allowing users to set custom file modality or omit it entirely - Added modality validation against Flywheel's valid modalities list
- Added
.markdownlint.jsonconfiguration file - Enabled package publishing to PyPI via CI
Fixes:
- Fixed invalid JSON in test asset by replacing single quotes with double quotes
Maintenance:
- Upgraded
pythonfrom3.9to3.12 - Migrated from
poetrytouvfor dependency management - Migrated base Docker image to
flywheel/python:3.12-main - Switched CI configuration from
sse-qa-citoqa-ciproject - Updated
.gitlab-ci.ymlto referencessebranch and useci/gear.yml - Added multi-stage Docker build with separate
base,build, anddevstages - Added
requirements-dev.txtto.dockerignore - Updated
.pre-commit-config.yamltosserevision and addedhadolint,jsonlint,linkcheck, andmarkdownlinthooks - Removed
pytzandtyped-astdependencies - Updated
flywheel-sdkto^20andipythonto^9 - Set Ruff line length to 100 characters in
pyproject.toml - Added non-root user (
flywheel) to Docker container with UID/GID 31337 - Enabled classification validation in CI
Documentation:
- Improved README formatting and line wrapping
- Fixed TOC syntax from
[[_TOC_]]to[[*TOC*]]
Breaking Changes:
- Changed default behavior: files no longer have
modalityset toFormby default (usemodality: "Form"config to restore previous behavior)
0.2.0 [2025-01-22]
Enhancements:
- Added
metadata_locationconfiguration option to control where form JSON contents are stored in file metadata (default:info.forms.json) - Support for flexible metadata nesting via dot-notation in
metadata_location(e.g.,info.forms.json,info.custom.data) - Added validation for
metadata_locationto prevent invalid metadata keys starting with_,., or$
Maintenance:
- Refactored metadata generation logic into
generate_file_entry()function for improved testability - Updated test suite to include coverage for new
metadata_locationfunctionality and validation logic
Documentation:
- Added
metadata_locationconfiguration parameter documentation to README
0.1.2 [2024-07-18]
Enhancements:
- Added
gearcheckhook to pre-commit configuration
Fixes:
- Fixed empty value detection to preserve
0,0.0, andfalsevalues while removing empty strings,None, empty dictionaries, empty lists, and empty sets
Maintenance:
- Updated CI reference from
642262efto3ce6c6cc - Updated pre-commit hooks reference from
b7784be4to6a82c976 - Migrated from
blackandisorttorufffor code formatting and linting - Removed pinned version constraint for
gitpackage inDockerfile - Updated
manifest.jsonto include structured classification metadata with function, modality, organ, species, and therapeutic area fields - Removed
validate-manifestandmarkdownlinthooks from pre-commit configuration - Set
PYTEST_COV_FAIL_UNDERto0in CI configuration - Set
PUBLISH_POETRYtofalseandCACHE_CLEARto1in CI variables - Changed
PYVERto3.9in CI configuration - Changed
api-keyinput fromread-only: truetoread-only: false - Updated repository URLs from
flywheel-io/flywheel-appstoflywheel-io/scientific-solutions/gears
0.1.0 [2023-02-13]
Enhancements:
- Initial release of form importer gear for importing form metadata into Flywheel
- Added support for importing JSON format form files to
file.info.forms.json - Added configurable allow/deny key filtering at project level via
project.info.context.forms.json - Added automatic tagging of processed input files with configurable tag name
- Added metadata extraction to parent containers (session, subject, acquisition)
Maintenance:
- Added Docker configuration with
python:3.9-slimbase image - Added CI/CD pipeline using SSE QA CI templates with 80% pytest coverage threshold
- Added pre-commit hooks for
poetry_export,docker_build,markdownlint,yamllint,black,isort,pytest, andvalidate-manifest - Added dependencies:
flywheel-gear-toolkit>=0.6,fw-file>=1.3.3,flywheel-sdk>=16.0.0,pytz>=2021.3,typed-ast>=1.5.0 - Added comprehensive test suite with fixtures for JSON file processing
Documentation:
- Added README with gear overview, usage instructions, workflow diagram, and use cases
- Added FAQ placeholder document
- Added MIT license
- Added
.gitignorefor Python, Mac, and editor-specific files - Added
.dockerignoreto optimize Docker build context