Skip to content

Release Notes

0.8.2 [2026-02-17]

Maintenance:

  • Updated fw-classification minimum version requirement from >=0.6.0 to >=0.6.1

0.8.1 [2026-02-17]

Enhancements:

  • Added support for block-level classification results, including capturing and reporting which classification blocks evaluated to true in QC metadata.

Fixes:

  • Added backward compatibility for older fw-classification versions that return a boolean result instead of a tuple with block results.

Maintenance:

  • Migrated from poetry to uv/hatchling for dependency management and build system.
  • Updated flywheel-sdk dependency from ^18 to >=21.1.
  • Updated fw-classification dependency from >=0.5.0 to >=0.6.0.
  • Updated fw-gear dependency from >=0.3.0 to >=0.3.5.
  • Removed fw-client dependency.
  • Updated PYTHON_VERSION to 3.12.12 in build environment.
  • Added automated release notes CI job via claude-code integration.
  • Added .claude to .gitignore.

Documentation:

  • Updated README.md documentation link formatting.

0.7.2 [2025-06-17]

Maintenance:

  • Updated PROFILE_VERSION from 0.5.1 to 0.5.2 in Dockerfile

0.7.1 [2025-05-15]

Maintenance:

  • Upgraded python from 3.10 to 3.12
  • Migrated base Docker image from flywheel/python:3.10-debian to flywheel/python:3.12-alpine
  • Relaxed version constraints for fw-gear and fw-classification to >=0.3.0 and >=0.5.0 respectively
  • Switched from pip to uv pip for package installation in Dockerfile
  • Added USER flywheel to production Docker image for improved security

0.7.0 [2025-05-07]

Enhancements:

  • Updated fw-classification-profiles from 0.5.0 to 0.5.1

Maintenance:

  • Migrated from flywheel-gear-toolkit to fw-gear library
  • Updated fw-file from ^1.0 to ^3.0
  • Updated fw-classification from ^0.4 to 0.5.0
  • Replaced flywheel-sdk dependency fw-core-client with fw-client 0.7.2
  • Added backoff ^2.2.1 dependency
  • Migrated Dockerfile from alpine-based to debian-based multi-stage build
  • Updated PYTHON_VERSION to 3.10.17
  • Added requirements-dev.txt to .dockerignore
  • Added [tool.coverage.run] configuration to pyproject.toml
  • Updated tests to align with fw-gear context API

0.6.11 [2025-04-09]

Enhancements:

  • Updated classification profiles to version 0.5.0

Fixes:

  • Fixed handling of unset modality in is_modality_defined() by returning True and logging a warning when modality is "None"

0.6.10 [2024-11-25]

Maintenance:

  • Updated classification profile version from 0.4.8 to 0.4.9

0.6.9 [2024-11-18]

Maintenance:

  • Updated PROFILE_VERSION from 0.4.7 to 0.4.8

0.6.8 [2024-11-16]

Maintenance:

  • Updated classification PROFILE_VERSION from 0.4.5 to 0.4.7
  • Added git installation to Dockerfile runtime image via apk

0.6.7 [2024-08-27]

Maintenance:

  • Updated PYTHON_VERSION from 3.10.5 to 3.10.14
  • Updated PYTHON_PIP_VERSION from 22.0.4 to 23.0.1
  • Updated PYTHON_SETUPTOOLS_VERSION from 58.1.0 to 65.5.1
  • Added EGET_BIN, UV_NO_CACHE, VIRTUAL_ENV, TZ, and SHLVL environment variables to the gear image
  • Updated PATH and PYTHONPATH to use /venv virtual environment

0.6.6 [2024-08-27]

Enhancements:

  • Added mkdocs-based documentation site with overview, gear details, usage, FAQ, and API reference pages
  • Added output_configuration with enforce_file_version_match to manifest.json

Fixes:

  • Replaced CoreClient-based project lookup in parser.py with flywheel SDK's get_destination_container and get_project methods
  • Switched yaml.load to yaml.safe_load in utils.py for safer YAML parsing

Maintenance:

  • Updated fw-classification-profiles from 0.4.3 to 0.4.5 in Dockerfile
  • Updated base Docker image from flywheel/python:main.a30a2597 to flywheel/python:3.10
  • Updated flywheel-sdk from ^16.8.3 to ^18
  • Updated nibabel from ^3.2.2 to ^5.2
  • Updated pytest from ^6.1.2 to ^8 and pytest-cov from ^2.10.1 to ^5
  • Migrated CI pipeline from sse-qa-ci to qa-ci project reference
  • Added hadolint, jsonlint, linkcheck, yamllint, ruff_format, and ruff_tests pre-commit hooks
  • Updated ruff configuration to use pyproject.toml settings
  • Converted f-string log calls to %-style lazy formatting throughout codebase

Documentation:

  • Replaced inline README.md content with a link to the hosted documentation site

0.6.5 [2024-03-25]

Enhancements:

  • Added classification metadata to manifest.json including function, modality, organ, species, and therapeutic area fields
  • Changed gear suite from Curation to Utility in manifest.json
  • Updated api-key input from read-only to read-write in manifest.json

Maintenance:

  • Updated PROFILE_VERSION from 0.4.1 to 0.4.3 in Dockerfile

0.6.4 [2024-03-08]

Maintenance:

  • Updated fw-classification from ^0.4.3 to ^0.4.4
  • Updated PROFILE_VERSION from 0.4.0 to 0.4.1 in Dockerfile
  • Enabled security scanning in CI pipeline (SAST, DEPENDENCY_SCANNING, LICENSE_MANAGEMENT, SECRET_DETECTION)

0.6.2 [2023-12-03]

Enhancements:

  • Added remove_existing config option to clear existing file classification before running

Fixes:

  • Fixed default profile path from main.yml to main.yaml
  • Fixed profile copy path in Dockerfile to use correct source directory

Maintenance:

  • Updated python requirement from ^3.9 to ^3.10
  • Updated fw-classification from ^0.3.4 to ^0.4.3
  • Updated PROFILE_VERSION from 0.3.1 to 0.4.0
  • Replaced black, isort, and yamllint pre-commit hooks with ruff
  • Removed tests/Dockerfile

0.6.1 [2023-09-13]

Maintenance:

  • Updated classification profile version to 0.3.1
  • Updated repository source URL to reflect new GitLab project path
  • Updated CI scripts to use qa-ci runner utilities

0.6.0 [2023-08-04]

Enhancements:

  • Added validate config option to enable classification schema validation against the site modality schema.
  • Added validate_modality_schema utility to verify that the file modality is defined in the site schema and matches the predefined classification profile.
  • Updated fw-classification-profiles from 0.2.2 to 0.3.0.

Maintenance:

  • Updated Dockerfile to install dependencies via requirements.txt and pip instead of poetry.
  • Updated CI pipeline reference from qa-ci/gears.yml to sse-qa-ci/default.yml.
  • Updated .dockerignore to include requirements.txt.
  • Updated .env configuration into variables block in .gitlab-ci.yml.

Documentation:

  • Updated README.md links to point to the new flywheel-io/scientific-solutions GitLab namespace for fw-classification and fw-classification-profiles.

0.5.1 [2022-07-15]

Fixes:

  • Fixed custom Profile initialization to include include_search_dirs pointing to default profiles, enabling includes to resolve correctly when using a custom profile input

Documentation:

  • Expanded README.md with prerequisites section covering metadata and profile requirements before running the gear
  • Rewrote custom classifications section with clearer guidance on creating a custom profile using fw-classification includes and adding classifications via project information
  • Updated SDK example to use the correct classifications key structure (removed nested context key)
  • Added example job log output showing custom classification detection in action
  • Replaced custom_classification.png with updated custom-classifications-ui.png screenshot

0.5.0 [2022-06-28]

Enhancements:

  • Added .dockerignore to optimize Docker build context
  • Expanded gear description in manifest.json to clarify usage and dependencies
  • Added show-job: true to gear manifest configuration

Fixes:

  • Updated QC result reporting to use context.metadata.add_qc_result() instead of deprecated add_qc_info() utility
  • Updated file tagging to use context.metadata.add_file_tags() instead of manual tag manipulation

Maintenance:

  • Replaced git submodule for classification profiles with a Docker multi-stage build that clones profiles at build time
  • Removed bin/update_profiles.sh script; profile version updates now handled via sed in Dockerfile
  • Updated flywheel-gear-toolkit from ^0.5.0 to ^0.6.0
  • Updated flywheel-sdk from ^16.0.0 to ^16.8.3
  • Updated fw-classification from ^0.3 to ^0.3.4
  • Added nibabel ^3.2.2 dependency
  • Updated dev dependencies: upgraded pylint to ^2.14.3, isort to ^5.10.1, added pre-commit ^2.19.0
  • Removed unused dev dependencies: coverage, black, pycodestyle, pydocstyle, jupyter, jupyter-client, fw-http-testserver
  • Switched base Docker image to flywheel/python:main.a30a2597
  • Updated gear entrypoint from poetry run python run.py to python run.py
  • Updated classification profiles path from classification-profiles/profiles to classification_profiles
  • Updated tests to reflect new QC and metadata API usage

Documentation:

  • Updated README.md to reference fw-classification toolkit instead of classification-toolkit

0.4.6 [2022-03-04]

Maintenance:

  • Updated classification-profiles submodule to 0898bacb

0.4.5 [2022-03-03]

Enhancements:

  • Added flywheel-sdk >=16.0.0 as a new dependency

Maintenance:

  • Updated fw-classification from ^0.2 to ^0.3
  • Updated classification-profiles submodule to 38fbb36d

Documentation:

  • Updated documentation links to reflect new fw-classification URL structure

0.4.4 [2022-02-24]

Maintenance:

  • Updated mypy from ^0.790 to ^0.931
  • Added SAFETY_EXTRA ignore flag for known vulnerability 44715
  • Updated classification-profiles submodule

Documentation:

  • Fixed README.md formatting for note block syntax

0.4.3 [2022-01-20]

Maintenance:

  • Updated classification-profiles submodule to 170b70e8

0.4.2 [2021-12-24]

Maintenance:

  • Updated classification-profiles submodule
  • Removed automatic git commit step from update_profiles.sh

0.4.1 [2021-12-22]

Enhancements:

  • Added update:profiles CI job to automatically update the classification profiles submodule when upstream changes are published, creating an MR with the updated profiles
  • Added bin/update_profiles.sh script to handle submodule checkout to a specified upstream tag
  • Added get_parent() function in parser.py to separate parent container retrieval from project lookup

Maintenance:

  • Updated classification profiles submodule URL to point to the new fw-classification-profiles repository location

Documentation:

  • Updated README.md links to point to the new fw-classification documentation site
  • Renamed "Context Classifications" section to "Project Classifications" in README.md
  • Updated CONTRIBUTING.md to document the automated profile update process, replacing manual submodule update instructions

0.4.0 [2021-11-02]

Enhancements:

  • Changed custom classification lookup to read from project info.classifications instead of a gear context input, enabling broader classification support across files in the same project

Fixes:

  • Removed unused classifications context input from manifest.json

Maintenance:

  • Upgraded python from ^3.8 to ^3.9
  • Added fw-core-client integration via new get_parent_project() helper to resolve parent project for classification lookup
  • Updated fw-classification version constraint from ^0.2.2 to ^0.2
  • Added fw-http-testserver as a dev dependency for API mocking in tests
  • Refactored test suite to use fw-http-testserver fixtures for integration-style parser tests

0.2.0 [2021-10-12]

Enhancements:

  • Added support for classification profiles as a git submodule, sourced from the classification-profiles repository.
  • Added an optional profile input to allow users to supply a custom classification profile at runtime.
  • Updated default classification profile resolution to use the bundled classification-profiles submodule instead of fw-classification's internal get_profile.
  • Fixed duplicate tag application: the tag config option is now only appended if the tag is not already present on the file.

Fixes:

  • Prevented duplicate tags from being added when the configured tag value already exists on the file.

Maintenance:

  • Upgraded base Docker image from python:3.8-slim to python:3.9-slim.
  • Updated flywheel-gear-toolkit from ^0.4.0 to ^0.5.0 with the dicom extra.
  • Updated fw-classification from ^0.1 to ^0.2.2.

Documentation:

  • Added "Which profile will be used?" section to README.md explaining profile priority (custom input vs. default main.yml).
  • Updated CONTRIBUTING.md with instructions for initializing and updating the classification-profiles submodule.
  • Replaced manual release steps in CONTRIBUTING.md with a reference to the qa-ci release process.

0.1.0 [2021-09-21]

Enhancements:

  • Added file classification gear wrapping the fw-classification (classification-toolkit) library.
  • Added support for dicom and nifti file type classification via FWAdapter and NiftiFWAdapter.
  • Added optional custom classification profile input to override the default main.yml classification profile.
  • Added support for project-level context classifications input to inject custom classification rules at the highest priority.
  • Added debug and tag configuration options.

Documentation:

  • Added README.md with gear overview, supported file types, usage instructions, and SDK/UI examples for context classifications.
  • Added CONTRIBUTING.md with setup, dependency management, linting, testing, and release workflow instructions.

Maintenance:

  • Initialized project with poetry for dependency management using python ^3.8.
  • Added Dockerfile based on python:3.8-slim with poetry for packaging and execution.
  • Added CI pipeline via .gitlab-ci.yml and pre-commit hooks via .pre-commit-config.yaml.
  • Added test suite covering classify() and parse_config() with pytest and pytest-mock.