improved documentation

This commit is contained in:
luca.frosini 2023-08-30 18:35:06 +02:00
parent 967027a3c0
commit 8897a25f4d
5 changed files with 464 additions and 19 deletions

View File

@ -2,7 +2,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
# Changelog for gCube Software Versions Processor Lib
## [v1.1.O-SNAPSHOT]
## [v1.1.0-SNAPSHOT]
- Renamed some classes to improve terminology
- Added sphinx documentation [#24841]

View File

@ -22,7 +22,7 @@ copyright = '2023, Luca Frosini (ISTI-CNR)'
author = 'Luca Frosini (ISTI-CNR)'
# The full version, including alpha/beta/rc tags
# release = '6.0.0'
release = '1.1.0-SNAPSHOT'
# -- General configuration ---------------------------------------------------

160
docs/gcat/gcat.bib Normal file
View File

@ -0,0 +1,160 @@
@software{gcat_1.0.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.0.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2019-01-10},
version = {1.0.0},
url = {https://doi.org/10.5072/zenodo.1139446},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.1.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.1.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2019-02-26},
version = {1.1.0},
url = {https://doi.org/10.5072/zenodo.1140461},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.2.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.2.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2019-05-20},
version = {1.2.0},
url = {https://doi.org/10.5072/zenodo.1140750},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.3.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.3.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2019-06-27},
version = {1.3.0},
url = {https://doi.org/10.5072/zenodo.1143572},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.4.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.4.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2019-11-20},
version = {1.4.0},
url = {https://doi.org/10.5072/zenodo.1143583},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.4.1,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.4.1},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2019-12-20},
version = {1.4.1},
url = {https://doi.org/10.5072/zenodo.1143585},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.4.2,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.4.2},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2020-02-14},
version = {1.4.2},
url = {https://doi.org/10.5072/zenodo.1143586},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.4.3,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.4.3},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2020-06-16},
version = {1.4.3},
url = {https://doi.org/10.5072/zenodo.1143587},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.4.4,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.4.4},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2021-02-24},
version = {1.4.4},
url = {https://doi.org/10.5072/zenodo.1143589},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_1.4.5,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 1.4.5},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2021-03-31},
version = {1.4.5},
url = {https://doi.org/10.5072/zenodo.1143590},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_2.0.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 2.0.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2021-05-04},
version = {2.0.0},
url = {https://doi.org/10.5072/zenodo.1139069},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_2.1.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 2.1.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2022-01-27},
version = {2.1.0},
url = {https://doi.org/10.5072/zenodo.1139070},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_2.2.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 2.2.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2022-05-12},
version = {2.2.0},
url = {https://doi.org/10.5072/zenodo.1139322},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_2.3.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 2.3.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2022-07-22},
version = {2.3.0},
url = {https://doi.org/10.5072/zenodo.1139680},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_2.4.0,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 2.4.0},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2022-09-16},
version = {2.4.0},
url = {https://doi.org/10.5072/zenodo.1144798},
keywords = {Catalogue, D4Science, gCube}
}
@software{gcat_2.4.1,
author = {{Luca Frosini}},
title = {gCube Catalogue (gCat) Service 2.4.1},
abstract = {gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.},
date = {2022-12-07},
version = {2.4.1},
url = {https://doi.org/10.5072/zenodo.1144799},
keywords = {Catalogue, D4Science, gCube}
}

272
docs/gcat/gcat.json Normal file
View File

@ -0,0 +1,272 @@
{
"configuration" : {
"name" : "gcat",
"group" : "data-catalogue",
"title" : "gCube Catalogue (gCat) Service {{version}}",
"license" : {
"id" : "EUPL-1.1",
"url" : "https://opensource.org/licenses/EUPL-1.1"
},
"keywords" : [ "gCube", "Catalogue", "D4Science" ],
"description" : "gCube Catalogue (gCat) Service allows the publication of items in the gCube Catalogue.",
"html_description" : "<p>{{description}}</p>",
"authors" : [ {
"affiliation" : "Istituto di Scienza e Tecnologie dell'Informazione \"A. Faedo\" - CNR, Italy",
"name" : "Frosini, Luca",
"orcid" : "0000-0003-3183-2291"
} ],
"files" : [ {
"url" : "https://code-repo.d4science.org/gCubeSystem/{{name}}/archive/v{{version}}.zip",
"desired_name" : "{{name}}-v{{version}}.zip"
}, {
"url" : "https://code-repo.d4science.org/gCubeSystem/{{name}}/archive/v{{version}}.tar.gz",
"desired_name" : "{{name}}-v{{version}}.tar.gz"
}, {
"url" : "https://nexus.d4science.org/nexus/service/local/repo_groups/gcube-releases-all/content/org/gcube/{{group}}/{{name}}/{{version}}/{{name}}-{{version}}.war",
"desired_name" : "{{name}}-v{{version}}.war"
} ],
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068",
"code_location" : "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"communities" : [ {
"identifier" : "gcube-system"
} ],
"grants" : [ {
"id" : "004260",
"name" : "DILIGENT",
"url" : "https://cordis.europa.eu/project/id/004260"
}, {
"id" : "212488",
"name" : "D4Science",
"url" : "https://cordis.europa.eu/project/id/212488"
}, {
"id" : "239019",
"name" : "D4Science-II",
"url" : "https://cordis.europa.eu/project/id/239019"
}, {
"id" : "283465",
"name" : "ENVRI",
"url" : "https://cordis.europa.eu/project/id/283465"
}, {
"id" : "283644",
"name" : "iMarine",
"url" : "https://cordis.europa.eu/project/id/283644"
}, {
"id" : "288754",
"name" : "EUBrazilOpenBio",
"url" : "https://cordis.europa.eu/project/id/288754"
}, {
"id" : "654024",
"name" : "SoBigData",
"url" : "https://cordis.europa.eu/project/id/654024"
}, {
"id" : "654119",
"name" : "PARTHENOS",
"url" : "https://cordis.europa.eu/project/id/654119"
}, {
"id" : "654142",
"name" : "EGI-Engage",
"url" : "https://cordis.europa.eu/project/id/654142"
}, {
"id" : "654182",
"name" : "ENVRI PLUS",
"url" : "https://cordis.europa.eu/project/id/654182"
}, {
"id" : "675680",
"name" : "BlueBRIDGE",
"url" : "https://cordis.europa.eu/project/id/675680"
}, {
"id" : "727610",
"name" : "PerformFISH",
"url" : "https://cordis.europa.eu/project/id/727610"
}, {
"id" : "731001",
"name" : "AGINFRA PLUS",
"url" : "https://cordis.europa.eu/project/id/731001"
}, {
"id" : "818194",
"name" : "DESIRA",
"url" : "https://cordis.europa.eu/project/id/818194"
}, {
"id" : "823914",
"name" : "ARIADNEplus",
"url" : "https://cordis.europa.eu/project/id/823914"
}, {
"id" : "824091",
"name" : "RISIS 2",
"url" : "https://cordis.europa.eu/project/id/824091"
}, {
"id" : "857650",
"name" : "EOSC-Pillar",
"url" : "https://cordis.europa.eu/project/id/857650"
}, {
"id" : "862409",
"name" : "Blue Cloud",
"url" : "https://cordis.europa.eu/project/id/862409"
}, {
"id" : "871042",
"name" : "SoBigData-PlusPlus",
"url" : "https://cordis.europa.eu/project/id/871042"
} ],
"export_filename" : "{{name}}",
"exporters" : {
"ZenodoExporter" : {
"elaboration" : "NONE",
"skip_grants" : [ "004260" ],
"additional_html_description" : "\n\n<p><a href=\"https://www.gcube-system.org/\">gCube</a> is an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of Virtual Research Environments, such as the <a href=\"https://www.d4science.org/\">D4Science Infrastructure</a>, by favouring the realisation of reuse-oriented policies.</p>\n\n<p><a href=\"https://www.gcube-system.org/\">gCube</a> has been used to successfully build and operate infrastructures and virtual research environments for application domains ranging from biodiversity to environmental data management and cultural heritage.</p>\n\n<p><a href=\"https://www.gcube-system.org/\">gCube</a> offers components supporting typical data management workflows including data access, curation, processing, and visualisation on a large set of data typologies ranging from primary biodiversity data to geospatial and tabular data.</p>\n\n<p><a href=\"https://www.d4science.org/\">D4Science</a> is a Hybrid Data Infrastructure combining over 500 software components and integrating data from more than 50 different data providers into a coherent and managed system of hardware, software, and data resources. The D4Science infrastructure drastically reduces the cost of ownership, maintenance, and operation thanks to the exploitation of gCube.</p>\n\n<p>&nbsp;</p>\n\n<p>The official source code location of this software version is available at:</p>\n\n<p><a href=\"{{code_location}}\">{{code_location}}</a></p>"
},
"BibLaTeXExporter" : {
"elaboration" : "ALL"
}
}
},
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068",
"artifacts" : [ {
"version" : "1.0.0",
"date" : "2019-01-10",
"group" : "data-publishing",
"files" : [ {
"url" : "https://nexus.d4science.org/nexus/service/local/repositories/gcube-snapshots/content/org/gcube/data-publishing/gcat/1.0.0-SNAPSHOT/gcat-1.0.0-20190109.172827-2.war",
"desired_name" : "{{name}}-v{{version}}.war"
} ],
"gcube_release_version" : null,
"gcube_release_ticket" : null,
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1139446",
"code_location" : "https://code-repo.d4science.org/gCubeSystem/{{name}}"
}, {
"version" : "1.1.0",
"date" : "2019-02-26",
"group" : "data-publishing",
"files" : [ {
"url" : "https://nexus.d4science.org/nexus/service/local/repo_groups/gcube-releases-all/content/org/gcube/data-publishing/gcat/1.1.0-4.13.1-177071/gcat-1.1.0-4.13.1-177071-src.zip",
"desired_name" : "{{name}}-v{{version}}.zip"
}, {
"url" : "https://nexus.d4science.org/nexus/service/local/repo_groups/gcube-releases-all/content/org/gcube/data-publishing/gcat/1.1.0-4.13.1-177071/gcat-1.1.0-4.13.1-177071.war",
"desired_name" : "{{name}}-v{{version}}.war"
} ],
"gcube_release_version" : "4.13.1",
"gcube_release_ticket" : "https://support.d4science.org/issues/12988",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1140461",
"code_location" : "https://code-repo.d4science.org/gCubeSystem/{{name}}"
}, {
"version" : "1.2.0",
"date" : "2019-05-20",
"group" : "data-publishing",
"files" : [ {
"url" : "https://nexus.d4science.org/nexus/service/local/repositories/gcube-snapshots/content/org/gcube/data-publishing/gcat/1.2.0-SNAPSHOT/gcat-1.2.0-20190520.132914-10.war",
"desired_name" : "{{name}}-v{{version}}.war"
} ],
"gcube_release_version" : null,
"gcube_release_ticket" : null,
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1140750",
"code_location" : "https://code-repo.d4science.org/gCubeSystem/{{name}}"
}, {
"version" : "1.3.0",
"date" : "2019-06-27",
"group" : "data-publishing",
"files" : [ {
"url" : "https://nexus.d4science.org/nexus/service/local/repo_groups/gcube-releases-all/content/org/gcube/data-publishing/gcat/1.3.0-4.14.0-179505/gcat-1.3.0-4.14.0-179505-src.zip",
"desired_name" : "{{name}}-v{{version}}.zip"
}, {
"url" : "https://nexus.d4science.org/nexus/service/local/repo_groups/gcube-releases-all/content/org/gcube/data-publishing/gcat/1.3.0-4.14.0-179505/gcat-1.3.0-4.14.0-179505.war",
"desired_name" : "{{name}}-v{{version}}.war"
} ],
"gcube_release_version" : "4.14.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/16743",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143572",
"code_location" : "https://code-repo.d4science.org/gCubeSystem/{{name}}"
}, {
"version" : "1.4.0",
"date" : "2019-11-20",
"group" : "data-publishing",
"gcube_release_version" : "4.15.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/17294",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143583"
}, {
"version" : "1.4.1",
"date" : "2019-12-20",
"group" : "data-publishing",
"gcube_release_version" : "4.18.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/18335",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143585"
}, {
"version" : "1.4.2",
"date" : "2020-02-14",
"group" : "data-publishing",
"gcube_release_version" : "4.20.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/18507",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143586"
}, {
"version" : "1.4.3",
"date" : "2020-06-16",
"group" : "data-publishing",
"gcube_release_version" : "4.23.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/19322",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143587"
}, {
"version" : "1.4.4",
"date" : "2021-02-24",
"group" : "data-publishing",
"gcube_release_version" : "5.0.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/20648",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143589"
}, {
"version" : "1.4.5",
"date" : "2021-03-31",
"group" : "data-publishing",
"gcube_release_version" : "5.1.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/20920",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1143590"
}, {
"version" : "2.0.0",
"date" : "2021-05-04",
"gcube_release_version" : "5.2.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/19738",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1139069",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068"
}, {
"version" : "2.1.0",
"date" : "2022-01-27",
"gcube_release_version" : "5.7.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/21685/",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1139070",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068"
}, {
"version" : "2.2.0",
"date" : "2022-05-12",
"gcube_release_version" : "5.11.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/22943",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1139322",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068"
}, {
"version" : "2.3.0",
"date" : "2022-07-22",
"gcube_release_version" : "5.13.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/23374",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1139680",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068"
}, {
"version" : "2.4.0",
"date" : "2022-09-16",
"gcube_release_version" : "5.13.1",
"gcube_release_ticket" : "https://support.d4science.org/issues/23650",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1144798",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068"
}, {
"version" : "2.4.1",
"date" : "2022-12-07",
"gcube_release_version" : "5.14.0",
"gcube_release_ticket" : "https://support.d4science.org/issues/23885",
"version_doi_url" : "https://doi.org/10.5072/zenodo.1144799",
"concept_doi_url" : "https://doi.org/10.5072/zenodo.1139068"
} ]
}

View File

@ -14,36 +14,36 @@ The library currently offers two processors:
Other processors can be easily added in the future by extending the ``SoftwareArtifactProcessor`` class.
The core class of the library is Analyser, which must be initialized with:
The core class of the library is ``Analyser``, which must be initialized with:
* a configuration (JSON Object);
* a list of software artifacts described by their metadata (JSON Array).
The configuration must contain the list of exporters to be used and their configuration parameters.
Exporter configuration requires the 'elaboration' property, which can assume the following values
The configuration must contain at least the list of exporters to be used and their configuration parameters.
Exporter configuration requires at least the ``elaboration`` property, which can assume the following values
(see ``ElaborationType`` enumerated):
* **ALL**: The exporter analyses all the software artifacts;
* **UPDATE_ONLY**: The exporter analyes only the software artifact to be updated in the target.
* **NEW**: The exporter analyses only the software artifact that does not yet exist in the target.
* **UPDATE_ONLY**: The exporter analyes only the software artifact to be updated in the target;
* **NEW**: The exporter analyses only the software artifact that does not yet exist in the target;
* **NONE**: Does not export the software artifact in the target, but each software artifact is elaborated for the exporting without effectively doing it. It is a dry run.
The exporters are executed in the order they are defined.
An exporter could produce metadata obtained by the exporting phase (e.g., the obtained Zenodo DOI).
The input metadata + the metadata generated by an exporter are made available to the subsequent.
The processors are executed in the order they are defined.
A processor could produce metadata itself (e.g., the obtained Zenodo DOI).
The input metadata + the metadata generated by a processor are made available to the subsequent processor.
At the end of the exporting phase, the library produces the actual output of all the software artifact metadata.
At the end of the processing phase, the library produces the actualized output of all the software artifact metadata.
Moreover, the configuration can optionally include an arbitrary set of metadata used as metadata default for all software artifacts defined in the list.
Moreover, the configuration can optionally include an arbitrary set of metadata used as default metadata for all software artifacts defined in the list.
The list of software artifacts can contain an arbitrary set of metadata.
It is the exporter logic that uses certain metadata, among others.
The list of software artifacts contains an arbitrary set of metadata.
It depends on the processor using certain metadata, among others.
While analyzing each software artifact, the ``Analyser`` set the previous to the exporter.
Relating the artifact with the previous one is helpful if an exporter needs to link them.
It is in charge of the exporter's logic of eventually connecting them under specific metadata values used as conditions.
While analyzing each software artifact, the ``Analyser`` link it with the previously elaborated software artifact.
Relating an artifact with the previous one is helpful if a processor needs to link them in some way.
It is in charge of the processor's logic of connecting them using specific metadata values used as conditions.
The library dynamically calculates the value of metadata to elaborate using the following essential features:
The library dynamically calculates the value of metadata of a software artifact using the following features:
* A property can contain the value of another property indicated as a variable using the referred property name;
* The library merges the metadata of the software artifact with the metadata defined in the configuration;
@ -52,4 +52,17 @@ The library dynamically calculates the value of metadata to elaborate using the
The following example show an example of configuration
.. literalinclude:: ../src/test/resources/gcat-test-sandbox.json
:language: JSON
:language: JSON
..
The output of the elaboration is the following
.. literalinclude:: ./gcat/gcat.json
:language: JSON
The output generated by ``BibLaTeXExporter`` is
.. literalinclude:: ./gcat/gcat.bib
:language: bib