quarkiverse / quarkiverse-devops

Scripts to maintain Quarkiverse repositories
6 stars 14 forks source link

Epic: More validation at release time to make managing a Quarkiverse extension easier #231

Open holly-cummins opened 5 months ago

holly-cummins commented 5 months ago

This is a draft; I need a place to write down various enhancements I/we want to do. The high-level goal is that releasing a 'correct' Quarkiverse extension should have as few manual steps as possible, and as few opportunities for error/missed steps as possible.

At the moment, it can take many attempts to do a successful release, and even when the release is done, publication may not be 'complete':

image

Common problems

Possible solutions

Implementation mechanics for release scripts

Related discussions:

In general, we have to accept that external resources may not always be available, but when there's a clear mismatch between intent ("I think this url is live!" or "I think this url has an image on the other end of it") and reality ("uh, that's not an image, that's an html page"), then we're helping people by letting them know early. The aim here is to reduce friction and shorten feedback cycles.

holly-cummins commented 3 months ago

Related idea, but not part of this work item - automated checking against the Extension Maturity Model (eg having a dev ui)

ppalaga commented 3 months ago

Authors publish extensions with dead guide links

If you mean broken links in the given extension's Antora docs, then Quarkus Antora covers that need for local links at least. It has to be added as a dependency to the docs module and a simple test class has to be created. The Antora site served by Quarkus is then started before running the test. If there are broken local links, the app simply does not start.

I considered to implement also checking of external links some time ago and filed an issue for that right now. https://github.com/quarkiverse/quarkus-antora/issues/23

ppalaga commented 3 months ago

Note we don't actually give people the list of acceptable values. We see that many extension authors choose a category which isn't one of the 'allowed' ones, because the allowed list is something they'd have to hunt for, and we don't validate it.

Where is that list?

holly-cummins commented 3 months ago

Authors publish extensions with dead guide links

If you mean broken links in the given extension's Antora docs, then Quarkus Antora covers that need for local links at least. It has to be added as a dependency to the docs module and a simple test class has to be created. The Antora site served by Quarkus is then started before running the test. If there are broken local links, the app simply does not start.

I considered to implement also checking of external links some time ago and filed an issue for that right now. quarkiverse/quarkus-antora#23

The problem I was referring to was dead links in the guide: element of the extension metadata itself (see, for example, https://quarkus.io/extensions/io.quarkus.qson/quarkus-qson/ - if you click on the 'Guide' link, you get a 404). We run a link checker and automatically detect those dead links when they hit the extensions page, but by then it's too late, because the bad data is already in a release. A tighter feedback cycle would be better.

So the thing I meant is is orthogonal to dead links in an extensions docs, but helping to avoid those is also a good thing.

holly-cummins commented 3 months ago

Note we don't actually give people the list of acceptable values. We see that many extension authors choose a category which isn't one of the 'allowed' ones, because the allowed list is something they'd have to hunt for, and we don't validate it.

Where is that list?

I believe it's https://github.com/quarkusio/quarkus/blob/main/devtools/bom-descriptor-json/src/main/resources/catalog-overrides.json.