Skip to content

Changelog

All notable changes to FIT File Faker are documented here.

This changelog is automatically generated from git commit messages using git-cliff. See our release history on GitHub for downloadable releases.

2.1.3 - (2026-02-01)

Documentation

  • clarify that serial_number field requires device Unit ID, not Serial Number (#68) (d5553ce)

  • update paths to config videos in README (#67) (6192294)

2.1.2 - (2026-01-31)

Bug Fixes

  • UTF-8 Decoding Errors and Add Serial Number Documentation (#66) (55c9173)

2.1.1 - (2026-01-30)

Bug Fixes

  • include all vendor subpackages in distribution (b365e85)

2.1.0 - (2026-01-30)

Features

  • add --version flag with release date (aea73c5)

Bug Fixes

  • prevent duplicate uploads when MyWhoosh app version updates (#62) (d41c478)

Build System

  • vendor fit-tool library to eliminate external dependency (#64) (1bb4822)

Miscellaneous Tasks

  • pin dependency for fit-tool to 0.9.13 (94a32ff)

  • fix git cliff processing rules (a26df4c)

2.0.3 - (2026-01-24)

Note: Versions 2.0.1 and 2.0.2 were skipped due to CI/CD configuration issues during the release process and those versions yanked from PyPI. Please do not use them.

Features

  • add draft GitHub release creation to release script (99072e7)

Bug Fixes

  • force uv to use matrix Python version in CI tests (88dfc11)

  • properly install dependencies for release pipeline mkdocs build (4bf7258)

  • correct git-cliff template and workflow configuration (8ad5b4d)

  • add missing mkdocs-autorefs dependency and fix Windows CI compatibility (1269fed)

CI/CD

  • ci: move draft release creation to publish workflow and improve... (c68fb94)

Build System

  • replace gitlint with commitlint for Windows compatibility (506f9c9)

2.0.0 - (2026-01-24)

Features

  • add configurable Garmin device simulation per profile (#46) (de5ff1f)

  • add FIT CRC-16 checksum calculation utility (9fa247c)

Refactoring

  • Extract FIT file editing functionality into dedicated fit_editor.py module (issue #40) (c164854)

  • Extract configuration management into dedicated config.py module (issue #40) (3868e26)

Documentation

  • fix outdated class level docstrings (#47) (9bb4800)

  • Refactor README and enhance documentation site (issue #41) (2efd4c7)

  • Add comprehensive documentation site with MkDocs and automated deployment (#41) (031b19c)

Testing

  • Add comprehensive test suite with pytest, fixtures, and CI workflow (issue #18) (f97fad5)

Miscellaneous Tasks

  • Implements conventional commit validation with gitlint (1f4c279)

1.2.4 (2026-01-11)

Features

  • COROS: Add support for COROS FIT files with lenient field size validation (0f3ddde)
  • MyWhoosh: Add support for MyWhoosh FIT files (manufacturer code 331) (72c5029)

Bug Fixes

  • FIT files: Strip unknown field definitions before writing to prevent corruption (28265e2)
  • FIT files: Fix Activity message ordering for COROS compatibility (0f3ddde)
  • device info: Properly index device_index at 0 to fix images not showing on Garmin Connect (18186a7)
  • CI: Fix broken "test pypi" release step (72c5029)

Miscellaneous Tasks

  • Update dependencies and add setuptools configuration (dc7e309)
  • Bump version to 1.2.4 (b4d1877)

Contributors

  • @dermarzel (MyWhoosh support)

1.2.3 (2025-11-05)

Features

  • Hammerhead: Add support for Hammerhead Karoo devices (df6c3d6)

Miscellaneous Tasks

  • Bump version and update README (d606c18)

Contributors

  • @lrybak (Hammerhead support)

1.2.2 (2025-01-26)

Bug Fixes

  • FIT processing: Change to generate FileIdMessage rather than editing in place to ensure device is properly set (4026db3)
  • FIT processing: Add FileCreator message for better compatibility (4026db3)
  • TrainingPeaks Virtual: Fix issue with new TPV FIT file structure (#22) (391e1eb)

1.2.1 (2025-01-07)

CI/CD

Miscellaneous Tasks

  • Update version to 1.2.1 (1123c43)

1.2.0 (2025-01-07)

Build System

  • Add UV package manager support (497d1ed)
  • Add build/release GitHub Action (497d1ed)
  • Rename project to fit-file-faker for PyPI (497d1ed)

Miscellaneous Tasks


1.1.1 (2025-01-07)

Features

  • Zwift: Add support for Zwift FIT files (7efa28d)
  • device info: Properly modify device manufacturer and product IDs (4d0d0a3)

Bug Fixes

  • Don't use magic numbers for device identification (b6400c9)
  • Remove unused variables (9415c62)
  • Remove unneeded commented code (bc78a6e)

Documentation

  • Update README with Zwift support information (09d8785)
  • Update config example file (cd352c7)
  • Various documentation improvements (450c7e6)

Styling

  • Code formatting improvements (132f22c)

1.1.0 (2025-01-05)

Features

  • config: Implement configuration as dataclass stored in local JSON file (90c75c1)
  • config: Add questionary for interactive config file generation (90c75c1)
  • monitoring: Rename daemonise to monitor for clarity (90c75c1)
  • monitoring: Use polling handler for monitor mode (better cross-platform support) (90c75c1)
  • monitoring: Add monitor option to watch directory for new FIT files (c9491d7)
  • monitoring: Add short pause after file creation to avoid CRC errors (63b7374)
  • upload: Add dryrun option for testing without uploading (acf863e)
  • upload: Add option to preinitialise the list of uploaded files (3ad9103)
  • upload: Store credentials on first run (6d5e4d2)
  • upload: Set default upload directory to configured TPV user dir (c537bcd)
  • upload: Change uploaded files tracking to be local to FIT files directory (c9491d7)
  • platform: Add macOS compatibility (3343374)
  • platform: Add minimum Python version check (90c75c1)

Bug Fixes

  • FIT processing: Set FitFileBuilder autodefine param to True, fixes issue with Strava FIT files (d7a2da3)
  • upload: Fix upload all bug when running on a directory other than cwd (bd704e6)
  • upload: Fix preinitialise bug (4c8de1f)
  • platform: Fix TPV path issues (5847de9, 8b94533)
  • platform: Fix FITfiles directory detection (c613c36)

Miscellaneous Tasks

  • Move .garth directory to script folder rather than FITFiles folder (90c75c1)
  • Better organize main code path (90c75c1)
  • Remove .env file (90c75c1)
  • Update requirements.txt (53ced03)
  • Bump Garth version (358409f)

Documentation

  • Update README with new features and improved help output (e3480ff, 90c75c1)
  • Add example .config file (2296c38)

Styling

Contributors

  • @benjmarshall (multiple contributions including daemon mode, config improvements, and bug fixes)

1.0.3 (2024-12-03)

Bug Fixes

  • dependencies: Update garth version requirement to address compatibility issue (e413e23)
  • Resolves garth issue #73

1.0.2 (2024-10-31)

Testing

  • Add install tests for CI/CD pipeline (91ba6f5)

Miscellaneous Tasks

  • Update requirements.txt (47133a1)

1.0.1 (2024-05-28)

Bug Fixes

  • Windows: Add tempfile options to workaround Windows permission issue (#1) (b3ae2cf)

Documentation

  • Update README with required Python version (fd82175)

1.0.0 (2024-05-22)

Features

  • Initial Release: First public release of Fit File Faker (7c78e47)
  • Modify FIT files to appear as Garmin Edge 830 device
  • Support for TrainingPeaks Virtual (formerly indieVelo) FIT files
  • Upload modified files to Garmin Connect
  • Batch processing of multiple FIT files
  • Credential storage and authentication