Skip to content

Release Notes

0.3.2 [2025-12-16]

Fixes:

  • Fixed incorrect method call from context.metadata.update_file() to context.metadata.update_file_metadata() in util.py:72 and util.py:75
  • Corrected module docstring from fw_gear_file_metadata_importer to fw_gear_form_importer

Maintenance:

  • Migrated from poetry to uv for dependency management
  • Updated base Docker image from flywheel/python:3.12-main to flywheel/python:3.12-wolfi-build
  • Upgraded python from 3.12.10 to 3.12.12
  • Updated fw-file from ^1 to ^4.2.1
  • Removed file.type metadata field from test expectations to align with fw-file library changes

0.3.1 [2025-06-12]

Maintenance:

  • Added eolfix pre-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 modality option allowing users to set custom file modality or omit it entirely
  • Added modality validation against Flywheel's valid modalities list
  • Added .markdownlint.json configuration file
  • Enabled package publishing to PyPI via CI

Fixes:

  • Fixed invalid JSON in test asset by replacing single quotes with double quotes

Maintenance:

  • Upgraded python from 3.9 to 3.12
  • Migrated from poetry to uv for dependency management
  • Migrated base Docker image to flywheel/python:3.12-main
  • Switched CI configuration from sse-qa-ci to qa-ci project
  • Updated .gitlab-ci.yml to reference sse branch and use ci/gear.yml
  • Added multi-stage Docker build with separate base, build, and dev stages
  • Added requirements-dev.txt to .dockerignore
  • Updated .pre-commit-config.yaml to sse revision and added hadolint, jsonlint, linkcheck, and markdownlint hooks
  • Removed pytz and typed-ast dependencies
  • Updated flywheel-sdk to ^20 and ipython to ^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 modality set to Form by default (use modality: "Form" config to restore previous behavior)

0.2.0 [2025-01-22]

Enhancements:

  • Added metadata_location configuration 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_location to 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_location functionality and validation logic

Documentation:

  • Added metadata_location configuration parameter documentation to README

0.1.2 [2024-07-18]

Enhancements:

  • Added gearcheck hook to pre-commit configuration

Fixes:

  • Fixed empty value detection to preserve 0, 0.0, and false values while removing empty strings, None, empty dictionaries, empty lists, and empty sets

Maintenance:

  • Updated CI reference from 642262ef to 3ce6c6cc
  • Updated pre-commit hooks reference from b7784be4 to 6a82c976
  • Migrated from black and isort to ruff for code formatting and linting
  • Removed pinned version constraint for git package in Dockerfile
  • Updated manifest.json to include structured classification metadata with function, modality, organ, species, and therapeutic area fields
  • Removed validate-manifest and markdownlint hooks from pre-commit configuration
  • Set PYTEST_COV_FAIL_UNDER to 0 in CI configuration
  • Set PUBLISH_POETRY to false and CACHE_CLEAR to 1 in CI variables
  • Changed PYVER to 3.9 in CI configuration
  • Changed api-key input from read-only: true to read-only: false
  • Updated repository URLs from flywheel-io/flywheel-apps to flywheel-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-slim base 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, and validate-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 .gitignore for Python, Mac, and editor-specific files
  • Added .dockerignore to optimize Docker build context