Quarkiverse Hub - Home of Community Extensions
Today we’re proud to announce Quarkiverse Hub, a GitHub organization where any contributor can host their Quarkus extensions.
|Hosting your extension in the Quarkiverse Hub makes it available to all Quarkus users through the Quarkus tooling.|
So read on to discover more and find out how you can make your extension available to all Quarkus developers today!
By hosting an extension under the Quarkiverse Hub, the following features are enabled:
- Automated and secured publishing of your Maven releases to Maven Central
Registering and publishing artifacts to Maven central can become a daunting task. In Quarkiverse that is automated by GitHub Actions, requiring no manual interaction with any command line tools. Releasing an artifact is as simple as opening a pull-request changing the
.github/project.ymlfile in the extension’s repository. Once the pull-request is merged, a GitHub action is triggered invoking
mvn release:prepare release:performand the extension is deployed to Maven central.
- Automated cross-testing of your extension with Quarkus builds/releases
Quarkus Core releases happen constantly and keeping up with the latest changes before a release is performed is crucial. Quarkiverse extensions are built daily against the latest Quarkus core using the Quarkus Ecosystem CI and listed in the Quarkus Status page.
- Consistent formatting and release of projects
quarkiverse-parentartifact (inherited by each extension in Quarkiverse) enables plugins that will format your source code to the same format used in Quarkus core.
- Documentation aggregation
Get your versioned extension documentation automatically published (including guides)! Quarkiverse Hub uses Antora to aggregate each extension documentation in the Quarkiverse docs website. Although the layout is still a work in progress, you can check it out at https://quarkiverse.github.io/quarkiverse-docs/
In order to automate extension releases and publication of docs, there are some rules that need to be followed for projects under the Quarkiverse organization:
The extension repository should be named
A Quarkiverse extension MUST belong to the
The root pom.xml MUST inherit from
A Quarkiverse extension has the following structure:
├── deployment (1) ├── runtime ├── integration-test ├── docs (2) ├── pom.xml ├── LICENSE └── README
|1||The deployment, runtime and integration-test directories containing the extension classes. See How to create new extension modules using Maven for more details.|
|2||docs (optional): The docs should follow the Antora’s Standard File and Directory Set. See an example here.|
|For more information, look at the Quarkiverse Wiki|
Create an Extension Proposal ticket in the Quarkus issue tracker (first check if the extension you’re proposing is not created yet) and let us know if you want to lead the development of this extension by commenting on the issue.
The Quarkus team will get you started with the boring stuff of setting up a brand new repository and deployment scripts, so you’ll have fun coding it.
As usual, we’re always improving, so take a look at Joining Quarkiverse for the process we are currently using.