Acknowledged

bug: venusqm CIQ version isn't updated

On a physical venusqm the API level is 3.3.6, but in compiler.json it's only 3.3.1 and here: https://developer.garmin.com/connect-iq/compatible-devices/ it's only 3.3.0

  • > This theories are because I try to find the reason why the sdk limits devices by firmware version.

    I was wondering if you could weigh in on this. I know you've been patient enough to explain this before, but I don't want to paraphrase or reinterpret anything you or the rest of the team said.

  • This theories are because I try to find the reason why the sdk limits devices by firmware version.

    And yes, probably you are right, they aren't true so it means the limitation is not necessary.

    And this discussion is purely theoretical because if someone introduced something like this without taking into account such a situation, they either did not foresee it or did it on purpose.

  • Again:

    1) The CIQ team agrees with us that it would be beneficial to allow building with older devices files / older SDKs, so hopefully they will eventually distribute old device files

    2) The CIQ team also says you shouldn't edit device files files by hand because the device could crash and I gave an EXAMPLE which again has nothing to do with these theories that you mentioned:

    "it means new firmware can have not only API but also duplicated api (for app built the older SDK and the newest). Or upgrading of firmware upgrading installed app to the newest CIQ."

    My point is that I don't think these theories ^ are true at all.

    My point isn't that my example is meaningful to you, but that's it's an explanation for why the device could crash due to editing device files by hand which has nothing to do with those theories.

    Even long before this exact discussion, I had guessed that if you change firmwareVersion in compiler.json, you also have to know the correct connectIqVersion to use.

    And whenever you talk about editing compiler.json, you never say where you get the old firmwareVersion / connectIqVersion from.

    If you just change firmwareVersion / connectIqVersion "randomly" (I'm not saying this is what you do, but anybody could do it, right), then that's where a crash could occur.

    If you get those values from an old backup copy of compiler.json then that's ok - I think. If you have a backup copy of the device files it might even be safer to replace the entire folder with the backup. Who knows what else in that folder needs to be rolled back?

    3) "There is no reason to limit device by firmware"

    You said this multiple times and I can't help you with that. I can only guess that the CIQ team wants to give devs a way to force users to upgrade (as I said) and this is how they chose to do it (whether we agree with it or not).

    Your problem should be partially solved if and when Garmin allows old devices files to used.

    - with old device files, at least the user is only forced to have older firmware

    - with old device files, at least you can build

    4) "I don't use type check"

    I don't think I said anything about type check at all. I searched all the comment for the word "type" and only your more recent comment (and this comment) have that word at all.

    5) "I don't use compile has check"

    But others might. What if compile-time has checks are used by default (with default optimization settings / default compiler options)? After all "--disable-api-has-check-removal" was added as an option for a reason, because many people complained about compile-time has checks. They didn't necessarily opt-in to compile-time has checks nor were they necessarily aware compile-time has checks happen in the first place (which comes up in the forums *all* the time).

    This stuff isn't about any one dev or group of devs.

  • 1. I don't use compile check has

    2. I don't use type check

    3. I have to use the newer SDK because I'm forced to do it just because they don't support the newest devices (not firmware) and e.g. 7.4.3 can't build for fenix123

    I have written my apps for devices and minSDK pointed in manifest and expect all the tools will respect my settings, settings which are prepared just for it - selecting the device I want to support...

    So modify jsons is only forcing sdk to fulfilled my expectation. If it's danger it means SDK is not designed correctly.

    There is no any information in doc connected with firmware version. Let see...

    Notification message types

    Since:

    API Level 5.1.0

    I don't want to use notification, so why sdk 8.1 remove all fenix7 below 20.x? Just because they don't support 5.1.0? I don't need it! And for older firmware I can use has to check if I can send notification.... The new function have the new id. Can you tell that in the new firmware the id of the function are overwritten?

    There is no reason to limit device by firmware on condition developer knows what to do but if don't ERA give that knowledge. 

    For me the problem is quality, new sdk, new bugs, memory, testing the same code with the new sdk...My apps are free but for people earning money less potential users means less potential money. 

  • > - Kyle.ConnectIQ was right that manually editing the device files can cause a crash

    To explain this again: if you edit a device file manually and rebuild your app, it's possible that the app can now be installed on a device with an older Connect IQ version than the compiler *thinks* is possible, if the device file was edited incorrectly.

    In other words, you can accidentally edit compiler.json so that your app can be installed on device with CIQ 4.1, even though the compiler thinks the device must have at least CIQ 4.2. If you have a compile time has check which checks for some feature X available since 4.2, then uses X, the app will crash because the compile-time has check will return true, but the device doesn't actually have X.