Package: johann
JohannJohann is a lightweight and flexible “scenario orchestrator”. It makes it easy to
coordinate the actions of groups of computers into cohesive, reconfigurable scenarios.
It’s sort of like the conductor for an orchestra of computers, andyouget to write
the music.SummaryRequirementsUsageThis is an alpha prototypeRoadmapContributingBuilt WithLicenseAcknowledgmentsRequirementsJohann is designed to be used on Linux. It has been tested on Ubuntu 18.04, and likely
works on several other distributions as well.Johann requires the following to run:Docker EngineDocker ComposeMakeHere is an example of how to install these on Ubuntu/Debian:# Install makesudoapt-getupdate
sudoapt-getinstallbuild-essential# Install docker via convenience script (not for production environments)curlhttps://get.docker.com|sudosh
sudousermod-aGdocker$USER# log out and log back indockerrunhello-world# Install docker-composesudocurl-L"https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose
sudochmod+x/usr/local/bin/docker-compose
docker-compose--versionUsageStart Johann (this will also build it). This can take a while the first time.makeupThis is an alpha prototypeJohann is anevolutionary prototypein its initial development. It is not yet feature complete, and breaking changes can
happen at any time. This is represented by itsmajor version zero(0.y.z).For now, Johann should be considered to be in perpetualalpha. This is made
explicit by the "a" in the version identifier. Please expect it to be rough around the
edges (and maybe everywhere else).Johann should only be used in isolated or protected networks of known and trusted
hosts/users. It should only be used for research and development, andnotin
production.RoadmapHere are some planned improvements to Johann, in no particular order:add a simple GUIswitch topydanticswitch tofastapiadd more documentationusemypyandpylintadd more testsadd user authenticationsupport kwargs in MeasuresScore-level variables; configurable at runtimeContributingWe welcome pull requests! Before starting, please communicate with us to discuss what
you would like to change. Please also update tests and documentation as appropriate.
Thanks!Getting StartedInstall development packages.# Ubuntu/Debiansudoapt-getupdate
sudoapt-getinstallpython3-devpython3-venvbuild-essentialgit# Alpine (not officially supported)apkadd--no-cachepython3-devbashmakegitgcclinux-headersmusl-devSetup the virtual environment used for Johann development. This also installspre-commithooks.makedev-setupDevelopment UsageStart Johann in development mode (this will also build it).makedevTestingmaketestLintingJohann usespre-commit. For the list of
hooks used, see.pre-commit-config.yaml.Lint the files staged for commit.makelintLint all files in the repo.makelint-allUsesafetyto check for known dependency
vulnerabilities.makesafetyBuilt WithIn addition to the dependencies listed inRequirements, please see:setup.pyrequirements-dev.in.pre-commit-config.yamlIn addition to these, Johann is also made possible with the help of (alphabetically):gitlab-cipmtrLicenseUse of this source code is governed by a BSD-3-clause license that can be found in theLICENSEfile. See theAUTHORSfile for names of contributors.AcknowledgmentsJHU/APLfor supporting Johann's licensing as open sourceJohann S.D.G.