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

Artifacts `.current.dll` and `.next.dll` will become obsolete in the future #709

Open Arthurvdv opened 1 month ago

Arthurvdv commented 1 month ago

With the introduction of supporting multiple versions of the AL Language, the naming of the artifacts could be interpreted in various ways. It wasn't always clear if the current or next relates to the version of the LinterCop itself or the AL Language.

To create more clarity about this, to new artifacts where added;

If you're doubting which is the correct artifact, probably the BusinessCentral.LinterCop.dll is the one you need.
To create a better distinction between the pre-release of the LinterCop and the AL Language, the .next has been renamed to BusinessCentral.LinterCop.AL-PreRelease.dll and is currently exact the same as the BusinessCentral.LinterCop.next.dll.

AL Version Artifact State
Release BusinessCentral.LinterCop.dll New
Release BusinessCentral.LinterCop.current.dll Obsolete
Pre-Release BusinessCentral.LinterCop.AL-PreRelease.dll New
Pre-Release BusinessCentral.LinterCop.next.dll Obsolete

In the not yet determined future, not earlier than 2025, the .current.dll and .next.dll will no longer be included in the releases.

pibcht commented 2 weeks ago

@Arthurvdv Hi !

For a few hours I have had the following error in VSCode: Unable to load Analyzer assembly c:\Users\pibcht\.vscode-insiders\extensions\ms-dynamics-smb.al-14.0.1108692\bin\Analyzers\BusinessCentral.LinterCop.dll : File c:\Users\pibcht\.vscode-insiders\extensions\ms-dynamics-smb.al-14.0.1108692\bin\Analyzers\BusinessCentral.LinterCop.dll was not found.

I went to check Issues and Releases and came across this post.

You said :

the .next has been renamed to BusinessCentral.LinterCop.AL-PreRelease.dll and is currently exact the same as the BusinessCentral.LinterCop.next.dll

However I found this in Releases: image

Is this OK?

Arthurvdv commented 1 week ago

Hi @pibcht!

The error you're receiving maybe is caused by the fact that the Latest release version of the LinterCop doesn't include a BusinessCentral.LinterCop.AL-14.0.1108692.dll asset.

Currently on every new (pre)release of the AL Language, we need to release a new versions of the LinterCop (Latest and Pre-Release). I've noticed an increase in releasing pre-release versions of the AL Language, where this is getting more challenging to keep up the pace. The PR https://github.com/StefanMaron/BusinessCentral.LinterCop/pull/751 should resolve this by automatically add/update assets on the release of a new version of the AL Language. This should prevent you to get an error message like below.

Is this OK?

The both assets you're referring to are same, where I can understand the confusion based on the file size that is shown. More confusing could be that I guess you did look at the Pre-Release version of the LinterCop, which does include an asset for the AL version 14.0.1108692.

You can always inspect the file and on it's properties there's the AL Language version the assets has been build for. In the screenshot below (in Dutch).

image

pibcht commented 1 week ago

Thanks for taking the time to clarify this question and for the tip to look at the properties of the DLL 👍🏻.

My problem has indeed been solved for a few hours and I was able to integrate the latest LC00xx into my ruleset.json.