v0.1.0-rc.1
Pre-releasev0.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.jsonoutputs - 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-pathVerification
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.