Skip to content

Releases: muktihari/fit

v0.20.0

05 Jun 04:54
83be6aa
Compare
Choose a tag to compare

Breaking Changes

  • proto.DeveloperField struct is simplified, now only consist of Num, DeveloperDataIndex, and Value, other fields are removed.
  • proto.Sizeof func now only take one parameter: proto.Value.

What's Changed

Full Changelog: v0.19.2...v0.20.0

v0.19.2

03 Jun 04:57
85d652d
Compare
Choose a tag to compare

What's Changed

  • chore: clean up code, fix typo and update docs by @muktihari in #299
  • cli: fitactivity fix combined FIT unable to upload to Garmin Connect by @muktihari in #300
  • tests: clean up benchmark code by @muktihari in #301
  • chore(filedef): clean up unnecessary developer-field-copy by @muktihari in #302
  • chore: make fields/developerFields n buffer size 255 instead of 256 by @muktihari in #303
  • chore: update CI and go.mod by @muktihari in #304

Full Changelog: v0.19.1...v0.19.2

v0.19.1

28 May 13:34
89ad9f9
Compare
Choose a tag to compare

What's Changed

  • fix: update rule regarding field num timestamp by @muktihari in #298

Full Changelog: v0.19.0...v0.19.1

v0.19.0

28 May 05:32
c57f3f3
Compare
Choose a tag to compare

Breaking Changes:

  • filedef: Activity's field named SegmentLap is a slice but the name is not plural, it is changed to SegmentLaps
  • filedef: ToMesgs func and ToMesg interface are now removed as it was previously marked as deprecated.

What's Changed

Full Changelog: v0.18.2...v0.19.0

v0.18.2

23 May 11:45
a4a3fce
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.1...v0.18.2

v0.18.1

20 May 13:02
e2f3f5c
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.0...v0.18.1

v0.18.0

15 May 02:10
358ed0a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.2...v0.18.0

v0.17.2

14 May 06:23
87bd48d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.1...v0.17.2

v0.17.1

13 May 12:24
fd5ef5b
Compare
Choose a tag to compare

What's Changed

  • fix: decoder on handling developer data and other improvements by @muktihari in #262

Full Changelog: v0.17.0...v0.17.1

v0.17.0

13 May 08:40
59432fb
Compare
Choose a tag to compare

What's Changed

Brief Summary

  1. Fix misspell on generated code (need to break the prior version)
    The Profile.xlsx file, retrieved from https://developer.garmin.com/fit/download, that we use to generate the building block of this SDK contains some misspelled words. For example, a type named "connect_iq_app_managment" where "managment" is a misspelling of "management", this type will be generated as typedef "ConnectivityCapabilitiesConnectIqAppManagment". This version fixes it as "ConnectivityCapabilitiesConnectIqAppManagement". For details on other misspelled words, please check PR-#252.
  • Fix bool and []bool unmarshal value (need to break the prior version)
    Previously, bool and []bool will be decoded/unmarshaled as uint8 and []uint8 respectively as the proto.UnmarshalValue does not have context regarding profile.ProfileType. This issue creates invalid values when we convert proto.Message into mesgdef's structs that have field typed bool. And also, this might create confusion to the users when they expect to get bool or []bool value but instead receiving uint8 and []uint8. This version fixes the issue, now proto.UnmarshalValue is receiving additional parameter: profile.ProfileType.

  • More robust FIT SDK: Fuzz testing is added to the repository
    Since this fuzz testing is introduced, we got some edge-cases when we encounter a bad encoded FIT files, some of them may cause panic to our SDK, and the others causing undefined behavior, these problems are now fixed.

  • Performance improvement, the version is faster and using less memory than prior version.
    We reduce some instructions in our code to improve the speed. We achieve lowering memory usage when decoding Common File Types using filedef's listener by optimizing channel buffer size and we significantly speed up encoding process by optimizing proto.Value related items.

  • For other small changes, please see references below.

References:

Full Changelog: v0.16.5...v0.17.0