Supermarket 2.8.0 Release Notes: Introducing Quality Metrics

Features

  • Quality Metrics v1: In Supermarket 2.7.4, Fieri – a cookbook criticizer that runs FoodCritic – got a new home within the Supermarket install. Now Fieri will run two metrics - Foodcritic and a Collaborator count. These are drawn from https://github.com/chef-cookbooks/cookbook-quality-metrics - a repo where the community can suggest quality metrics to be run on cookbooks. For this release, we have implemented two of these, the rest will come in future releases. In this latest release, Supermarket adopted a second worker through Fieri, the CollaboratorWorker. On the foundation of the Fieri engine, the harmonious coexistence of a FoodcriticWorker (previously CookbookWorker) and the CollaboratorWorker is a proof of concept for hosting a multitude of quality metric workers in Fieri. Each worker has its own purpose:
    * The FoodcriticWorker does what the tab has historically performed. It evaluates a cookbook against Foodcritic criteria.
    * The CollaboratorWorker gets information about how many collaborators a cookbook has from the supermarket API. Then Fieri evaluates it based on a ‘sufficient collaborator’ criterium, which is currently if the cookbook has two or more collaborators, and posts this information back to Supermarket through an evaluation endpoint. Both metrics are then displayed on the show page for that cookbook version under the ‘quality’ tab.

Metrics are owned by the CookbookVersion, not the Cookbook: This release clarifies a previously muddled distinction about whether metrics belonged to a cookbook version or cookbook. Now, in each api endpoint for a version there is a section dedicated to quality and broken up into each metric. Now a user can access the history of quality for the current version of a cookbook uploaded after this release, rather than that information getting overwritten with every new change to a cookbook or addition of a cookbook version.

For more details about the changes in this and other releases, see the Supermarket changelog.

For an example of a cookbook with both quality metrics, please see https://supermarket.chef.io/cookbooks/yum-cron#quality

1 Like

NICE! Great work everyone :slight_smile: