Challenges

You’ve made it so far. Now the time has come to show the Unikraft world what you are really made of. A true Dragon Slayer!

See the items added in the Hackathons project and in the Unikraft-UPB Hackathons project.

You will get the number of points for submitting a solution that works. Those points will be doubled if the PR is accepted upstream. After solving one challenge, pick another one. We recommend you start small then move up to more difficult challenges.

We will keep the scoreboard here.

Please check the community guidelines on submitting changes and the review process.

Challenge Types

Challenge types generally fall into the categories below. You can go beyond the items marked in the Hackathons project.

  1. Submitting issues to the Unikraft core repository, or application or library repositories

    5 hackathon points are awarded for each submitted issue.

  2. Adding dynamic applications to the dynamic-apps repository

    You submit the directory with the application, libraries and required filesystem files to run it. A submitted application will either work under binary compatibility (using app-elfloader) or it would crash / stop because of a Unikraft core issue. If something is missing or wrong related to the application, its libraries or filesystem, fix that. If something is missing or wrong related to the Unikraft core, submit the application. Also submit an issue (if not already submitted) and get points for that.

    30-50 hackathon points are awarded for each submitted application, depending on its complexity.

  3. Fixing build warning messages

    5-10 hackathon points are awarded for each fix.

  4. Adding tests to internal and external libraries using the uktest framework

    Generally, 20 hackathon points are awarded for the initial test and configuration, with 3 points for each new test added.

  5. Updating library versions (and making sure the new version builds and runs)

    20-30 hackathon points are usually awarded for the boost.

  6. Updating already ported application to use Musl

    40-70 hackathon points are awarded for each updated application, depending on its complexity.

  7. Fixing issues

    50-80 hackathon points are awarded for each fix, depending on its complexity.

  8. Adding scripts like the ones used in the first session for more applications

    You can find a list of issues on adding new scripts here. 20-50 points are awarded for each script.

  9. Properly fixing issue #776

    Issue #776 has an attempted fix in PR #797. The PR author is not responding. We want a final fix for that.

    40 hackathon points are awarded.

  10. Creating a test script for all binary-compat applications

    Create a script that walks through all applications in the static-pie-apps repository and the dynamic-apps repository and uses them as tests for Unikraft using the app-elfloader. It summarizes which applications work, which applications don’t work, and their issues.

    100 hackathon points are awarded.

  11. Improving automation scripts

    Do general improvements to scripts in the scripts repository.

    20-30 hackathon points are awarded.

  12. Using Python for automation scripts

    Replace shell scripting with Python for scripts (do.sh, .../include/...) in the scripts repository.

    200 hackathon points are awarded.

  13. Adding Makefile / Makefile.uk / Config.uk for applications

    Add Makefile, Makefile.uk, Config.uk for repositories of Unikraft applications. This will make it seamless to configure, build and run Unikraft applications.