Skip to content

Conflict resolution when the same version of an extension has different metadata on different platforms #24

@holly-cummins

Description

@holly-cummins

At the moment, we do a merge across all PlatformExtension objects to get the client-side data. If an extension has different values for different fields, we take one semi-arbitrarily.

For lists (keywords and extension-dependencies, mostly) we could consider doing a deep merge on the list. For individual values, like status and built-with-quarkus-core, that's not possible.

There are a few options, none great:

  • Change the types in the data model to have those fields be lists, and put in everything. It's a bit 'tail wagging the dog', though, since the natural type for the fields is a string.
  • Have an optional parameter on the request, which is the platform to favour in the case of conflicts. That's logical, but it's not ideal because it gets us away from the "showing all extensions, independent of platform" goal for extensions.quarkus.io
  • Have some sort of visual indicator in the UI that a field has a conflict, and show a drop down/expansion which lists the different values for the different platforms. This seems like the best user experience but it's not totally clear what the back end to support it would be. A map of maps, with platform names as keys?

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