cake-contrib / Cake.AddinDiscoverer

Tool to aid with discovering information about Cake Addins
MIT License
5 stars 6 forks source link

Exception when a method in an Addin is decorated with an attribute from a NuGet package #228

Closed Jericho closed 9 months ago

Jericho commented 9 months ago

When the AddinDiscoverer is inspecting the methods in an addin for those decorated with the CakeMethodAliasAttribute attribute, we get an exception if any method has a custom attribute where its type is defined in a NuGet package. This exception causes the analysis for this particular addin to be aborted and any analysis that is normally performed subsequent to the method attribute inspection is therefore never performed. For example, we don't analyze the version of Cake that this addin is compatible with. The fact that we don't determine the compatible version of Cake means that we may incorrectly conclude that a given addin is not compatible with a specific version of Cake.

To illustrate this issue, let's use Cake.AppVeyor as an example. Some methods in version 6.0.0 are decorated with attributes from the Refit NuGet package (one such example here). The presence of this attribute causes the analysis to be aborted and, consequently, we don't determine that this version of Cake.AppVeyor is compatible with Cake 2.0.0. This issue is the reason why "Cake.Appveyor" is not deemed to be compatible with Cake 2.0.0 when we generate this issue.

@gep13 When I publish a fix for this issue, the checkbox next to Cake.AppVeyor in the issue I referenced above will automatically get checked. There may be other addins in the same situation as well but Cake.AppVeyor is the only one I have noticed so far.

Jericho commented 9 months ago

AddinDisco version 5.8.0 is bein published with a fix for this bug. I also modified Analysis_result.json to force Cake.ApVeyor version 6.0.0 to be re-analyzed