Package: ccfrobot
ccfrobotTheccfrobot(Cloud Code Framework Robot) is a programmable automaton for automating creative tasks that occur when working with theCloud Code Framework (CCF). It implements all CCF models, as well as skills, that are not destructive. In addition, it offers aCLI, as well asHTTP-RESTAPIs.It is authored inPython3and is compatible with UN*X, as well as NT platforms.LicensingThis software is licensed under the open-source copyleftGNU Affero General Public License. Please refer to theLICENSEfile at the repository root for more information.SupportCommercial support is available through theInnovations 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 & Usageccfrobot 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 theINSTALLfile for more information on standard installations.For more information on utilization, please refer to the official documentation ofccfrobot, as well as the Cloud Code Framework specifications (ccfspec).DevelopmentThis project provides anIntegrated Development Environment(IDE) for UN*X and NT platforms.Isolated DevelopmentIsolated development does not require interfacing with other applications. If e.g. the development tasks one has to undertake requires interfacing with theaws-cliorterraform, 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 throughpipenv.Installpipenv(through PyPI/pip), by executingpip install --upgrade pipenv.Install development dependencies by first creating a.venv/directory inside the repository base directory (not required1), then executingpipenv install -d ..For an interactive shell session, executepipenv shell.1if one creates a .venv directory,pipenvwill install all dependencies inside said directory, instead of in a pipenv-managed directory.Integrative DevelopmentIntegrative development. in contrast to isolated development, requires interfacing with other applications.Integrative development can be done throughdocker.Build theccfrobotDocker development image by executingdocker build -t local/ccfrobot-devel -f Dockerfile.devel .To create an interactive1container, executedocker run -it -v "$( pwd ):/root" local/ccfrobot-devel /bin/shon UN*X paltforms, ordocker run -it -v "$()":/root" local/ccfrobot-devel /bin/shon NT platforms.If you want to statically lock all integration requirements within a Docker image, create a newDockerfile1that references the previously createdlocal/ccfrobot-devel(FROM local/ccfrobot-devel) and install all integration requirements accordingly.1mount the repository base directory to theroot's home directory (/root/), enabling one to execute the application inside the container, whilst modifying the source code on the local system.TestingTesting 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 usestox,pytest, andpytest-covfor testing, in accordance with the guidelines layed out by the Python Packaging Authority (PyPA).SuiteTo execute the entireccfrobot(unit, and integration) testing suite, executepipenv run tox -e unit. This will also createjunitcompatible test-reports in XML format. Alternatively, execute the following command:pipenvrun\pytest\-v\--junitxml=test-reports/tox-integration.xmlIf you want to run a single test, e.g.tests/model/test_framework.py::Test__init::test_pass0, execute:pipenvrun\tox-e'unit'--\'tests/model/test_framework.py::Test__init::test_pass0'CoverageTo generate a test-coverage report (in HTML format) for the entire Pythonccfrobotpackage, executepipenv run tox -e coverage. Alternatively, execute the following command:pipenvrun\pytest\-v\--cov=ccfrobot\--cov-reporthtml:test-reports/coverage.htmlDocumentationDocumentation 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) andsphinxand can be exported to a number of formats, including HTML, Markdown, LaTex, as well as PDF.Documentation can be generated throughpipenv.Installpipenv(through PyPI/pip), by executingpip install --upgrade pipenv.Create./docs/.venv(not required), and change your working directory to./docs. Then, executepipenv install -d.Executepipenv run make html1, to generate documentation in HTML format on UN*X platforms, orpipenv make.bat htmlon NT platforms.The generated documentation can be found under./build/docs.1On UN*X platforms, this requiresGNU maketo be installed.DistributionThe package is meant to be made available via PyPI.TWINE_USERNAMETWINE_PASSWORD