cake-contrib / Cake.AddinDiscoverer

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

Audit all version of discovered addins #215

Closed Jericho closed 1 year ago

Jericho commented 1 year ago

Currently we only audit the most recent version of discovered addins which means auditing roughly 350 nuget packages (as of this writing).

This leads to two problems:

  1. When generating the Excel and Markdown reports for compatibility with Cake, we make the assumption that an addin compatible with a recent version of Cake (such as Cake 3.0.0 for example) must have a previous version that was compatible with previous version of Cake (such as Cake 1.0.0 for example). This assumption was mostly correct a few years ago in the "pre Cake 1.0.0" days but as more addins are released and more version of Cake are released, this assumption is now much less accurate. In fact, I surmise that the assumption is now wrong most of the time.
  2. When proposing to upgrade package references in Cake.Recipe, we end up suggesting upgrading to the latest and greatest version of addins which may be compatible with Cake 3.0.0 when in fact Cake.Recipe is not yet compatible with that version of Cake. This originally wasn't a big problem because Cake.Recipe was either compatible with the most recent version of Cake or was behind by one major release only. However, Cake.Recipe has fallen behind by two major releases and this problem will get worse if Cake.Recipe doesn't keep up with Cake's release cadence.

Problem number is particularly bothersome to me because it leads the maintainers of Cake.Recipe to loose trust in the PRs submitted by the AddinDiscoverer.

Jericho commented 1 year ago

This new logic means auditing all version of all addins (more than 4,000 packages as of this writing). I'll have to add logic to cache the result of the analysis so we don't end up downloading and auditing all four thousand packages twice a day, every day.

Jericho commented 1 year ago

This feature is done and is being released as part of version 5.0.0