Automating Builds for Open Source Software

Bachelor Thesis

Thesis description:

The Automated Benchmark Management (ABM) platform [1, 2], crawls open-source repositories such as GitHub and BitBucket, and automatically builds and packages Java-based projects. However, ~13% of such projects can be directly built with common commands such as "mvn compile" or "ant build".

In this thesis, you will research how to automate more complex build systems, and improve the rate of buildable projects through the following steps:

1. Perform a literature review of the state-of-the-art on automated builds.

2. Determine common patterns in custom build systems, and design automated methods for identifying and building Java-based projects.

3. Implement the enhanced building systems in the ABM codebase.

4. Evaluate the improvements of your approach in terms of number of projects built, time, and memory consumption.

Requirements:

    • Good programming experience with Java.
    • Scala is not required, but appreciated.
    • Autonomy and self-organization skills.

    Language:

    The thesis can be held in English or German.

     Learning outcomes:

    • Assimilate and apply knowledge from relevant literature.
    • Build systems for Java.
    • Contribute in an international, open-source project.
    • Plan implement, test, and document an independent research project.

    Contact:

    Lisa Nguyen (lisa.nguyen@upb.de)

    Dr. -Ing. Ben Hermann: (ben.hermann@upb.de)

    References:

    [1] Lisa Nguyen Quang Do et al. Toward an automated benchmark management system. In SOAP 2016. DOI: dx.doi.org/10.1145/2931021.2931023

    [2] abm.cs.upb.de/abm/index.html