RefactoringCode

This commit is contained in:
Luca Frosini 2023-01-30 14:50:58 +01:00
parent f30f35ec49
commit c06cd2b81c
11 changed files with 98 additions and 676 deletions

View File

@ -1,6 +1,5 @@
package org.gcube.common.software.analyser;
import java.net.URL;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@ -8,8 +7,6 @@ import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode;
import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode;
import org.gcube.com.fasterxml.jackson.databind.node.TextNode;
import org.gcube.common.software.model.GlobalConfig;
import org.gcube.common.software.model.SoftwareVersionConfig;
import org.gcube.common.software.model.Variables;
import org.gcube.common.software.utils.Utils;
@ -27,32 +24,32 @@ public class Analyser {
protected ObjectMapper objectMapper;
protected ObjectNode originalGlobal;
protected ArrayNode originalVersions;
protected ArrayNode exportingVersions;
protected ObjectNode globalConfiguration;
protected ArrayNode versionConfigurations;
protected ArrayNode elaboratedVersions;
public Analyser() throws Exception {
this.objectMapper = Utils.getObjectMapper();
}
public ObjectNode getOriginalGlobal() {
return originalGlobal;
public ObjectNode getGlobalConfiguration() {
return globalConfiguration;
}
public void setOriginalGlobal(ObjectNode originalGlobal) {
this.originalGlobal = originalGlobal.deepCopy();
public void setGlobalConfiguration(ObjectNode originalGlobal) {
this.globalConfiguration = originalGlobal.deepCopy();
}
public ArrayNode getOriginalVersions() {
return originalVersions;
public ArrayNode getVersionConfigurations() {
return versionConfigurations;
}
public void setOriginalVersions(ArrayNode originalVersions) {
this.originalVersions = originalVersions.deepCopy();
public void setVersionConfigurations(ArrayNode originalVersions) {
this.versionConfigurations = originalVersions.deepCopy();
}
public ArrayNode getExportingVersions() {
return exportingVersions;
public ArrayNode getElaboratedVersions() {
return elaboratedVersions;
}
protected SoftwareVersionConfig actualizeSoftwareVersionConfig(JsonNode version) throws Exception {
@ -68,93 +65,30 @@ public class Analyser {
return softwareVersion;
}
protected GlobalConfig actualizeGlobalConfig(JsonNode node) throws Exception {
Variables variables = objectMapper.treeToValue(node, Variables.class);
variables.parse();
JsonNode sc = objectMapper.convertValue(variables.getProperties(), JsonNode.class);
return objectMapper.treeToValue(sc, GlobalConfig.class);
}
public void analyse() throws Exception {
GlobalConfig globalConfig = actualizeGlobalConfig(originalGlobal);
globalConfig.setOriginalJson(originalGlobal);
SoftwareVersionConfig previous = null;
int i = 0;
exportingVersions = objectMapper.createArrayNode();
try {
for(i=0; i<originalVersions.size(); i++) {
ObjectNode originalVersion = (ObjectNode) originalVersions.get(i).deepCopy();
exportingVersions.add(originalVersion);
JsonNode version = Utils.merge(originalGlobal, originalVersion);
SoftwareVersionConfig softwareVersion = actualizeSoftwareVersionConfig(version);
softwareVersion.setOriginalJson(originalVersion);
boolean newDOI = false;
if(softwareVersion.getDOIURL()==null) {
newDOI = true;
}
softwareVersion.setPrevious(previous);
if(previous!=null) {
previous.setNext(softwareVersion);
}
logger.trace("Going to process {}", softwareVersion.getTitle());
try {
SoftwareVersionConfigAnalyser softwareVersionAnalyser = new SoftwareVersionConfigAnalyser(softwareVersion);
softwareVersionAnalyser.setSoftwareConfig(globalConfig);
softwareVersionAnalyser.setFirst(i==0);
softwareVersionAnalyser.analyse();
previous = softwareVersion;
}finally {
/* Need to export the original file with the DOI and Version DOI */
URL doiURL = softwareVersion.getDOIURL();
if(doiURL!=null) {
originalVersion.put(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME, doiURL.toString());
}
if(softwareVersion.getVersionDOIURL()!=null) {
originalVersion.put(SoftwareVersionConfig.VERSION_DOI_URL_PROPERTY_NAME, softwareVersion.getVersionDOIURL().toString());
}
if(newDOI) {
globalConfig.addProperty(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME, new TextNode(doiURL.toString()));
originalGlobal.put(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME, doiURL.toString());
}
}
Thread.sleep(TimeUnit.SECONDS.toMillis(2));
}
} catch (Exception e) {
for(int j=i+1; j<originalVersions.size(); j++) {
ObjectNode originalVersion = (ObjectNode) originalVersions.get(j).deepCopy();
exportingVersions.add(originalVersion);
}
throw e;
}finally {
elaboratedVersions = objectMapper.createArrayNode();
for(i=0; i<versionConfigurations.size(); i++) {
ObjectNode versionConfig = (ObjectNode) versionConfigurations.get(i).deepCopy();
elaboratedVersions.set(i, versionConfig);
JsonNode actualizedVersionConfig = Utils.merge(globalConfiguration, versionConfig);
// if(originalGlobal.has(SoftwareGlobalConfig.DOI_URL_PROPERTY_NAME)
// && originalGlobal.get(SoftwareGlobalConfig.DOI_URL_PROPERTY_NAME).getNodeType()!=JsonNodeType.NULL) {
// String conceptDOIURL = originalGlobal.get(SoftwareGlobalConfig.DOI_URL_PROPERTY_NAME).asText();
//
// for(i=0; i<exportingVersions.size(); i++) {
// ObjectNode v = (ObjectNode) exportingVersions.get(i);
// if(v.has(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME)
// && v.get(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME).getNodeType()!=JsonNodeType.NULL){
// String vDOI = v.get(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME).asText();
// if(conceptDOIURL.compareTo(vDOI)==0) {
// v.remove(SoftwareVersionConfig.DOI_URL_PROPERTY_NAME);
// }
// }
// }
// }
SoftwareVersionConfig softwareVersionConfig = actualizeSoftwareVersionConfig(actualizedVersionConfig);
softwareVersionConfig.setOriginalJson(versionConfig);
softwareVersionConfig.setPrevious(previous);
logger.trace("Going to process {}", softwareVersionConfig.getTitle());
SoftwareVersionConfigAnalyser softwareVersionAnalyser = new SoftwareVersionConfigAnalyser(softwareVersionConfig);
softwareVersionAnalyser.setFirst(i==0);
softwareVersionAnalyser.analyse();
elaboratedVersions.set(i, softwareVersionAnalyser.getSoftwareVersionConfig().getOriginalJson());
Thread.sleep(TimeUnit.SECONDS.toMillis(2));
previous = softwareVersionAnalyser.getSoftwareVersionConfig();
}
}

View File

@ -37,9 +37,9 @@ public class AnalyserFactory {
public static Analyser getAnalyser(JsonNode jsonNode) throws Exception {
Analyser analyser = new Analyser();
ObjectNode originalGlobal = (ObjectNode) jsonNode.get(GLOBAL_PROPERTY_NAME);
analyser.setOriginalGlobal(originalGlobal);
analyser.setGlobalConfiguration(originalGlobal);
ArrayNode originalVersions = (ArrayNode) jsonNode.get(VERSIONS_PROPERTY_NAME);
analyser.setOriginalVersions(originalVersions);
analyser.setVersionConfigurations(originalVersions);
return analyser;
}
@ -47,8 +47,8 @@ public class AnalyserFactory {
public static ObjectNode getAnalysResultAsObjectNode(Analyser analyser) throws Exception {
ObjectMapper objectMapper = Utils.getObjectMapper();
ObjectNode toBeExported = objectMapper.createObjectNode();
toBeExported.replace(GLOBAL_PROPERTY_NAME, analyser.getOriginalGlobal());
toBeExported.replace(VERSIONS_PROPERTY_NAME, analyser.getExportingVersions());
toBeExported.replace(GLOBAL_PROPERTY_NAME, analyser.getGlobalConfiguration());
toBeExported.replace(VERSIONS_PROPERTY_NAME, analyser.getElaboratedVersions());
return toBeExported;
}
@ -61,7 +61,7 @@ public class AnalyserFactory {
}
public static void writeAnalysResultToFile(Analyser analyser) throws Exception {
JsonNode jsonNode = analyser.getOriginalGlobal().get(AnalyserFactory.EXPORT_FILENAME_PROPERTY_NAME);
JsonNode jsonNode = analyser.getGlobalConfiguration().get(AnalyserFactory.EXPORT_FILENAME_PROPERTY_NAME);
String fileName = jsonNode.getNodeType() == JsonNodeType.NULL ? null : jsonNode.asText();
fileName = AnalyserFactory.getExportFileName(fileName);
File file = new File(fileName);

View File

@ -8,7 +8,6 @@ import java.util.Set;
import org.gcube.common.software.export.SoftwareVersionExporter;
import org.gcube.common.software.model.ExporterConfig;
import org.gcube.common.software.model.GlobalConfig;
import org.gcube.common.software.model.SoftwareVersionConfig;
import org.gcube.common.software.model.SoftwareVersionFile;
import org.gcube.common.software.model.Variables;
@ -22,7 +21,6 @@ public class SoftwareVersionConfigAnalyser {
private static final Logger logger = LoggerFactory.getLogger(SoftwareVersionConfigAnalyser.class);
protected GlobalConfig softwareConfig;
protected SoftwareVersionConfig softwareVersionConfig;
protected boolean first;
@ -30,14 +28,6 @@ public class SoftwareVersionConfigAnalyser {
this.softwareVersionConfig = softwareVersionConfig;
}
public GlobalConfig getSoftwareConfig() {
return softwareConfig;
}
public void setSoftwareConfig(GlobalConfig softwareConfig) {
this.softwareConfig = softwareConfig;
}
public SoftwareVersionConfig getSoftwareVersionConfig() {
return softwareVersionConfig;
}
@ -75,15 +65,14 @@ public class SoftwareVersionConfigAnalyser {
if(!availableExporterNames.containsAll(requestedExporterNames)) {
requestedExporterNames.removeAll(availableExporterNames);
throw new Exception("The following requested Exporters does not exists " + requestedExporterNames);
throw new Exception("The following requested availableExporters does not exists " + requestedExporterNames);
}
for(String className : requestedExporters.keySet()) {
logger.debug("Goign to export with {}", className);
logger.debug("Going to export with {}", className);
Class<? extends SoftwareVersionExporter> exporterClass = availableExporters.get(className);
SoftwareVersionExporter sve = exporterClass.newInstance();
ExporterConfig exporterConfig = requestedExporters.get(className);
sve.setGlobalConfig(softwareConfig);
sve.setSoftwareVersion(softwareVersionConfig);
sve.setExporterConfig(exporterConfig);
sve.setFirst(first);

View File

@ -6,7 +6,6 @@ import java.util.Map;
import org.gcube.common.software.export.biblatex.BibLaTeXSoftwareVersionExporter;
import org.gcube.common.software.export.zenodo.ZenodoSoftwareVersionExporter;
import org.gcube.common.software.model.ExporterConfig;
import org.gcube.common.software.model.GlobalConfig;
import org.gcube.common.software.model.SoftwareVersionConfig;
/**
@ -14,35 +13,29 @@ import org.gcube.common.software.model.SoftwareVersionConfig;
*/
public abstract class SoftwareVersionExporter {
protected static Map<String, Class<? extends SoftwareVersionExporter>> processors;
protected static Map<String, Class<? extends SoftwareVersionExporter>> availableExporters;
static {
processors = new HashMap<>();
availableExporters = new HashMap<>();
add(ZenodoSoftwareVersionExporter.class);
add(BibLaTeXSoftwareVersionExporter.class);
}
private static void add(Class<? extends SoftwareVersionExporter> clz) {
processors.put(clz.getSimpleName(), clz);
availableExporters.put(clz.getSimpleName(), clz);
}
public static Map<String, Class<? extends SoftwareVersionExporter>> getAvailableExporters() {
return processors;
return availableExporters;
}
protected GlobalConfig globalConfig;
protected SoftwareVersionConfig softwareVersionConfig;
protected ExporterConfig processorConfig;
protected boolean first;
public GlobalConfig getGlobalConfig() {
return globalConfig;
}
public void setGlobalConfig(GlobalConfig softwareConfig) {
this.globalConfig = softwareConfig;
}
protected String fileExtension;
protected String output;
public SoftwareVersionConfig getSoftwareVersionConfig() {
return softwareVersionConfig;
}

View File

@ -166,8 +166,12 @@ public class BibLaTeXSoftwareVersionExporter extends SoftwareVersionExporter {
logger.info("Going to export {} in BibLaTex format.", title);
String template = getTemplate();
String toBeExported = parseTemplate(template);
output = parseTemplate(template);
writeToFile();
}
protected void writeToFile() throws Exception {
File exportFile = getExportFile();
if (first && exportFile.exists()) {
exportFile.delete();
@ -179,13 +183,13 @@ public class BibLaTeXSoftwareVersionExporter extends SoftwareVersionExporter {
FileWriter fileWritter = new FileWriter(exportFile, true);
BufferedWriter bw = new BufferedWriter(fileWritter);
bw.write(toBeExported);
bw.write(output);
bw.write("\n\n");
bw.close();
}
protected File getExportFile() {
JsonNode jsonNode = globalConfig.getProperty(AnalyserFactory.EXPORT_FILENAME_PROPERTY_NAME);
JsonNode jsonNode = softwareVersionConfig.getAdditionalProperty(AnalyserFactory.EXPORT_FILENAME_PROPERTY_NAME);
String fileName = jsonNode.getNodeType() == JsonNodeType.NULL ? null : jsonNode.asText();
fileName = AnalyserFactory.getExportFileName(fileName);
File file = new File(fileName + EXPORT_FILENAME_EXTENSION);

View File

@ -31,6 +31,7 @@ import org.gcube.common.gxhttp.request.GXHTTPStringRequest;
import org.gcube.common.software.config.Config;
import org.gcube.common.software.export.SoftwareVersionExporter;
import org.gcube.common.software.model.ElaborationType;
import org.gcube.common.software.model.SoftwareVersionConfig;
import org.gcube.common.software.model.SoftwareVersionFile;
import org.gcube.common.software.utils.Utils;
import org.glassfish.jersey.client.ClientProperties;
@ -55,11 +56,7 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter {
public static final String METADATA_FIELD_NAME = "metadata";
// private static final String SANDBOX_BASE_PATH = "https://sandbox.zenodo.org";
// private static final String SANDBOX_DOI_URL_BASE_PATH = "https://doi.org/10.5072/zenodo.";
//
// private static final String PRODUCTION_BASE_PATH = "https://zenodo.org";
// private static final String PRODUCTION_DOI_URL_BASE_PATH = "https://doi.org/10.5281/zenodo.";
public static final String PREVIOUS = "PREVIOUS";
public static final String DEPOSITIONS_COLLECTION_PATH = "/api/deposit/depositions";
public static final String DEPOSITION_PATH = DEPOSITIONS_COLLECTION_PATH + "/:id";
@ -272,9 +269,11 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter {
response = getResponse(httpURLConnection);
URL conceptDOIURL = createZenodoDOIURLFromID(response.get("conceptrecid").asText());
softwareVersionConfig.setDOIURL(conceptDOIURL);
softwareVersionConfig.setConceptDOIURL(conceptDOIURL);
softwareVersionConfig.getOriginalJson().put(SoftwareVersionConfig.CONCEPT_DOI_URL_PROPERTY_NAME, conceptDOIURL.toString());
URL doiURL = new URL(doiBaseURL + response.get("id").asText());
softwareVersionConfig.setVersionDOIURL(doiURL);
softwareVersionConfig.getOriginalJson().put(SoftwareVersionConfig.VERSION_DOI_URL_PROPERTY_NAME, doiURL.toString());
finalize();
}
@ -402,7 +401,7 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter {
gxHTTPStringRequest.queryParams(getAccessTokenQueryParamters());
gxHTTPStringRequest.header("Content-Type", "application/json");
gxHTTPStringRequest.header("Accept", "application/json");
String conceptID = getZenodoIDFromDOIURL(softwareVersionConfig.getDOIURL());
String conceptID = getZenodoIDFromDOIURL(softwareVersionConfig.getConceptDOIURL());
gxHTTPStringRequest.path(RECORD_PATH.replace(":id", conceptID));
HttpURLConnection httpURLConnection = gxHTTPStringRequest.get();
JsonNode jsonNode = getResponse(httpURLConnection);
@ -422,7 +421,7 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter {
String latestVersionVersion = jsonNode.get("metadata").get("version").asText();
String previousVersionVersion = softwareVersionConfig.getPrevious().getVersion().toString();
if(latestVersionVersion.compareTo(previousVersionVersion)!=0) {
logger.error("Zenodo obtained latest Version {} != {} Versoin from previous version", latestVersionVersion, previousVersionVersion);
logger.error("Zenodo obtained latest Version {} != {} Version from previous version", latestVersionVersion, previousVersionVersion);
throw new RuntimeException("It seems that your json is not up to date with Zenodo.");
}
@ -457,6 +456,7 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter {
// The reserved DOI of this created new version will be
URL doiURL = new URL(response.get("doi_url").asText());
softwareVersionConfig.setVersionDOIURL(doiURL);
softwareVersionConfig.getOriginalJson().put(SoftwareVersionConfig.VERSION_DOI_URL_PROPERTY_NAME, doiURL.toString());
// Remove previous depositionFiles
deletePreviousFiles();
@ -514,13 +514,15 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter {
softwareVersionConfig.setNewDeposition(true);
if(softwareVersionConfig.getDOIURL()==null) {
if(softwareVersionConfig.getConceptDOIURL()==null) {
create();
}else {
newVersion();
}
}
}
output = Utils.getObjectMapper().writeValueAsString(softwareVersionConfig.getOriginalJson());
}
}

View File

@ -33,16 +33,13 @@ public class SoftwareVersionConfig {
public static final String AUTHORS_PROPERTY_NAME = "authors";
public static final String FILES_PROPERTY_NAME = "files";
public static final String CODE_LOCATION_PROPERTY_NAME = "code_location";
public static final String DOI_URL_PROPERTY_NAME = "doi_url";
public static final String CONCEPT_DOI_URL_PROPERTY_NAME = "concept_doi_url";
public static final String VERSION_DOI_URL_PROPERTY_NAME = "version_doi_url";
public static final String GRANTS_PROPERTY_NAME = "grants";
public static final String EXPORTERS_PROPERTY_NAME = "exporters";
public static final String EXPORTERS_PROPERTY_NAME = "availableExporters";
@JsonIgnore
protected SoftwareVersionConfig previous;
@JsonIgnore
protected SoftwareVersionConfig next;
@JsonIgnore
protected Boolean newDeposition;
@ -75,8 +72,8 @@ public class SoftwareVersionConfig {
@JsonProperty(CODE_LOCATION_PROPERTY_NAME)
protected String codeLocation;
@JsonProperty(DOI_URL_PROPERTY_NAME)
protected URL doiURL;
@JsonProperty(CONCEPT_DOI_URL_PROPERTY_NAME)
protected URL conceptDOIURL;
@JsonProperty(VERSION_DOI_URL_PROPERTY_NAME)
protected URL versionDOIURL;
@ -104,16 +101,6 @@ public class SoftwareVersionConfig {
this.previous = previous;
}
@JsonIgnore
public SoftwareVersionConfig getNext() {
return next;
}
@JsonIgnore
public void setNext(SoftwareVersionConfig next) {
this.next = next;
}
@JsonIgnore
public Boolean isNewDeposition() {
return newDeposition;
@ -180,12 +167,12 @@ public class SoftwareVersionConfig {
return codeLocation;
}
public URL getDOIURL() {
return doiURL;
public URL getConceptDOIURL() {
return conceptDOIURL;
}
public void setDOIURL(URL doiURL) {
this.doiURL = doiURL;
public void setConceptDOIURL(URL doiURL) {
this.conceptDOIURL = doiURL;
}
public URL getVersionDOIURL() {

View File

@ -1,160 +0,0 @@
@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.1145770},
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.1145771},
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.1145772},
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.1145773},
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.1145774},
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.1145775},
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.1145776},
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.1145779},
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.1145780},
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.1145781},
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.1145783},
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.1145784},
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.1145785},
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.1145786},
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.1145787},
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.1145788},
keywords = {Catalogue, D4Science, gCube}
}

View File

@ -1,340 +0,0 @@
{
"global":
{
"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 to publish items in the gCube Catalogue.",
"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"
}
],
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145782",
"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"
}
],
"exporters": {
"ZenodoSoftwareVersionExporter": {
"elaboration": "NONE",
"html_description": "<p><a href=\"https://www.gcube-system.org/\">gCube</a> Catalogue (gCat) Service allows any client to publish items in the gCube Catalogue.</p>\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>",
"html_code_location": "\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>",
"skip_grants": ["004260"]
},
"BibLaTeXSoftwareVersionExporter": {
"elaboration": "ALL"
}
}
},
"versions":
[
{
"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,
"version_doi_url": "https://doi.org/10.5072/zenodo.1145770",
"code_location": null,
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145771",
"code_location": null,
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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,
"version_doi_url": "https://doi.org/10.5072/zenodo.1145772",
"code_location": null,
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145773",
"code_location": null,
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145774",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145775",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145776",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145779",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145780",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"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",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145781",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}",
"doi_url": "https://doi.org/10.5072/zenodo.1145769"
},
{
"version": "2.0.0",
"date": "2021-05-04",
"gcube_release_version": "5.2.0",
"version_doi_url": "https://doi.org/10.5072/zenodo.1145783",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
{
"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.1145784",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
{
"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.1145785",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
{
"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.1145786",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
{
"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.1145787",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
{
"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.1145788",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
}
]
}

View File

@ -31,7 +31,6 @@
}
],
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}",
"doi_url": null,
"grants": [
{
"id": "004260",
@ -154,6 +153,7 @@
],
"gcube_release_version": null,
"gcube_release_ticket": null,
"concept_doi_url": null,
"version_doi_url": null,
"code_location": null
},
@ -173,6 +173,7 @@
],
"gcube_release_version": "4.13.1",
"gcube_release_ticket": "https://support.d4science.org/issues/12988",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": null
},
@ -188,6 +189,7 @@
],
"gcube_release_version": null,
"gcube_release_ticket": null,
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": null
},
@ -207,6 +209,7 @@
],
"gcube_release_version": "4.14.0",
"gcube_release_ticket": "https://support.d4science.org/issues/16743",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": null
},
@ -216,6 +219,7 @@
"group": "data-publishing",
"gcube_release_version": "4.15.0",
"gcube_release_ticket": "https://support.d4science.org/issues/17294",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -225,6 +229,7 @@
"group": "data-publishing",
"gcube_release_version": "4.18.0",
"gcube_release_ticket": "https://support.d4science.org/issues/18335",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -234,6 +239,7 @@
"group": "data-publishing",
"gcube_release_version": "4.20.0",
"gcube_release_ticket": "https://support.d4science.org/issues/18507",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -243,6 +249,7 @@
"group": "data-publishing",
"gcube_release_version": "4.23.0",
"gcube_release_ticket": "https://support.d4science.org/issues/19322",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -252,6 +259,7 @@
"group": "data-publishing",
"gcube_release_version": "5.0.0",
"gcube_release_ticket": "https://support.d4science.org/issues/20648",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -261,6 +269,7 @@
"group": "data-publishing",
"gcube_release_version": "5.1.0",
"gcube_release_ticket": "https://support.d4science.org/issues/20920",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -268,7 +277,7 @@
"version": "2.0.0",
"date": "2021-05-04",
"gcube_release_version": "5.2.0",
"doi_url": null,
"concept_doi_url": null,
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -277,6 +286,7 @@
"date": "2022-01-27",
"gcube_release_version": "5.7.0",
"gcube_release_ticket": "https://support.d4science.org/issues/21685/",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -293,6 +303,7 @@
"date": "2022-07-22",
"gcube_release_version": "5.13.0",
"gcube_release_ticket": "https://support.d4science.org/issues/23374",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -301,6 +312,7 @@
"date": "2022-09-16",
"gcube_release_version": "5.13.1",
"gcube_release_ticket": "https://support.d4science.org/issues/23650",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -309,6 +321,7 @@
"date": "2022-12-07",
"gcube_release_version": "5.14.0",
"gcube_release_ticket": "https://support.d4science.org/issues/23885",
"concept_doi_url" = "PREVIOUS",
"version_doi_url": null,
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
}

View File

@ -31,7 +31,7 @@
}
],
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}",
"doi_url": "https://doi.org/10.5072/zenodo.1139068",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139068",
"grants": [
{
"id": "004260",
@ -154,7 +154,7 @@
],
"gcube_release_version": null,
"gcube_release_ticket": null,
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1139446",
"code_location": null
},
@ -174,7 +174,7 @@
],
"gcube_release_version": "4.13.1",
"gcube_release_ticket": "https://support.d4science.org/issues/12988",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1140461",
"code_location": null
},
@ -190,7 +190,7 @@
],
"gcube_release_version": null,
"gcube_release_ticket": null,
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1140750",
"code_location": null
},
@ -210,7 +210,7 @@
],
"gcube_release_version": "4.14.0",
"gcube_release_ticket": "https://support.d4science.org/issues/16743",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143572",
"code_location": null
},
@ -220,7 +220,7 @@
"group": "data-publishing",
"gcube_release_version": "4.15.0",
"gcube_release_ticket": "https://support.d4science.org/issues/17294",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143583",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -230,7 +230,7 @@
"group": "data-publishing",
"gcube_release_version": "4.18.0",
"gcube_release_ticket": "https://support.d4science.org/issues/18335",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143585",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -240,7 +240,7 @@
"group": "data-publishing",
"gcube_release_version": "4.20.0",
"gcube_release_ticket": "https://support.d4science.org/issues/18507",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143586",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -250,7 +250,7 @@
"group": "data-publishing",
"gcube_release_version": "4.23.0",
"gcube_release_ticket": "https://support.d4science.org/issues/19322",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143587",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -260,7 +260,7 @@
"group": "data-publishing",
"gcube_release_version": "5.0.0",
"gcube_release_ticket": "https://support.d4science.org/issues/20648",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143589",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},
@ -270,7 +270,7 @@
"group": "data-publishing",
"gcube_release_version": "5.1.0",
"gcube_release_ticket": "https://support.d4science.org/issues/20920",
"doi_url": "https://doi.org/10.5072/zenodo.1139445",
"concept_doi_url": "https://doi.org/10.5072/zenodo.1139445",
"version_doi_url": "https://doi.org/10.5072/zenodo.1143590",
"code_location": "https://code-repo.d4science.org/gCubeSystem/{{name}}/releases/tag/v{{version}}"
},