quarkusio / registry.quarkus.io

Quarkus Extension Registry application
https://registry.quarkus.io
Apache License 2.0
10 stars 11 forks source link

Introduce `/client/platforms/all` #71

Closed gastaldi closed 2 years ago

gastaldi commented 2 years ago

This introduces a new endpoint returning all streams available per platform in a PlatformCatalog format

Fixes #67

gastaldi commented 2 years ago

In registry.quarkus.io, it would give the following output:

{
  "platforms" : [ {
    "platform-key" : "io.quarkus.platform",
    "name" : "Quarkus Community Platform",
    "streams" : [ {
      "id" : "2.7",
      "releases" : [ {
        "version" : "2.7.1.Final",
        "member-boms" : [ "io.quarkus.platform:quarkus-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-optaplanner-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-kogito-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-qpid-jms-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-cassandra-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-amazon-services-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-camel-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-hazelcast-client::pom:2.7.1.Final", "io.quarkus.platform:quarkus-debezium-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-blaze-persistence-bom::pom:2.7.1.Final", "io.quarkus.platform:quarkus-google-cloud-services-bom::pom:2.7.1.Final" ],
        "quarkus-core-version" : "2.7.1.Final"
      } ]
    }, {
      "id" : "2.6",
      "releases" : [ {
        "version" : "2.6.3.Final",
        "member-boms" : [ "io.quarkus.platform:quarkus-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-optaplanner-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-kogito-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-qpid-jms-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-cassandra-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-amazon-services-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-camel-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-hazelcast-client::pom:2.6.3.Final", "io.quarkus.platform:quarkus-debezium-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-blaze-persistence-bom::pom:2.6.3.Final", "io.quarkus.platform:quarkus-google-cloud-services-bom::pom:2.6.3.Final" ],
        "quarkus-core-version" : "2.6.3.Final"
      } ]
    }, {
      "id" : "2.5",
      "releases" : [ {
        "version" : "2.5.4.Final",
        "member-boms" : [ "io.quarkus.platform:quarkus-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-optaplanner-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-kogito-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-qpid-jms-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-cassandra-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-camel-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-hazelcast-client::pom:2.5.4.Final", "io.quarkus.platform:quarkus-debezium-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-blaze-persistence-bom::pom:2.5.4.Final", "io.quarkus.platform:quarkus-google-cloud-services-bom::pom:2.5.4.Final" ],
        "quarkus-core-version" : "2.5.4.Final"
      } ]
    }, {
      "id" : "2.4",
      "releases" : [ {
        "version" : "2.4.2.Final",
        "member-boms" : [ "io.quarkus.platform:quarkus-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-optaplanner-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-kogito-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-qpid-jms-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-cassandra-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-camel-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-hazelcast-client::pom:2.4.2.Final", "io.quarkus.platform:quarkus-debezium-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-blaze-persistence-bom::pom:2.4.2.Final", "io.quarkus.platform:quarkus-google-cloud-services-bom::pom:2.4.2.Final" ],
        "quarkus-core-version" : "2.4.2.Final"
      } ]
    }, {
      "id" : "2.3",
      "releases" : [ {
        "version" : "2.3.1.Final",
        "member-boms" : [ "io.quarkus.platform:quarkus-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-optaplanner-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-kogito-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-qpid-jms-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-cassandra-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-camel-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-hazelcast-client::pom:2.3.1.Final", "io.quarkus.platform:quarkus-debezium-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-blaze-persistence-bom::pom:2.3.1.Final", "io.quarkus.platform:quarkus-google-cloud-services-bom::pom:2.3.1.Final" ],
        "quarkus-core-version" : "2.3.1.Final"
      } ]
    }, {
      "id" : "2.2",
      "releases" : [ {
        "version" : "2.2.2.Final",
        "member-boms" : [ "io.quarkus.platform:quarkus-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-optaplanner-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-kogito-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-qpid-jms-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-cassandra-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-camel-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-hazelcast-client::pom:2.2.2.Final", "io.quarkus.platform:quarkus-debezium-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-blaze-persistence-bom::pom:2.2.2.Final", "io.quarkus.platform:quarkus-google-cloud-services-bom::pom:2.2.2.Final" ],
        "quarkus-core-version" : "2.2.2.Final"
      } ]
    } ],
    "current-stream-id" : "2.7"
  } ]
}
gastaldi commented 2 years ago

Merging since I need this for my next PR

aloubyansky commented 2 years ago

It looks like it's returning the last recommended release per stream. If that's the case, perhaps, it should not be called all or is also meant to accept a parameter to actually return all the releases, which is what the original request was about, afaiu.

gastaldi commented 2 years ago

It looks like it's returning the last recommended release per stream.

No, it should be returning all streams and releases, see https://github.com/quarkusio/registry.quarkus.io/pull/71/files#diff-c837a67be26a3da58d4296ab1b9d7dd3665b8dc8c02c7a4644025f019f58b513R50

Are you seeing just the last recommended release?

aloubyansky commented 2 years ago

The code looks good, right. I originally looked at the sample result in your comment.

gastaldi commented 2 years ago

But your observation makes sense, I'll have a deeper look at the method nevertheless

gastaldi commented 2 years ago

@aloubyansky You're right, I fixed this in https://github.com/quarkusio/registry.quarkus.io/commit/3c171b737c1ea91da37f7d6babcdd81d0e0e0fb2