The Poseidon framework is a highly entangled system of integrated software solutions. Changes in one part of the framework often have consequences for others. Especially changes to the most central component, the Poseidon standard, can have far-reaching ramifications.
flowchart TD
%% comment
packageDef["The Poseidon package definition"]
poseidonYMLDef["POSEIDON.yml"]
packageDef -- defines --> poseidonYMLDef
genotypeDef["genotype data"]
packageDef -- defines --> genotypeDef
bibDef[".bib"]
packageDef -- defines --> bibDef
jannoDef[".janno"]
packageDef -- defines --> jannoDef
ssfDef[".ssf"]
packageDef -- defines --> ssfDef
poseidonAnalysisHS["poseidon-analysis-hs library"]
poseidonHS --> poseidonAnalysisHS
xerxes["xerxes"]
poseidonAnalysisHS -- includes --> xerxes
poseidonHS["poseidon-hs library"]
poseidonYMLDef --> poseidonHS
genotypeDef --> poseidonHS
jannoDef --> poseidonHS
bibDef --> poseidonHS
ssfDef --> poseidonHS
trident["trident"]
poseidonHS -- includes --> trident
api["Web API"]
trident o-- implements and uses --o api
PCA -- serves --x api
PMA -- serves --x api
PAA -- serves --x api
jannoR["janno R package"]
jannoDef --> jannoR
qjanno["qjanno"]
jannoDef --> qjanno
minotaur["Minotaur workflow"]
jannoDef --> minotaur
ssfDef --> minotaur
PCA[(Community Archive)]
packageDef -- uses --> PCA
trident -- validates --> PCA
viewerWebsite[Repository explorer website]
jannoR --> viewerWebsite
viewerWebsite o--o PCA
PMA[(Minotaur Archive)]
packageDef -- uses --> PMA
PCA -- mirrors --> PMA
minotaur -- generates --> PMA
trident -- validates --> PMA
PAA[(AADR Archive)]
packageDef -- uses --> PAA
trident -- validates --> PAA
website([Poseidon website])
New features or changes to the schema must be implemented in workable Pull Requests, and parallel Pull Requests should be opened in all derived repositories.
This includes the Poseidon website, which documents all components of the framework and thus most certainly requires an update if anything is changed.