Development

The following sections discuss development on various parts of a Data Station. Some components are developed by DANS, other components are provided by open source projects in which DANS may participate.

DANS microservices

The DANS microservices are based on the dans-module-archetype. This archetype creates a skeleton microservice based on the DropWizard framework. When working on DANS microservices, please comply with the best practises documented in the dans-module-archetype documentation.

DANS command-line tools

DANS command line tools are written in Python. Poetry is used as the build tool. The Python-based modules are released to the DANS-KNAW PyPI account. PyCharm is the preferred IDE for Python-based projects.

Dataverse

The architecture overview makes clear that Dataverse plays a key role in the Data Station. That is why DANS is actively involved in its developmentvia the Dataverse community. When working on Dataverse code take notice of the developer docs.

Debugging Dataverse

For DANS developers it is not necessary (nor preferable) to set up Dataverse and its dependencies Solr and PostGreSQL on your development laptop, as described in the developer docs. Instead you should use the pre-build vagrant box. Information can be found in the private repository dd-dtap (only accessible for DANS developers).

Skosmos

Skosmos is used to serve vocabulary terms to Dataverse. DANS is currently not actively involved in development, but it is entirely possible that bug fixes may need to be contributed in the future. The project is written in PHP but there is no information on the Skosmos website about the development environment set-up.

Documentation with mkdocs

The documentation for DANS projects (including this site) is written using mkdocs. The source code for those sites consists of markdown in combination with other resources, such as images. Images are often created with yEd. The graphml source code of the images is committed along with the image exports. You should always check that your changes render correctly. This is made easy by the start-mkdocs.sh script in dans-dev-tools.