Skip to content

v0.1.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@tsubotti63 tsubotti63 released this 20 Jul 03:48

v0.1.0-rc.1

Release summary

This is the first Release Candidate of Garmin Running Data Normalizer. It is for
users who want to evaluate a local, activities-only synthetic Golden Path before
a stable release. It reads a Garmin-shaped export directory and writes
deterministic normalized activities, QA, and provenance metadata without using
a hosted service.

The Git tag is v0.1.0-rc.1; the corresponding Python package version is
0.1.0rc1 to follow Python version syntax.

Included

  • A formal module command for the activities-only synthetic Golden Path
  • One visibly synthetic Garmin-shaped input fixture
  • Deterministic normalized_activities.json, qa_summary.json, and
    run_manifest.json outputs
  • Activity-grain records keyed by garmin_activity_key
  • Source-relative provenance, source/output SHA-256 values, and a deterministic
    records digest
  • Fail-closed input and archive checks and non-destructive input handling
  • A reviewed Golden Result, Product Quick Start, automated tests, validators,
    and GitHub Actions workflow

Supported scope

The formal CLI supports summarizedActivities.json activity normalization only.
Library components also exist for Garmin gear and activity-gear links, personal
records, bounded FIT sessions/laps, dataset policy inspection, deterministic QA,
and allowlist-only Analysis Pack creation. Those components are not exposed as
a combined Run-All command.

Known limitations

  • This is a Release Candidate; the Python API may change before a stable release.
  • The formal CLI supports a limited activities dataset, not every Garmin export
    dataset.
  • There is no complete Run-All workflow.
  • Validation uses synthetic fixtures and does not guarantee compatibility with
    every real Garmin Account Export shape.
  • Open-Meteo and Parquet output are not implemented.
  • FIT parsing is limited to selected session and lap fields and does not provide
    complete CRC or invalid-sentinel handling.
  • The project is not published to PyPI.

Safety and privacy

The workflow is local-first and does not modify its input. Only wholly synthetic
fixtures are committed. Do not commit real Garmin exports, generated personal
outputs, account or activity identifiers, coordinates, health data, credentials,
or host-specific paths.

Quick Start

Follow the Product Quick Start.
The formal command is:

python -m garmin_running_data_normalizer normalize-activities \
  --input examples/synthetic/garmin_export \
  --output workspace/golden-path

Verification

The candidate is covered by 29 synthetic tests, Golden Result comparison,
deterministic repeat-run checks, input immutability checks, Bootstrap Validation,
Static Policy, Platform Alignment, Public History validation in CI, and the
bootstrap-ci GitHub Actions workflow. The release commit must pass that
workflow before the tag and GitHub prerelease are created.

Feedback

Report reproducible problems through
GitHub Issues.