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.
-
Submitting issues to the Unikraft core repository, or application or library repositories
5 hackathon points are awarded for each submitted issue.
-
Adding dynamic applications to the
dynamic-apps
repositoryYou 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.
-
Fixing build warning messages
5-10 hackathon points are awarded for each fix.
-
Adding tests to internal and external libraries using the
uktest
frameworkGenerally, 20 hackathon points are awarded for the initial test and configuration, with 3 points for each new test added.
-
Updating library versions (and making sure the new version builds and runs)
20-30 hackathon points are usually awarded for the boost.
-
Updating already ported application to use
Musl
40-70 hackathon points are awarded for each updated application, depending on its complexity.
-
Fixing issues
50-80 hackathon points are awarded for each fix, depending on its complexity.
-
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.
-
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.
-
Creating a test script for all binary-compat applications
Create a script that walks through all applications in the
static-pie-apps
repository and thedynamic-apps
repository and uses them as tests for Unikraft using theapp-elfloader
. It summarizes which applications work, which applications don’t work, and their issues.100 hackathon points are awarded.
-
Improving automation scripts
Do general improvements to scripts in the
scripts
repository.20-30 hackathon points are awarded.
-
Using Python for automation scripts
Replace shell scripting with Python for scripts (
do.sh
,.../include/...
) in thescripts
repository.200 hackathon points are awarded.
-
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.