GALACTIC Market#

Introduction#

The generated Python packages are published to PyPI-compliant artifact repositories that adhere to PEP 503, with or without authentication mechanisms. For most of the built packages, a lightweight metadata-only version is published to a public PyPI-compatible repository referred to as the GALACTIC store. This repository serves as a centralized indexing point. Additionally, most packages have their technical documentation hosted on an Apache HTTP server.

When using GALACTIC, end users can browse the GALACTIC store using the GALACTIC market CLI (command-line interface) and GALACTIC market GUI (graphical user interface) tools to identify which packages are required for their specific use cases.

@startuml

box "GALACTIC\n<img images/galactic.svg>" #LightBlue
participant "<img images/developer.svg>\ndeveloper" as developer
participant "<img images/gitlab.svg>\ngitlab" as gitlab
participant "<img images/docker.svg>\ndocker" as docker
participant "<img images/pypi-standard.svg>\nstandard" as pypistandard
participant "<img images/pypi-store.svg>\nstore" as pypistore
participant "<img images/apache.svg>\ndocs" as apache
end box
participant "<img images/pip.svg>\npip" as pip
participant "<img images/market.svg>\nmarket" as market
participant "<img images/documentation.svg>\nbrowser" as browser
participant "<img images/user.svg>\nuser" as user
== Development ==
developer -> gitlab : push
note right
    Developer publish python packages,
    eventually on the **GALACTIC** store,
    eventually with documentation
end note

gitlab -> docker : build
docker -> pypistandard : deploy

opt
    docker -> pypistore : deploy
end

opt
    docker -> apache : deploy
end
== Use ==
browser <- user : help
apache <- browser : request
note left
    End-user can browse
    the documentation
end note

pip <- user : install
note left
    End-user can install
    requested packages directly
    using pip or similar tools
end note
pypistandard <- pip : install

group Market
    market <- user : browse
    note left
        End-user can browse the **GALACTIC**
        store using the **GALACTIC** market apps
        and install requested packages
        using authentication if needed
    end note
    pypistore <- market : list
    pypistore <- market : describe
    market <- user : install
    pypistandard <- market : install
end group


@enduml

Authentication#

As of today, there are three PyPI repositories serving Python packages, two of which — private and premium — are secured with authentication. Additionally, a public repository is available for distributing less sensitive content.

A fourth repository, called the GALACTIC store, acts as a proxy to the three existing PyPI servers.

Additional Python package repositories can extend the GALACTIC market applications either via plugin integration or through manual configuration of repository parameters.