Skip to content

Release Notes

0.3.4 [2026-02-06]

Fixes:

  • Increased retry attempts from 5 to 7 for resolve_flywheel_path() to improve resilience against transient server errors
  • Increased retry attempts from 3 to 7 for _upload_output_with_retry() to improve upload reliability

0.3.3 [2026-01-31]

Fixes:

  • Added retry logic with exponential backoff to resolve_flywheel_path() function to handle transient server errors (500, 502, 503, 504) when looking up containers and files

Maintenance:

  • Moved resolve_flywheel_path() function from parser.py to utils.py module
  • Added comprehensive test coverage for retry behavior in resolve_flywheel_path() and _upload_output_with_retry() functions

0.3.2 [2026-01-29]

Fixes:

  • Fixed file naming conflicts when batch contains multiple files with same name by prefixing output files with index numbers
  • Added retry logic with exponential backoff for transient HTTP errors (5xx) during file uploads to improve reliability
  • Fixed analysis input tracking by including source file references when creating analyses

Maintenance:

  • Added backoff dependency for implementing retry logic

0.3.1 [2025-12-17]

Maintenance:

  • Updated python from 3.12.11 to 3.12.12

0.3.0 [2025-11-04]

Enhancements:

  • Added batch signing mode to sign multiple files from a CSV manifest in a single operation
  • Added verify mode to check the authenticity and integrity of previously signed files
  • Added run_mode configuration parameter with three modes: sign, batch_sign, and verify
  • Added CSV format validation with detailed error messages for batch operations
  • Added Flywheel path parser supporting project, subject, session, and acquisition level files
  • Added batch processing with automatic analysis container creation at source file locations
  • Added batch summary JSON output with success/failure counts and analysis IDs
  • Added per-row signature purpose support in batch mode
  • Added test script generate_fw_testbed.py to create Flywheel test environments
  • Enhanced MFA verification to support batch operations with single authentication
  • Enhanced error handling with detailed logging and stack traces
  • Changed signature_purpose configuration to use predefined enum values with 12 standardized options
  • Changed default signature_purpose from "No reason provided" to "Initial Data Entry Completed"
  • Changed default debug configuration from false to true

Fixes:

  • Fixed MFA code handling in verify mode where authentication is not required

Maintenance:

  • Updated python from 3.12.7 to 3.12.11
  • Updated test coverage requirement from 70% to 87%
  • Added comprehensive test suite for CSV parsing, path resolution, batch processing, and analysis uploads
  • Added conftest.py with shared fixtures for testing

Documentation:

  • Added detailed run modes section explaining sign, batch_sign, and verify modes
  • Added CSV format specification with Flywheel path syntax and validation rules
  • Added workflow diagrams for all three run modes
  • Added batch signing examples with multi-purpose and reading study use cases
  • Enhanced configuration documentation with detailed parameter descriptions

0.1.2 [2025-08-18]

Fixes:

  • Added USER flywheel directive to Dockerfile for improved container security

Maintenance:

  • Migrated from poetry to uv for dependency management
  • Updated Dockerfile to use uv pip install instead of pip install
  • Reformatted all Python imports to follow standard ordering (stdlib, third-party, local)
  • Added ruff: noqa: PLR0913 directive to suppress too-many-arguments warning in main.py:run()
  • Removed pytest hook from .pre-commit-config.yaml
  • Updated build system from poetry.core.masonry.api to hatchling.build
  • Migrated pyproject.toml to PEP 621 format

Documentation:

  • Fixed markdown formatting in CONTRIBUTING.md to use inline link syntax

0.1.1 [2024-11-18]

Enhancements:

  • Added digital signature functionality for text files, PDFs, and binary files using RSA encryption
  • Implemented multi-factor authentication (MFA) verification via Twilio for secure file signing
  • Added signature verification capability to validate file integrity and authenticity
  • Introduced signature purpose tracking with predefined clinical trial workflow options
  • Added support for embedding signatures in text files using zero-width characters
  • Added support for embedding signatures in PDF metadata
  • Added support for signing binary files with ZIP archive packaging

Documentation:

  • Added comprehensive README with gear overview, configuration, and usage instructions
  • Added CONTRIBUTING guide with setup, development, and workflow instructions
  • Added FAQ file for common questions and troubleshooting

Maintenance:

  • Added GitLab CI/CD pipeline configuration with test coverage threshold
  • Added pre-commit hooks for code quality checks including ruff, pytest, hadolint, markdownlint, and yamllint
  • Added .dockerignore to optimize Docker build context
  • Added Dockerfile based on flywheel/python:3.12-alpine
  • Added dependency management with poetry including flywheel-gear-toolkit, flywheel-sdk, pikepdf, cryptography, twilio, and backoff
  • Added comprehensive test suite with 70% coverage requirement
  • Added MIT License
  • Added utility scripts for key generation (keygen.py) and key encoding (encode_key.py)
  • Added verification script (verify_file.py) for signature validation