Blueprint: Catalog items and version publishing

Problem

  • We need to define in the blueprint what a catalog item should be so we are all on the same page with terminology and expectations.
  • We need to define in the blueprint the process of publishing a new version of components.

Details

  1. What is a catalog? - Competitors display it as a list of packages (projects) each containing components.
  2. What is a catalog item? (components project or specific version of components project? or something else?) - Competitors display the components package (project) as the catalog item. When you use the search feature it returns a list of component packages matching that search, not a list of versions of packages.
  3. What should a catalog item contain? (when clicking on the item in the catalog what should happen?) - Competitors display the information of the components package (project), README, repository, latest release/version, list of releases, tags, etc. The specific version is not a catalog item, it's a selector of the catalog item revision.
  • What does the publishing process look like? How does it relate to the release of a tag feature?
  • What does the published artifact look like? Is it just a metadata with content read from repo? Is it a compressed archive stored on object store?
  • Who can publish/unpublish a component to the catalog? This is a very important and critical action since it influences how other projects depend of the component and can be a breaking change for projects if the component is unpublished from the catalog.
    • We may want to only allow project owners to publish/unpublish a component. Maintainer role could be not strict enough.
  • Can a user unpublish a component from the catalog? What should happen?
  • Make it easy to vendor a component project in m... (#354732 - closed)
Edited by Fabio Pitino