diff --git a/rdd-technical-reference.md b/rdd-technical-reference.md index da4cd07a8147dd6c03207ff1cbd179b812bf47d3..489617d9dc143037dfbce31a72c4273787a5e0bc 100644 --- a/rdd-technical-reference.md +++ b/rdd-technical-reference.md @@ -201,7 +201,7 @@ This may encompass: > There is external documentation that is accessible and sufficient for an expert user to configure and use the software for the user’s individual needs. Terminology and methodology is not explained. -###### Actions to Be Taken in RDD +##### Actions to Be Taken in RDD - a README(.md) has to be available in the source code repository (cf. [General Notions about Documentation](#general-notions-about-documentation)) @@ -213,7 +213,7 @@ Documentation](#general-notions-about-documentation)) > There is a user manual that can guide a reasonably skilled user through use and customisation of the software to the user’s individual requirements. Documentation is consistent with current version of the software. -###### Actions to Be Taken in RDD +##### Actions to Be Taken in RDD - a more detailed explanation is available for the user at some place (such as user guide in wikis, etc. pp.) - docs should also be provided in a `docs` directory in the source code repository @@ -289,34 +289,34 @@ Ideally, we use build tools to conveniently get a software running. The reason for using a build tool is to be able to build and/or test a code project with one command (after checking out). Another reason is to include dependency management. -##### Build tools we are using at the moment +#### Build tools we are using at the moment -* **bash scripting**: (bdnPrint, FontanePrint) -* **eXist**: Ant (SADE) -* **Java**: +- **bash scripting**: (bdnPrint, FontanePrint) +- **eXist**: Ant (SADE) +- **Java**: - Maven (TextGrid) - gradle (TextGrid) -* **JavaScript**: +- **JavaScript**: - bower (DARIAH-DE GeoBrowser, tgForms) - cake (tgForms) - NPM (DARIAH-DE Publikator, tgForms) - rake (DARIAH-DE GeoBrowser) -* **Python**: +- **Python**: - make (Sphinx documentation) - PIP (DiscussData) -* **Ruby**: bundler (DARIAH status page) +- **Ruby**: bundler (DARIAH status page) ### Packaging #### CESSDA's Software Maturity Levels in RDD (CA5) -###### MUST +##### MUST `MUST` be SML5, which is defined as follows: @@ -325,7 +325,7 @@ packaged/containerised software. Administrators are notified if deployment fails upgraded/rolled back from a Continuous Integration server job (or equivalent). Data and/or index files can be restored from a Continuous Integration server job (or equivalent). -###### Actions to Be Taken in RDD +##### Actions to Be Taken in RDD - examples for versions of deployed software: versioning of deb packages - examples for rollback: rebuild index ElasticSearch from source data, restore database backup @@ -337,24 +337,24 @@ and test-coverage for your default-branch under Settings/General->Badges. The generic links for all projects are: -* Pipeline-status +- Pipeline-status - Link: `https://gitlab.gwdg.de/%{project_path}/commits/%{default_branch}` - Badge image URL: `https://gitlab.gwdg.de/%{project_path}/badges/%{default_branch}/pipeline.svg?style=flat-square` -* Test-coverage +- Test-coverage - Link: `https://gitlab.gwdg.de/%{project_path}/commits/%{default_branch}` - Badge image URL: `https://gitlab.gwdg.de/%{project_path}/badges/%{default_branch}/coverage.svg?style=flat-square` The workflows we are using currently in Jenkins and GitLab Runner are: -* Code building -* Testing -* Code analyzer (Sonar) -* Packaging (JAR, WAR, DEB, XAR) -* Distribution (Nexus, APTLY repo, eXist repo) -* Release Management (via GitLab Environments and gitflow) +- Code building +- Testing +- Code analyzer (Sonar) +- Packaging (JAR, WAR, DEB, XAR) +- Distribution (Nexus, APTLY repo, eXist repo) +- Release Management (via GitLab Environments and gitflow) #### Sample Configuration of the GitLab Runner @@ -403,11 +403,11 @@ from the server in the influxdb. Some system statistics monitored by telegraf in our current puppet setup: -* CPU -* Memory -* Space -* Apache -* ... +- CPU +- Memory +- Space +- Apache +- ... Telegraf collects statistics with input plugins. A list of plugins is [available](https://github.com/influxdata/telegraf#input-plugins). @@ -461,7 +461,7 @@ Best practice is to maintain a file listing all third-party packages that are part of the software. This list should hold the following metadata and `SHOULD` be prepared like the table below, always in alphanumeric order. -``` +```nat | name | license | origin | |------|---------|--------------------| | foo | barware | github.com/foo/bar | @@ -469,9 +469,9 @@ prepared like the table below, always in alphanumeric order. Maybe the `license-maven` plugin will help you. -### CESSDA's Software Maturity Levels in RDD (CA2) +#### CESSDA's Software Maturity Levels in RDD (CA2) -###### MUST +##### MUST `MUST` be SML5, which is defined as follows: @@ -481,7 +481,7 @@ in the source code of the product, in the documentation, and in the expression o intellectual property rights statements are expressed in legal language, machine-readable code, and in concise statements in language that can be understood by laypersons, such as a pre-written, recognisable license. -###### Actions to Be Taken in RDD +##### Actions to Be Taken in RDD - see rdd-technical-reference for choosing the license - source code: use OSI approved licenses? (see <https://opensource.org/licenses)> (++TODO discuss in fe-develop++) (how @@ -495,7 +495,7 @@ file called COPYING [see <https://www.gnu.org/licenses/gpl-howto.de.html>] other (<https://softdev4research.github.io/4OSS-lesson/03-use-license/index.html#add-a-licence-file-to-a-repository)> - in the source code header the license statement is added to every file. GPL example: -``` +```nat This file is part of FOOBAR. FOOBAR is free software: you can redistribute it and/or modify