StefanMaron / BusinessCentral.LinterCop

Community driven code linter for AL (MS Dynamics 365 Business Central)
https://stefanmaron.com
MIT License
72 stars 30 forks source link

LC0033 false positives #711

Closed rvanbekkum closed 1 month ago

rvanbekkum commented 1 month ago

Rule LC0033 can give false positives and suggest a runtime version that is not supported by the platform. For example, for 24.0 it suggests that 13.1 is supported, which is not the case for BC on-premise 24.0. The app compiles fine and publishes fine for BC online/cloud/SaaS, but results in the following exception/error when trying to publish the app to BC on-premise 24.0:

The runtime version of the extension package is currently set to '13.1'. The runtime version must be se
t to '13.0' or earlier in the app.json file in order to install the extension package on this server.

image

In the implementation I see that LatestSupportedRuntimeVersions is used, so the implementation itself seems ok, but it's a bit worrying and a difficult problem that it suggests a runtime version that the BC on-premise platform does not support. My suspicion is that Microsoft added support for runtime 13.1 in a hotfix to BC24.0, but of course, those hotfixes are only available for BC online and for BC on-premise there are only monthly updates and so it probably 'misses' the update for support for runtime 13.1.

Arthurvdv commented 1 month ago

Is it possible you're not on the currently latest 0.30.28 version of the LinterCop?

LC0033: Revert back to old static way of determining supported runtime @Arthurvdv (https://github.com/StefanMaron/BusinessCentral.LinterCop/pull/696)

I thought we've resolved this issue, see more details here: https://github.com/StefanMaron/BusinessCentral.LinterCop/issues/668

rvanbekkum commented 1 month ago

We are using the .app files that we deploy to AppSource to also generate runtime packages for BC on-premise. I think the .app files we currently have issues with had their runtime version property changed based on the suggestion for LC0033 back when it behaved differently. Thanks for addressing the issue with a new update and sorry for not checking that you have very recently released an update to address it already ;)

To accompany this rule, the suggestion for this new rule would be a very welcome addition though: 🤗 https://github.com/StefanMaron/BusinessCentral.LinterCop/discussions/697

(So that if it is still somehow set "too high" for some app, we can then easily detect it and revert it)