Skip to content

Latest commit

 

History

History
83 lines (58 loc) · 2.12 KB

dev_notes.md

File metadata and controls

83 lines (58 loc) · 2.12 KB

Developer notes

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])

Loading

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.