Skip to main content

Cloud Code Framework Robot

Project description

ccfrobot

The ccfrobot (Cloud Code Framework Robot) is a programmable automaton for automating creative tasks that occur when working with the Cloud Code Framework (CCF). It implements all CCF models, as well as skills, that are not destructive. In addition, it offers a CLI, as well as HTTP-REST APIs.

It is authored in Python3 and is compatible with UN*X, as well as NT platforms.

Licensing

This software is licensed under the open-source copyleft GNU Affero General Public License. Please refer to the LICENSE file at the repository root for more information.

Support

Commercial support is available through the Innovations ON GmbH. Innovations ON is a managed cloud provider, as well as multi-cloud consultancy, located in Germany.

Contact <t.rodney@inno-on.de>, for more information.

Installation & Usage

ccfrobot is being installed as a Python3 module, which can then be called e.g. via CLI likepython3 -m ccfrobot create framework .. There are multiple ways on how to install a Python3 module. Please refer to the INSTALL file for more information on standard installations.

For more information on utilization, please refer to the official documentation of ccfrobot, as well as the Cloud Code Framework specifications (ccfspec).

Development

This project provides an Integrated Development Environment (IDE) for UN*X and NT platforms.

Isolated Development

Isolated development does not require interfacing with other applications. If e.g. the development tasks one has to undertake requires interfacing with the aws-cli or terraform, then this is not an isolated development task. Isolated development, in most cases, is platform-agnostic, meaning that it can be done on either UN*X, or NT platform without any real means of virtualization.

Isolated development can be done through pipenv.

  1. Install pipenv (through PyPI/pip), by executing pip install --upgrade pipenv.

  2. Install development dependencies by first creating a .venv/ directory inside the repository base directory (not required1), then executing pipenv install -d ..

  3. For an interactive shell session, execute pipenv shell.

1 if one creates a .venv directory, pipenv will install all dependencies inside said directory, instead of in a pipenv-managed directory.

Integrative Development

Integrative development. in contrast to isolated development, requires interfacing with other applications.

Integrative development can be done through docker.

  1. Build the ccfrobot Docker development image by executing docker build -t local/ccfrobot-devel -f Dockerfile.devel .

  2. To create an interactive1 container, execute docker run -it -v "$( pwd ):/root" local/ccfrobot-devel /bin/sh on UN*X paltforms, or docker run -it -v "$()":/root" local/ccfrobot-devel /bin/sh on NT platforms.

If you want to statically lock all integration requirements within a Docker image, create a new Dockerfile1 that references the previously created local/ccfrobot-devel (FROM local/ccfrobot-devel) and install all integration requirements accordingly.

1 mount the repository base directory to the root's home directory (/root/), enabling one to execute the application inside the container, whilst modifying the source code on the local system.

Testing

Testing assures, that an application functions as intended by design. One can also use testing as a development guideline, in order to design application components (functions, classes, objects, etc.), that are isolated and self-reliant, and therefore easy to test.

A testing suite is a structured collection of tests, that can be executed in an arbitrary order.

A test coverage report reflects on what, and how many of the actual code execution (and therefore source code) has been tested. It is this project's goal to reach a testing coverage of at least 90%.

This project uses tox, pytest, and pytest-cov for testing, in accordance with the guidelines layed out by the Python Packaging Authority (PyPA).

Suite

To execute the entire ccfrobot (unit, and integration) testing suite, execute pipenv run tox -e unit. This will also create junit compatible test-reports in XML format. Alternatively, execute the following command:

pipenv run \
	pytest \
		-v \
		--junitxml=test-reports/tox-integration.xml

If you want to run a single test, e.g. tests/model/test_framework.py::Test__init::test_pass0, execute:

pipenv run \
	tox -e 'unit' -- \
		'tests/model/test_framework.py::Test__init::test_pass0'

Coverage

To generate a test-coverage report (in HTML format) for the entire Python ccfrobot package, execute pipenv run tox -e coverage. Alternatively, execute the following command:

pipenv run \
	pytest \ 
		-v \
		--cov=ccfrobot \
		--cov-report html:test-reports/coverage.html

Documentation

Documentation gives information to developers, as well as users, on how to interact with the application. This software's documentation is authored using Restructured Text (ResT) and sphinx and can be exported to a number of formats, including HTML, Markdown, LaTex, as well as PDF.

Documentation can be generated through pipenv.

  1. Install pipenv (through PyPI/pip), by executing pip install --upgrade pipenv.

  2. Create ./docs/.venv (not required), and change your working directory to ./docs. Then, execute pipenv install -d.

  3. Execute pipenv run make html1, to generate documentation in HTML format on UN*X platforms, or pipenv make.bat html on NT platforms.

  4. The generated documentation can be found under ./build/docs.

1 On UN*X platforms, this requires GNU make to be installed.

Distribution

The package is meant to be made available via PyPI.

  • TWINE_USERNAME
  • TWINE_PASSWORD

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ccfrobot-0.2.6.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ccfrobot-0.2.6-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

Details for the file ccfrobot-0.2.6.tar.gz.

File metadata

  • Download URL: ccfrobot-0.2.6.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for ccfrobot-0.2.6.tar.gz
Algorithm Hash digest
SHA256 dc2d4fab42f72d9943a8c02adf09184d930e2c80d36e446cfee26f8336e0f0ce
MD5 a55bf44b92ea944f8a54eb750cb13caf
BLAKE2b-256 bd671b9b3bf7cd71b26c3c6786b92c72c2f3140477814354bd7b862e1181140c

See more details on using hashes here.

File details

Details for the file ccfrobot-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: ccfrobot-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 43.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for ccfrobot-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e9c7c2f02e1ae948e1d63bd3f14399d6350f974606da9adf74da8e09f83ee78e
MD5 d465cfba313dd1c3187d4f64f9d03434
BLAKE2b-256 e6e53ad737e6217d9781ffb535e3e22001e493b007134f1f00334d43daa32fe6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page