Skip to content

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

@holly-cummins

Description

@holly-cummins

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

  • Create draft PRs to add an extension to the registry + docs catalog at the same time as creating the initial repo
  • On release, automatically make a draft PR to add an extension to the registry if it's missing
  • On releasing multi-extension repos, if some extensions are already in the registry, prompt to add others/automatically make a draft PR/warn/fail the CI
  • Have the pre-release script just to call maven release plugin with a dry run flag; this would catch some problems, but not issues like using io.quarkiverse as the group ID
  • Better documentation of allowed categories.
  • Build-time validation of categories; if it's not an allowed one, suggest people choose one of the allowed ones (and show them the list), and also suggest they put the 'extra' stuff in as a keyword.
  • Harmonisation of allowed categories. We should also add 'Testing' to the allowed categories, since there's six extensions using it. We should also make sure that code.quarkus and the build tooling share a common source of truth.
  • The release (or build tooling) should check that if an extension sets an icon-url, it points to an image. Doing it at build time is maybe too heavy since then builds wouldn't work offline, and it wouldn't give people a window in which to sort out image publication.
  • The pre-release (or build) tooling should enforce that an extension sets its own description
  • Quarkiverse action to generate quickstarts (Create a Github Action to generate quickstarts for Quarkiverse extensions quarkusio/quarkus#24870)
  • Better documentation for extensions, in general

Implementation mechanics for release scripts

  • A custom action has the advantage people outside the quarkiverse could use it, and it's easier to get new code out to people ... it's also maybe a bit heavy for this use case, but Guillaume says it's very easy to do with it with https://github.com/quarkiverse/quarkus-github-action/.
  • Alternatively, we enhance the scripts - and then possibly also push changes out to existing repos

*Related discussions: *

  • General discussion of pre-release validation, plus advantages + disadvantages of GitHub actions: zulip
  • Discussion of how to help extension owners realise they forgot to add themselves to the registry: zulip
  • Discussion of category validation/non-validation: zulip

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions