Acknowledged

deprecation warnings should not be raised when there's no alternative

I know this issue has been raised before but with the new app I'm writing I'm trying to be a good citizen and to avoid all compiler warnings, so as the issue bothers me I'm raising it again. :)

It's simply impossible (I don't consider providing a command line parameter option to ignore warnings a valid option) to create a warning free app if you also want to support "older" devices

in particular in this specific app the warnings I'm seeing are:

WARNING: device name: soucefile: '$.Toybox.ActivityRecording.SPORT_TRAINING' is deprecated.

WARNING: device name: soucefile: '$.Toybox.Application.AppBase.getProperty' is deprecated.

WARNING: device name: sourcefile: '$.Toybox.Application.AppBase.setProperty' is deprecated.

Is it really not possible to make this warning context aware? Surely this should not be too hard? 

Eg if you are building for a fenix 3 you know that:

- you can not use the Toybox.Activity.Sport types as they are only available as of api 3.2.0 and that you HAVE to reside to ActivityRecording types

- you can not use Storage.getValue or Properties.getValue as they are only available as of api 2.4.0 and that you HAVE to reside to getProperty

 TL/DR make the deprecation warning context aware and only raise it when the preferred alternative is available to use

Parents
  • I agree 100% but I feel like Garmin is really trying to leave the old devices behind now (in a way they haven't before), as far as CIQ goes

    - System 7 (CIQ 5) is only for new devices (which previously had CIQ 4). Previous "system levels" encompassed both new devices (CIQ 4.*) and old devices (CIQ 3.*) simultaneously (which is why the system level scheme was invented in the first place)

    - Monetization only applies to fairly new devices (mostly System 7 with the exception of Fenix 6 Pro family, I think)

Comment
  • I agree 100% but I feel like Garmin is really trying to leave the old devices behind now (in a way they haven't before), as far as CIQ goes

    - System 7 (CIQ 5) is only for new devices (which previously had CIQ 4). Previous "system levels" encompassed both new devices (CIQ 4.*) and old devices (CIQ 3.*) simultaneously (which is why the system level scheme was invented in the first place)

    - Monetization only applies to fairly new devices (mostly System 7 with the exception of Fenix 6 Pro family, I think)

Children
No Data