This application is the backend for the Quarkus Extension Registry. It is responsible for indexing all Quarkus extensions and platforms, and providing a REST API to query them.
Use Docker Compose to boot a PostgreSQL DB and the latest Docker Image
docker-compose up
The application will start a PostgreSQL DB using DevServices.
Run the following command to start the application (make sure your Docker daemon is running):
./mvnw clean compile quarkus:dev -Ddebug
Once the application is running, clone the https://github.com/quarkusio/quarkus-extension-catalog and run the following in the root of your cloned repo:
jbang catalog_publish@quarkusio --working-directory=. --registry-url=http://localhost:8080 --token=test --all
CI deploys a new tag to Quay on every build. The tag is based on the first 7 characters from the SHA1 commit.
- List of platforms (marked with the recommended platform)
- Descriptor of the chosen platform (extensions belonging to platform)
A JSON file that lists the preferred versions of every registered platform (e.g. quarkus-bom, quarkus-universe-bom, ect). It also indicates which platform is the default one (for project creation), e.g. the quarkus-universe-bom;
Same as above but per Quarkus core version expressed with as the artifact’s classifier;
JSON catalog of non-platform extensions that are compatible with a given Quarkus core version expressed with < QUARKUS-VERSION> as the artifact’s classifier;
The JSON registry descriptor which includes the default settings to communicate with the registry (including specific groupId, artifactId and versions for the QER artifacts described above, Maven repository URL, etc).
/maven/io/quarkus/registry/quarkus-platforms/1.0-SNAPSHOT/metadata.xml
/maven/io/quarkus/registry/quarkus-platforms/1.0-SNAPSHOT/quarkus-platforms-1.0-SNAPSHOT.pom
/maven/io/quarkus/registry/quarkus-platforms/1.0-SNAPSHOT/quarkus-platforms-1.0-SNAPSHOT.json
/maven/io/quarkus/registry/quarkus-platforms/1.0-SNAPSHOT/metadata.xml
/maven/io/quarkus/registry/quarkus-platforms/1.0-SNAPSHOT/quarkus-platforms-<QUARKUS_VERSION>-1.0-SNAPSHOT.pom
/maven/io/quarkus/registry/quarkus-platforms/1.0-SNAPSHOT/quarkus-platforms--<QUARKUS_VERSION>-1.0-SNAPSHOT.json
/maven/io/quarkus/registry/quarkus-non-platform-extensions/1.0-SNAPSHOT/metadata.xml
/maven/io/quarkus/registry/quarkus-non-platform-extensions/1.0-SNAPSHOT/quarkus-non-platform-extensions-1.0-SNAPSHOT.pom
/maven/io/quarkus/registry/quarkus-non-platform-extensions/1.0-SNAPSHOT/quarkus-platforms-1.0-SNAPSHOT.json
The following queries below are useful to gather data to feed the application's database. You can go to https://graphql.github.com to perform these queries.
{
search(query: "topic:quarkus-extension org:quarkiverse", type: REPOSITORY, first: 100) {
repositoryCount
nodes {
... on Repository {
name
}
}
}
}
Updates to the registry.quarkus.io happen from an scheduled job set in https://github.com/quarkusio/quarkus-extension-catalog. Everytime an extension or platform update is detected, the corresponding YAML file is updated with the detected version. If you would still like to manually trigger the indexing, do the following:
- Clone https://github.com/quarkusio/quarkus-extension-catalog
- Run the following command in the cloned repository (make sure you have JBang installed):
jbang catalog_publish@quarkusio --working-directory=. --registry-url=https://registry.quarkus.io --token=$TOKEN --all`
$TOKEN
is a shared secret known to the registry maintainers.
If you need help please open an issue.
If while running the application during quarkus:dev mode and changing the application.properties
file, you may
encounter this error once you restart the application (by typing s
):
One or more configuration errors have prevented the application from starting. The errors are:
- SRCFG00011: Could not expand value buildNumber in property quarkus.application.version
The workaround is to create an .env
file in the root with the following contents:
buildNumber=999-SNAPSHOT
If you need to update a registry.quarkus.io application running in an openshift cluster,
use the ./update_tag.sh
script after performing a oc login
in the cluster. This will tag
the quarkus-registry-app:production
imagestream with the tag provided.
You can register this as a Nexus repository proxy. You need to be an administrator to perform these operations.
Some options need to be set:
- Create a
Proxy Repository
- Set the
Remote Storage Location
to https://registry.quarkus.io/maven - Set the
Repository Policy
toSnapshot
; - Disable
Download Remote Indexes
; - Disable
Allow File Browsing
; - Disable
Include in Search
.
Here is an example on how it should look like:
- Create a
maven2(proxy)
repository - Set the
Version Policy
toSnapshot
- Set the
Remote Storage
URL tohttps://registry.quarkus.io/maven