View on GitHub

Carme-Docu

Documentation Project for Carme

Carme Development Documentation

All development documentation is written in Markdown.

Other Documents

NOTE: Things to know about the Carme License

Pealase review the Carme License carefully. Carme is an open source project, but the license comes with some restrictions on re-distribution.

Languages

Carme is developed in the following languages:

Coding Styles

The Carme development team uses the following coding styles / standards.

Python

PEP8 - use PEP8 plugins for your favorite editor or the autopep tool:

Bash

No style defined yet -> ToDo

HTML + CSS

Java Script

No style defined yet -> ToDo

Bug reports

Please report bugs via github issues.

Merge requests

Issue a merge request via github.

API Documentation

Python

We use PEP257 conform docstrings to annotate Python code.

Automatic API documentation

Pydoc-Markdown is used to generate API ducumentation.

Carme Python API

Allowing interarction with Carme from python.

Python Plugins

Extending Carme with plugins.

File Headers

All files in Carme should contain on of the following headers:

Python / Bash

# ---------------------------------------------- 
# Carme
# ----------------------------------------------
# FILENAME - SHORT DESCRIPTION                                                                                                                                                                     
#                                                                                                                                                                                                            
# see Carme development guide for documentation: 
# * Carme/Carme-Doc/DevelDoc/readme.md
# * PATHS TO FILE SPECIFIC DOCU                                                                                                                                                                        
#
# Copyright 2019 by Fraunhofer ITWM  
# License: http://open-carme.org/LICENSE.md 
# Contact: info@open-carme.org
# ---------------------------------------------   

HTML

<!---
# ---------------------------------------------- 
# Carme
# ----------------------------------------------
# FILENAME - SHORT DESCRIPTION                                                                                                                                                                     
#                                                                                                                                                                                                            
# see Carme development guide for documentation: 
# * Carme/Carme-Doc/DevelDoc/readme.md
# * PATHS TO FILE SPECIFIC DOCU                                                                                                                                                                        
#
# Copyright 2019 by Fraunhofer ITWM  
# License: http://open-carme.org/LICENSE.md 
# Contact: info@open-carme.org
# ---------------------------------------------
-->

Carme Structure

Basic setup and communication paths between Carme services: Carme_setup

Frontend

Carme-Frontend is a Django based web-service. Core services include:

See Fronend Documentation for details.

Backend

Carme-Backend is a standalone server running with superuser rights. Core services include:

See Backend Documentation for details.

Service-Daemon

Proxy

Typical Setup

Login and Headnode hardwaresetup.

carme_topology

Central Config File

Carme has a single config file: CarmeConfig. It is expected to be located at the carme root directory. See Admin documention for details.

Reading CarmeConfig from Python

import imp  
imp.load_source('CarmeConfig', '../../CarmeConfig')  #second arg is relative path to carme root dir 
from CarmeConfig import *            

all variables will be available directly. NOTE: The Django based Carme Frontend is importing CarmeConfig into the Django settings domain. See Fronend Documentation for details.

Reading CarmeConfig from Bash

source ../../CarmeConfig #use relative path to carme root dir

Plugins and Extensions

There are multiple hooks to extend Carme with plugins and modules. carme_hooks

Hoks