Skip to content

Contribute

This is the documentation for our internal developers.

Note, again, that we, currently, only work on this project for the purpose of reaching our own internal goals.

Development environment for Python

We use MambaForge to create a development environment. To build the mamba environment ab-dev for development, go to your local Git archive with the repository and type:

(base) $ mamba env create -f environment-dev.yml

Then, activate the environment by typing:

(base) $ mamba activate ab-dev
(ab-dev) $

Finally, install AutoBernese in developer mode, so that you can run the application using the current revision state of the archive:

(ab-dev) $ python -m pip install -e .

Contribution guidelines

Code changes must be made from any branch on your own fork of the official repository and submitted as a GitHub pull request.

Make sure that contributed code passes the checks made on GitHub, before requesting a review.

We aim for type consistency, but for now, type checking is not enforced.

Documentation

The documentation is built using MkDocs with the Material extension. Other features are used as well. (See which ones in environment-dev.yml.)

Illustration Business-Process Modelling and Notation [BPMN]

To illustrate the business-process model, the BPMN XML-format is used.

The .bpmn files are edited using the Javascript-based application from bpmn.io which can be added as an extension to VS Code.

The files are visualised using kroki in an MkDocs extension.

Shell recording for examples

Examples are recoreded using asciinema and .cast files are included in the documentation by adding extra CSS and JavaScript for the visualiser and adding HTML script elements in the Markdown source documents.

System Diagrams

The architecture and overall functionality is viaualised using the C4-model tool Structurizr.

A single workspace contains a collection of software systems, the main system's container and their components.

The diagrams are produced using the docker container for Structurizr Lite, and the generated images are manually created from the web application accessing the workspace file.

Command for running it in development:

docker run -d -it --rm -p 8080:8080 -v /path/to/git/AutoBernese/workspace/structurizr:/usr/local/structurizr structurizr/lite

For VS Code, there is a syntax extension called Structurizr DSL syntax highlighting from publisher ciarant that is useful, when editing the workspace file.

Note

Running the docker container above for the first in a directory which does not already have a workspace.dsl file, a new file is created with root ownership.

In this case, change the permissions on the workspace.dsl to give yourself write permissions for the file.