Release Notes
0.3.6 [2025-12-17]
Maintenance:
- Updated
pythonfrom3.13.7to3.13.11 - Updated dependencies to address known vulnerabilities
0.3.5 [2025-10-03]
Enhancements:
- Added comprehensive file metadata support including
created,modified,name,classification,modality,size,version, andzip_member_countfields to Flywheel object validation - Enhanced Flywheel metadata validation with support for
flywheelfile type in validator initialization
Fixes:
- Fixed string concatenation error in
FileErrorclass for required property validation that was causing incorrect error location paths - Improved error handling for Flywheel hierarchy location parsing to properly extract container locations from key paths
Maintenance:
- Improved
.gitignoreto use explicit whitelist pattern for better repository management - Updated project configuration and build files
- Added
.markdownlint.jsonconfiguration file - Updated
README.mdsummary for better clarity - Upgraded
pythonfrom3.13.2to3.13.7 - Enhanced test coverage with new test cases for file metadata fields, required property error handling, and Flywheel location error mapping
0.3.4 [2025-07-01]
Enhancements:
- Added
requirements-dev.txtto.dockerignorefor improved build context - Added multi-stage
Dockerfilewith separatedevand production stages - Added
uv.lockfile to version control for reproducible builds - Added
flywheeluser to production Docker image for improved security
Fixes:
- Fixed trailing whitespace issues throughout documentation files
Maintenance:
- Migrated from
poetrytouvfor dependency management - Upgraded
pythonfrom3.10to3.13 - Updated base Docker image to
flywheel/python:3.13-main - Updated CI configuration to reference
flywheel-io/tools/etc/qa-ci(branchsse) - Updated
.pre-commit-config.yamlto revisionb783285a315e509aaf189222ba94601de659ed5c - Added
eolfixandpytesthooks to pre-commit configuration - Updated
ruffhook configuration to explicitly usepyproject.toml - Removed
flywheel-sdkversion pin (was17.7.0) - Added environment variables to
manifest.jsonfor runtime configuration (PYTHON_VERSION,VIRTUAL_ENV,PYTHONPATH,PATH) - Added
uidandgidfields to gear custom configuration inmanifest.json - Converted
pyproject.tomlto PEP 621 format - Migrated build backend from
poetry.core.masonry.apitohatchling.build - Added
VALIDATE_CLASSIFICATIONvariable to CI configuration
Documentation:
- Fixed markdown formatting issues in
CONTRIBUTING.mdandREADME.md
0.3.2 [2025-04-03]
Fixes:
- Fixed CSV validation to handle columns present in data but not defined in the schema by defaulting to
strtype instead of raisingKeyError - Fixed empty column removal logic to preserve all columns during initial CSV loading, only removing empty values during validation when
drop_empty=True
Enhancements:
- Added
drop_emptyparameter toCsvValidator.validate()to optionally control removal of empty CSV columns (defaults toTruefor backward compatibility)
0.3.1 [2025-03-05]
Fixes:
- Fixed CSV validation to properly handle quoted fields containing commas by using Python's
csv.readerinstead of counting commas
Maintenance:
- Added
.github/directory to.gitignorewhitelist - Increased test coverage for CSV validation with quoted fields and edge cases
0.3.0 [2025-01-22]
Enhancements:
- Added validation for CSV files with duplicate column headers
- Added validation to detect malformed CSV files with inconsistent comma counts per row
- Added validation to detect empty files (JSON and CSV)
- Added validation to detect files that cannot be properly opened by the loader
- Added early validation checks before schema validation to catch file format issues
Fixes:
- Fixed handling of empty JSON files to return validation error instead of empty dict
- Fixed handling of empty CSV files to return validation error instead of empty list
- Fixed
run.pyto handle and save file format validation errors before schema validation
Maintenance:
- Updated return type annotations in
loader.pyfromdicttot.Tuple[dict, t.List[t.Dict]] - Updated return type annotations in
parser.pyfrom(str, str)totuple[str, str] - Added comprehensive test coverage for CSV file format validation functions
- Added
.gitignorefile to restrict tracked files to essential project files
0.2.9 [2024-07-01]
Fixes:
- Fixed error handling for non-string location values in validation error reporting by converting all location elements to strings before joining
0.2.8 [2024-05-14]
Maintenance:
- Updated CI configuration reference from
flywheel-io/scientific-solutions/etc/sse-qa-citoflywheel-io/tools/etc/qa-ci - Updated
.pre-commit-config.yamlhooks reference todee3cd63f9f4d7a2ab95b41f01281b97fd480cf7 - Added
test:gearjob extending.test:gearand.gitlab-runner-mediumto CI pipeline - Replaced
poetry_exportwith new hook ordering:gearcheck,hadolint,jsonlint,linkcheck,markdownlint,yamllint,ruff,ruff_format,ruff_tests - Removed
docker_buildandpytesthooks from.pre-commit-config.yaml - Reformatted JSON test configuration files for consistent indentation and structure
- Added docstrings to functions and classes throughout the codebase
- Applied
ruffcode formatting to Python source files (errors.py,loader.py,parser.py,utils.py,validator.py,run.py) - Fixed import ordering and added module-level docstrings
- Improved type annotations in function signatures
0.2.7 [2024-05-09]
Maintenance:
- Minor maintenance changes with minimal impact.
0.2.6 [2024-05-06]
Enhancements:
- Added structured error handling using
pydanticmodels for file validation errors - Improved error message structure with consistent field handling
- Standardized error codes to use kebab-case format (
empty-file,missing-header,unknown-field)
Fixes:
- Fixed error location formatting for required field validation errors
Maintenance:
- Upgraded
pythonfrom3.9to3.10 - Updated
fw-filefrom^2.1.1to^3.3.3
0.2.5 [2024-04-11]
Enhancements:
- Added timestamp to validation error output to track when errors occurred
0.2.4 [2024-04-11]
Enhancements:
- Added automatic removal of empty CSV cell values during validation to treat blank cells as null values
- Added type casting validation for CSV columns to enforce single-type constraints per column
Fixes:
- Fixed CSV validation to properly handle optional fields with blank cells by treating them as missing values rather than empty strings
Documentation:
- Added comprehensive CSV typing documentation explaining how untyped CSV data is handled during validation
- Added table showing JSON-to-Python type mappings (
stringtostr,numbertofloat,integertoint,booleantobool,nulltoNone) - Added examples of handling custom null values (
"NA","None") in schemas usinganyOfpatterns - Added table demonstrating Python type casting behavior for common CSV string values
- Added explanation of Python boolean casting behavior where any non-empty string evaluates to
True - Fixed minor spacing inconsistencies in documentation
0.2.3 [2024-03-27]
Enhancements:
- Added Flywheel gear classification metadata including function, modality, organ, species, and therapeutic area
- Enabled job visibility with
show-jobflag in Flywheel configuration - Added gear suite classification as "Utility"
0.2.2 [2024-03-27]
Fixes:
- Fixed
get_level_object()method to properly returnflywheel.Groupobjects for group-level hierarchy queries
0.2.1 [2024-03-26]
Enhancements:
- Added support for CSV file validation with header validation and row-by-row schema validation
- Added flywheel object validation mode to validate file metadata and parent container metadata
- Added configuration option to include parent containers in validation schema
- Added file tagging functionality to mark files as PASS/FAIL based on validation results
- Added empty file validation check for both JSON and CSV files
- Added error metadata tracking on files and containers with detailed error location information
Maintenance:
- Added CI/CD pipeline configuration using
sse-qa-ci - Added pre-commit hooks for code quality (
gearcheck,poetry_export,docker_build,yamllint,ruff,pytest) - Added
.dockerignoreto optimize Docker build context - Added
python3.9as base image in Dockerfile - Updated dependencies:
fw-file^2.1.1,flywheel-gear-toolkit^0.6.10,flywheel-sdk17.7.0,argparse1.4.0 - Added development dependencies:
ipython,pytest,pytest-cov,pytest-mock
Documentation:
- Added comprehensive README with gear overview, usage instructions, and workflow diagram
- Added CONTRIBUTING.md with setup instructions and development guidelines
- Added LICENSE file (MIT)
- Added FAQ.md for common questions and errors