... | @@ -9,12 +9,14 @@ The document summarised the collection of best practices for |
... | @@ -9,12 +9,14 @@ The document summarised the collection of best practices for |
|
| ------------- | ------------- | -------------- | ------------------ | ---- | ---------- |
|
|
| ------------- | ------------- | -------------- | ------------------ | ---- | ---------- |
|
|
| Software is integral part of (open science) | general | visibility and support needs to be strengthened | by citations, visibility | development, adoption | adoption |
|
|
| Software is integral part of (open science) | general | visibility and support needs to be strengthened | by citations, visibility | development, adoption | adoption |
|
|
| Provide guidelines to researches and developers | development |Several guidelines available | [DLR](https://rse.dlr.de/),[Netherlands eScience center](https://guide.esciencecenter.nl/#/best_practices/checklist) | Development and deployment in the community, harmonisation | adoption |
|
|
| Provide guidelines to researches and developers | development |Several guidelines available | [DLR](https://rse.dlr.de/),[Netherlands eScience center](https://guide.esciencecenter.nl/#/best_practices/checklist) | Development and deployment in the community, harmonisation | adoption |
|
|
| Management of Software Projects | general/planning | different solutions (from open source to commercial in use), different SLDC approaches | incremental, iterative or agile development (often adopted)..., [Cosylab](https://www.cosylab.com/) solution for CTA, [SAFe®](https://www.scaledagileframework.com/) for SKA | experiment specific | none |
|
|
| Management of Software Projects | general/planning | different solutions (from open source to commercial in use), different SLDC approaches | incremental, iterative or agile development (often adopted)..., [Cosylab](https://www.cosylab.com/) solution for CTA, [SAFe®](https://www.scaledagileframework.com/) for SKA, [Atlassian suite for CASA](https://casa.nrao.edu/) | experiment specific | none |
|
|
| Choice of Development Platform and Workflow | development | internal and external platforms, both open source and commercial | github, e.g. [gammapy](https://gammapy.org/), and gitlab, [Hangar](http://www.github.com/tensorwerk/hangar-py) for data management | harmonisation needed? | none |
|
|
| Choice of Development Platform and Workflow | development | internal and external platforms, both open source and commercial | github, e.g. [gammapy](https://gammapy.org/), and gitlab, [Hangar](http://www.github.com/tensorwerk/hangar-py) for data management | harmonisation needed? | none |
|
|
| Continuous Integration/Deployment | deployment | automated platform for CI/CD including software tests | gitlab/github CI/CD, Linux package, e.g. the [Kernsuite](https://github.com/kernsuite/packaging) | harmonisation | harmonisation |
|
|
| Coding Style guides and checks | development, maintenance | different guides available | [Black](https://black.readthedocs.io/en/stable/), [yapf](https://yapf.now.sh/) | harmonisation, adoption| adoption |
|
|
|
|
| Code Optimisation and benchmarking | development, maintenance | benchmarking tools to compare with, eg. HEP-SPEC06 or [hep-benchmarks](https://gitlab.cern.ch/hep-benchmarks) | research, harmonisation | adaption |
|
|
|
|
| Continuous Integration/Deployment | deployment | automated platform for CI/CD including software tests | gitlab/github CI/CD, LSST service deployment model (Kubernetes, ArgoCD, Vault, and Helm), Linux package, e.g. the [Kernsuite](https://github.com/kernsuite/packaging), test-driven devlopment| harmonisation | harmonisation |
|
|
| Containerisation | development, deployment, archiving, maintenance | containers as overarching solution for flexible software distribution and handling | including Kubernetes | research (overview gathering) | development |
|
|
| Containerisation | development, deployment, archiving, maintenance | containers as overarching solution for flexible software distribution and handling | including Kubernetes | research (overview gathering) | development |
|
|
| Interoperability between software | general | meta-data and workflow descriptions available | e.g. [Stimela](https://github.com/SpheMakh/Stimela) and [CARACal](https://caracal.readthedocs.io/en/latest/) for MeerKat
|
|
| Interoperability between software | general | meta-data and workflow descriptions available | e.g. [Stimela](https://github.com/SpheMakh/Stimela) and [CARACal](https://caracal.readthedocs.io/en/latest/) for MeerKat
|
|
| Avoiding Vendor Lock-In | general | vendor lock-in should be avoided by using general approaches or use global common services where vendor transfer is highly probable | e.g. use make files for tests, github as global standard| research | adoption |
|
|
| Avoiding Vendor Lock-In | general | vendor lock-in should be avoided by using general approaches or use global common services where vendor transfer is highly probable | e.g. use make files for tests, github as global standard| research | adoption |
|
|
| Prepare software for archiving, choose archive | Archiving | Archives available, provide guidelines to cite the software properly, PID your software | [Zenodo](https://zenodo.org/), [Software Heritage](https://www.softwareheritage.org/) | automation in OSSR | harmonisation |
|
|
| Prepare software for archiving, choose archive | Archiving | Archives available, provide guidelines to cite the software properly, PID your software | [Zenodo](https://zenodo.org/), [Software Heritage](https://www.softwareheritage.org/) | automation in OSSR | harmonisation |
|
|
| Maintenance takes more resources than development | Maintenance | Most projects focused on development, maintenance took into consideration by the platform, resources only partly available | funding for long-term maintenance not securable | raise awareness | harmonisation |
|
|
| Maintenance takes more resources than development | Maintenance | Most projects focused on development, maintenance took into consideration by the platform, resources only partly available | funding for long-term maintenance not securable | raise awareness | harmonisation |
|
|
|
|
| Software Re-use | maintenance | containerisation and analysis platforms are key input | [CAP](https://analysispreservation.cern.ch/login?next=/) and [reana](http://reanahub.io/) | development and harmonisation | adoption | |