bazel-contrib / bcr-ui

Website for the Bazel Central Registry
https://registry.bazel.build
Apache License 2.0
15 stars 8 forks source link

Show which OS a module supports #52

Open alexeagle opened 1 year ago

alexeagle commented 1 year ago

Related to #29 We should show which platforms a module is tested on.

We'd have to parse the presubmit.yml for a line like https://github.com/bazelbuild/bazel-central-registry/blob/main/modules/aspect_rules_js/1.15.1/presubmit.yml#L4

In particular, we should highlight when a module isn't tested on Windows, see https://github.com/bazelbuild/bazel-central-registry/pull/282#issuecomment-1396179860

hobofan commented 1 year ago

Noting down some info, as I took a quick look at it, and as always there seem to be a few nitty-gritty details that need to be figured out.

There seem to be multiple formats on how a platform can be specified. Apart from the matrix, the platform key can also appear in other positions (somewhat documented here https://github.com/bazelbuild/continuous-integration/tree/5242a5978f9a5219620813e0c540fb37444153ab/buildkite#legacy-format)

However, as it comes to testing, it seems that only the bcr_test_module.matrix.platform array values are relevant, if I understand it correctly.

For displaying the platform names, the emoji-name field may be usable (even though it contains some verbose platform info that I think may be too much detail for the BCR UI). We'll have to see how the emojis can be rendered (https://github.com/buildkite/emojis should help here, but the package is not published to NPM).


General docs about the presubmit.yml: https://github.com/bazelbuild/continuous-integration/tree/master/buildkite#configuring-a-pipeline

List of possible platform keys: https://github.com/bazelbuild/continuous-integration/blob/5242a5978f9a5219620813e0c540fb37444153ab/buildkite/bazelci.py#L461