Skip to content

Releases: deancochran/ftms

FTMS TypeScript 0.6.0

Choose a tag to compare

@deancochran deancochran released this 02 Oct 19:34
be188dd

Published npm package: @deancochran/ftms@0.6.0.

One decodeFtmsMeasurement(characteristicUuid, bytes, options) interface covers all six FTMS measurement families using one shared raw engine and physical-unit projection. Includes typed named raw values, common metrics and diagnostics. Existing interfaces are preserved; the bike view delegates to the shared implementation.

Tag v0.6.0: be188dd802f3b15e2478a240ff612fbbd92c6198 (PR #43).

Release verification passed on retry after registry processing delayed initial public availability. The immutable archive was not replaced.

Public archive integrity:
sha512-fzFdW/C0K1gMdNim5yNHGuBS6Gyz6JKn58I3B/lBY58fkmD4/0m+wl2kKw3L0Ljg3SHj8bKSCRWtPLIasGBeOg==

604 tests pass; Node 20/22/24 CI, ESM/CommonJS installed consumers and browser resolution pass. Public npm installation passes Auuki's 17 parser tests and production build without tooling configuration changes. Its pre-existing full-suite failures remain. No live-device or Bluetooth qualification claim.

FTMS TypeScript 0.5.0

Choose a tag to compare

@deancochran deancochran released this 02 Oct 16:04
b79bb9e

Published npm package: @deancochran/ftms@0.5.0.

  • Adds decodeIndoorBikeData with named measurements, raw values and diagnostics.
  • Ships ESM and CommonJS compiled from the same source, matching declarations and legacy resolver metadata.
  • Preserves existing interfaces, pure byte-only scope and shared corpus identity.

Tag v0.5.0 identifies reviewed main commit b79bb9e5dfc1af4dbd59ceeddb9e0b26f1d27176 (PR #41).

Release and installed public-consumer verification passed on retry after npm's initial processing delay. The immutable archive was not replaced.

Archive integrity:
sha512-6DhDyn51mj5Ywh7wtv+gcB+GS7O8BwaXVD6oR2poD5ORZ90v2nruDQwJcWg8RQZ4jh3Vrpm7n2VrUginGEGj+g==

594 package tests pass; Node 20/22/24 CI passes. Public npm installation passes Auuki's 17 indoor-bike tests and Parcel build with unchanged Parcel/Jest configuration; its existing full-suite failures remain. No live-device or Bluetooth qualification claim.

FTMS Swift 0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 03:04
a18009d

Native Swift FTMS protocol package 0.1.0.

Source commit: a18009d6e9892d92bba00e3c6c6388a9fbc0f5c8. Specification: FTMS 1.0 + EC23224. Corpus versions and
SHA-256 identities are recorded in the attached verification reports.

Install with SwiftPM (Swift 6.0+), then select product FTMS:

.package(url: "https://github.com/deancochran/ftms.git", revision: "swift-v0.1.0")

For an immutable pin, replace the tag with a18009d6e9892d92bba00e3c6c6388a9fbc0f5c8. Do not use from: or
.exact() semantic-version requirements in this multi-package repository: its
ordinary v* version tags belong to npm, not Swift.

Verified on Linux and macOS: 282 canonical fixtures, 181,760 measurement layouts,
46 sentinel cases, 47 reserved-bit cases, 315 incomplete prefixes, release builds
and isolated public Git/tag consumers. The installed consumer also compiled for
macOS 13, iOS 16, tvOS 16, watchOS 9 and visionOS 1 deployment targets using Apple SDKs.
These are SDK build results, not
runtime tests on every OS version or on physical Apple devices.

Includes Features, five ranges, all six measurement families, all 21 controls,
responses/statuses, range inspection and static capabilities. No BLE lifecycle,
manufacturer-specific behavior, real-device interoperability or Bluetooth
qualification is claimed. npm/C releases and tags are unchanged.

See package documentation
and changelog.

FTMS Rust 0.1.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 23:24
9788526

Rust ftms 0.1.1, source 97885265d28b22807499ada88882cda05f51ff9a.

Prepared release; publication is not yet claimed.

  • Added public allocation-free normalized range, human-unit control-request,
    control-response and Machine Status projections, retaining status actions.
    The normalized codec-v1 adapter now validates and
    accounts for all 97 canonical cases (zero unsupported/skipped); this is source
    capability after 0.1.0, not a change to that released artifact.

Gated host tests, extracted-package and public-registry consumers passed.
SHA256SUMS pins the source archive and release/install evidence.
No MCU execution, Rust device interoperability or Bluetooth qualification is implied.

FTMS Rust 0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 20:24
58b9add

Rust ftms 0.1.0, source 58b9add0addea516769c6f01d4b117a1b02110e1.

Initial Rust protocol-library release.

  • Independent, allocation-free no_std implementation with no unsafe code or
    runtime dependencies; minimum supported Rust version 1.85.1.

  • Bidirectional Features, five Supported Ranges, all 21 Control Point requests
    and responses, six measurement families, Training Status and Machine Status.

  • Explicit independent wire-format selections, diagnostic range inspection,
    raw absent/unavailable distinctions and failure-atomic caller-buffer encoding.

  • Shared literal conformance and structural-matrix tests, malformed-input and
    boundary checks, Cortex-M0 compilation and isolated packaged consumers.

  • Gated rust-vVERSION crates.io publishing and checksum-pinned GitHub release evidence.

  • Static capability-evidence interpretation with 63 exact canonical reports,
    typed Feature queries and normalized measurement projections, and bounded
    More Data planning/assembly. Normalized codec-v1 evidence covers 35 Feature
    cases; the remaining 62 cases are explicitly unsupported by that runner.

These host/package checks are not MCU execution, Rust BLE/device
interoperability, PTS or Bluetooth qualification evidence.

Gated host tests, extracted-package and public-registry consumers passed.
SHA256SUMS pins the source archive and release/install evidence.
No MCU execution, Rust device interoperability or Bluetooth qualification is implied.

Go v0.1.0

Choose a tag to compare

@deancochran deancochran released this 30 Sep 20:38

Initial pure-Go FTMS release: bidirectional raw codecs, range inspection, normalized ranges, and complete static capability interpretation.

Install:

go get github.com/deancochran/ftms/packages/go@v0.1.0

Source: bb470e9, merged into main by PR #26. The annotated nested-module tag is packages/go/v0.1.0.

Verified public module downloads through proxy.golang.org and sum.golang.org with fresh consumers on Go 1.24.0 and 1.27.1 (Linux/amd64). Codecs, capability interpretation, installed-module tests and builds passed. All 63 capability cases passed, alongside 122 additive raw cases/216 assertions, 9 inspection reports, and 181,760 structural measurement layouts in both directions. Attached evidence includes exact corpus identities, clean source reports, public module checksums, and SHA256SUMS.

Normalized measurements and record planning/assembly are not included. No BLE lifecycle, device interoperability, physical-control permission, or Bluetooth qualification is claimed. API is pre-1.0; future minor versions may change it.

FTMS Kotlin/JVM 0.1.0

Choose a tag to compare

@deancochran deancochran released this 30 Sep 03:01

FTMS Kotlin/JVM 0.1.0

Published and verified on Maven Central:

repositories { mavenCentral() }
dependencies { implementation("io.github.deancochran:ftms:0.1.0") }

Public artifacts

Independent pure Kotlin/JVM protocol library for Kotlin, Java and Android:

  • Bidirectional codecs for all six measurement families.
  • Features, five supported ranges and inspection.
  • All 21 Control Point procedures/responses, Machine Status and Training Status.
  • Static capability evaluation and explicit wire-format variants.
  • No BLE transport, Android lifecycle or manufacturer-specific assumptions.

Verification and identity

  • Signed tag: kotlin-v0.1.0.
  • Exact source: 1fdfefb62f5c1b6a6b3e757cf24deb9d5c09560a.
  • 87 JUnit tests, complete applicable canonical corpora, 181,760 measurement
    layouts encoded and decoded, sentinel/reserved-bit/truncation boundaries.
  • Kotlin/Java artifact consumers executed; Android API 26+ APK compilation passed.
  • All nine release-source PR CI checks passed.
  • Central reported PUBLISHED for deployment 86dfed11-b0e1-4795-a233-60e12e6fc12a.
  • All 30 public Maven files matched the signed manifest; OpenPGP signatures and
    public-repository Java/Kotlin execution and Android APK compilation passed.

OpenPGP fingerprint: A355E4B9EBD3FAEC850A84A6B7A6488FE4805547.

Binary JAR SHA-256:
c32c3d4bf2533c0d5ff20cc30778973e0c1fd9568a7e75c505a6db0cbaf6a650

Central bundle SHA-256:
f56b8db378ab1efb7242126fbbed42fef7d1761c9a2316e735d8c2c3a126eb25

Attached: exact Central bundle, signed artifact manifest, public key,
Central/public-verification receipts, and signed clean-source conformance reports.
The tagged artifact source is unchanged by subsequent publishing-client fixes.

The standard release method is documented in packages/kotlin/docs/releasing.md:
prepare, validate/upload, explicitly publish, then verify public artifacts.

Android compilation is not an emulator/device run. No live Kotlin Bluetooth
commands, physical power-accuracy tests or Bluetooth qualification are claimed.

C# / DeanCochran.Ftms 0.1.0-alpha.1

Pre-release

Choose a tag to compare

@deancochran deancochran released this 30 Sep 22:55

Published on NuGet: https://www.nuget.org/packages/DeanCochran.Ftms/0.1.0-alpha.1

Install: dotnet add package DeanCochran.Ftms --version 0.1.0-alpha.1

Pure managed netstandard2.1/net10.0 FullWire codecs, normalized views, range inspection and static capability evidence. No BLE transport or execution authority.

Signed source tag identifies db1f24a. Recovery tooling at 99cc6ce preserved that immutable source. Release run 36787466238 passed Linux/macOS/Windows checks, Linux NativeAOT, exact artifact gates, NuGet OIDC upload, repository-signature/payload verification and fresh public consumers for both target assemblies.

Assets retain the unsigned tested upload, NuGet repository-signed download, symbols upload and verification evidence with SHA256SUMS. The nupkg archive hashes differ because NuGet adds its repository signature; every other ZIP entry matches. Symbols were submitted successfully; symbol-server indexing is asynchronous. No real-device or Bluetooth qualification claim.

FTMS C 0.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 19:28
a32de9c

Portable C99 source package. All codec and artifact checks passed. Registry submissions are separate. No board or Bluetooth qualification is implied.

FTMS C 0.1.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 15:46
74f1552

Portable C99 source package. All codec and artifact checks passed. Registry submissions are separate. No board or Bluetooth qualification is implied.