Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
112 lines (90 sloc) 4.58 KB

cyber-dojo yin/yang logo

The cyber-dojo source code is split across two github organizations.

  • cyber-dojo contains 10+ repositories, one for each dockerized microservice that together comprise the server.
  • cyber-dojo-languages contains 100+ repositories, one for each language+testFramework (eg Java,JUnit).

contributing to cyber-dojo-languages

This is the simplest way to contribute and a good way to start.

  • install docker by following the instructions at the top of...
  • open a Docker Quickstart Terminal
  • git clone the image_builder repository. This automates the building and testing of a cyber-dojo-language repo.
git clone
  • git clone the repository for your chosen language,testFramework, eg Java,JUnit. This must be in a sibling directory to image_builder directory.
git clone

Here's a complete list of all 100+ language+testFramework repos in cyber-dojo-languages.

  • build and test the docker image for Java,JUnit by running its file. The first time you run this docker will pull dependent images.
cd java-junit

will produce output like this:

# ------------------------------------------
# assert_create_start_point
# ------------------------------------------
# build_image
# ------------------------------------------
# show_avatar_users_sample
# ------------------------------------------
# check_red_amber_green
# using runner-stateless, max_seconds=10
# red: OK (~2.45 seconds)
# amber: OK (~1.46 seconds)
# green: OK (~1.86 seconds)
# ------------------------------------------

You can now improve the Java,JUnit docker image (built from java-junit/docker/) or the Java-JUnit starting files (which live in java-junit/start_point/) or use it as a start-point for a new language+testFramework.

Specific ways you can contribute to cyber-dojo-languages.

  • fix the broken Dockerfile for elm,test

  • make Scala fast enough to be usable. See scala-test which is built on scala. Can someone smart get this down to something reasonable?

  • add a new language, Prolog, Lisp, SQL, ...

  • add a new test-framework, testNG anyone?

  • reduce the [test] response time for your favourite language,test-framework

  • read the starting files for you favourite language,test-framework and make them more idiomatic

  • suggest a new exercise

  • convert large docker images to smaller Alpine based images. The language+testFramework images are based on either Alpine Linux or Ubuntu or Debian. However, if the official dockerhub image for a language is Ubuntu/Debian then experience has shown it's typically best to use that so the nightly Travis build gets the :latest image.

contributing to cyber-dojo

Instructions for downloading the git repos and building everything from source

  • the github issues list lives on the main web service repo. If you fancy helping with a specific issue please add a comment to it.

  • if you've tried building your own cyber-dojo from the github source repos I'd really appreciate knowing what was easy, what was hard, and what I could do to make it easier for you.