The main page is at SummerOfCode2019.

To add a new project proposal, please enter a WikiName in one of the boxes below (the contents will be used as a wiki page name, please avoid spaces) and hit the button! Then, fill in the template, and drop us a line on the debian-outreach mailing-list.

Projects with confirmed mentors

Android SDK Tools in Debian

Description of the project: The Android platform is free software, including the tools used for developing apps for Android. Debian-derivatives are already a preferred platform for Android developers, and stretch already includes the core Android SDK tools, enough to build some apps. The Debian Android Tools team is working towards the goal of having the entire Android toolchain and SDK in Debian. That means Android apps can be developed using only free software from easy-to-use packages. In combination with Replicant, this will make the most popular operating system in the world, Android, into a 100% Free Software platform. This project is in conjunction with the Debian Java team, since many tools like gradle are for any Java software.

  • Confirmed Mentor: Hans-Christoph Steiner

  • How to contact the mentor: hans@at.or.at and @_hc on IRC

  • Confirmed co-mentors:

  • Deliverables of the project: The deliverables of this project will mostly be finished packages submitted to Debian sid, both for new packages and updated packages. Whenever possible, we should also try to get patches submitted and merged upstream in the Android sources.

  • Desirable skills: Building and packaging C/C++ and Java code, an understanding of git. Android development is preferable.

  • What the intern will learn: Students will learn to figure out large scale projects like Android, and how to organize their own work within such projects. They will also learn about building and packaging C and Java, as well as some of the guts of Android itself.

  • Application tasks: (simple tasks that could show your determination):

    • build an Android app using only apt install android-sdk android-sdk-platform-23 android-sdk-helper, F-Droid is a good app to try

    • backport android-sdk-helper to stretch-backports

    • test Android Tools bash completion (e.g. for adb, fastboot, etc), file bugs if it doesn't work properly

    • anything else you think suitable.
  • Related projects: Replicant, the 100% free software Android ROM, uses our packages to provide a 100% free software Android SDK.

There are many chunks of work to be done:

  • finish packaging all of the core development tools (lint, SDK Manager, android update project utility, etc.)

  • update android-tools and relevant pkg-java packages to the latest upstream version

  • add Continuous Integration tests

  • update androidsdk-tools to the Android Tools Team style, and update to latest upstream version

  • package new parts of the Android upstream source, including the NDK, target platforms, emulators, Android Studio, etc.
  • make all Android Tools packages build reproducibly
  • improve package build systems to be more tightly integrated with upstream build systems
  • package and improve related tools, like apktool, androguard, fdroidserver, drozer, libscout, qark, OWASP Dependency Check, etc.
  • Update gradle to 4.x, which is a dependency by the Android Gradle Plugin

Since this project is a large one, multiple mentors and students could work on it simultaneously. You can find relevant documentation in READMEs in each git repo and source package. There is also this wiki section: AndroidTools

There is also a blog post about contributing to this project here

The Debian Android Tools Team works with git and git-buildpackage: PackagingWithGit

Continuous Integration for biological applications inside Debian

Description of the project: The Debian Med project has packaged a lot of applications for bioinformatics. In 2016, 2017 and 2018 Outreachy students did a great job in adding autopkgtests to several packages. This is considered a big step for Continuous Integration for applications in bioinformatics. Due to the great success and the very positive response of the students a continuation of this effort to cover even more applications with sensible test suites should be done. It has turned out that it can be an extra challenge to debug and fix programs where the previously written tests have failed.

  • Confirmed Mentor: Andreas Tille

  • How to contact the mentor: tille@debian.org

  • Confirmed co-mentors:

  • Deliverables of the project: Enhanced packages for bioinformatics covering whole workflows of users as best as possible

  • Desirable skills: The student should have a background in bioinformatics. Debian packaging skills are an extra plus but can be taught in the project run.

  • What the intern will learn: Detailed insight into the bioinformatic tools inside Debian, Comparing and benchmarking biotools, Debian packaging skills, Optimising bioinformatics and other scientific tools

  • Application tasks: Pick one of these bugs 909706, 909707, 909708, 909709, 909710, 909711, 909713, 909715, 909716 or 909717 and try fixing it - asking the mentor for help is fine. This is on one hand proof that the students is able to understand Debian packaging and understands bioinformatics at a sufficient level

  • Related projects: SummerOfCode2016/Projects/BioToolsTesting, SummerOfCode2017/Projects/QA_BiologyApps, ?Continuous_Integration_for_biological_applications_inside_Debian

Debian Cloud Image Finder

Description of the project: The Debian Cloud team is moving forwarding and providing many images for different cloud providers and some variations. As the number of images grow we need to provide a way for users to easily find what they are looking for. This project aims to develop an image finder for Debian Cloud Team. We still do not have the cloud images published in a fixed place but we can work with the metadata file that each image will have in the near future. The idea is to develop a web application written in Python + Flask. The GSoC intern will interact a lot with the Debian Cloud Team since we do not have strict requirements and they probably will be elicited and discussed during the project execution.

  • Confirmed Mentor: Lucas Kanashiro

  • How to contact the mentor: kanashiro@debian.org, kanashiro on IRC

  • Confirmed co-mentors: Bastian Blank <waldi@debian.org>

  • Deliverables of the project: A functional and high tested web application deployed somewhere.

  • Desirable skills: Python, Flask, Javascript, ansible

  • What the intern will learn: The intern will gain/improve their communication skill within the Debian community since we will interact a lot with it, and also improve their web development and python skills during the work.

  • Application tasks: TBD

  • Related projects: https://cloud-images.ubuntu.com/locator/

Debian Continuous Integration

Description of the project: Debian Continuous Integration is a system that runs tests on Debian packages to assist with the process of quality assurance of the Debian distribution. It has gained quite a few features in the last couple of years, and now directly influences the Debian release process. In this project, the intern will work in improving the Debian CI user interface, both on the web and otherwise (command line etc) to make the interaction of Debian maintainers with the service more productive.

  • Confirmed Mentor: Antonio Terceiro (terceiro)

  • Confirmed co-mentors: Paul Gevers (elbrus)

  • How to contact the mentor:

    • IRC: terceiro, elbrus (OFTC, #debci)

    • email: terceiro,elbrus}@d.o

  • Deliverables of the project: improvements to the debci web interface, and deployment of those improvements to the main instance at ci.debian.net

  • Desirable skills: Ruby, shell scripting, HTML/CSS, git

  • What the intern will learn: besides working on the web user interface (Ruby/HTML/CSS), the intern will also learn about distributed data processing applications, message queues, producer/consumer, build systems, automated software testing, git, etc.

  • Application tasks:

    • Get debci up an running on your machine

    • Send a merge request with an improvement to the debci web interface. You can pick one idea from the list that is marked as easy/quick, or do something else that you find interesting or useful.

Debian PHP Packaging

Description of the project: PHP Packaging in Debian is far from perfect and there are several areas that needs improvement related to packaging core PHP interpreter, extensions and PEAR packages.versions; b)

  • Confirmed Mentor: Ondrej Sury

  • How to contact the mentor: ondrej@sury.org, I would insist on regular 1:1 meetings (over Zoom)

  • Confirmed co-mentors:

  • Deliverables of the project: Improve a Debian PHP ecosystem packaging tools

  • Desirable skills: Debian, Debian packaging, make (debian/rules is a Makefile), shell, automation, CI

  • What the intern will learn: PHP packaging is a quite complex and yet many people depend on those packages, you will learn how to package a complex programming language with vast ecosystem of extensions and libraries

  • Application tasks: package an unpackaged PECL extension

  • Related projects: http://tracker.debian.org/dh-php https://tracker.debian.org/pkg/php-defaults

New Contributor Wizard

Description of the project: New Contributor Wizard is a federated GUI software for Linux which can help any person start learning about Open Source and all the essential skills required to contribute to it. The project's development began during Google Summer of Code 2018 and was built using Kivy. It now has 7 different topics and each has modules for both learning and experimentation. There's a parser built to convert JSON into Kivy GUI and hence is very efficient in making learning modules. Please read more about the software here https://salsa.debian.org/new-contributor-wizard-team/new-contributor-wizard

  • Confirmed Mentor: Shashank Kumar

  • How to contact the mentor: IRC: realslimshanky | Email: abc@shanky.xyz

  • Confirmed co-mentors: Looking for a DD to co-mentor this project. Please reach out if you are interested.

  • Deliverables of the project: Add new tutorials and tools in the software, Debian package for the software and optionally update package for Pypi.

  • Desirable skills: Python 3, Kivy, knowledge of Debian packaging (optional)

  • What the intern will learn: Intern to this project will learn about building GUI application using Kivy and packaging software for Debian and Pypi

  • Application tasks:

  • Related projects: Here is an example of a web application which contains similar modules for learning tools needed for open source contribution https://openhatch.org/missions/

Package Loomio for Debian

Description: Loomio is decision-making software designed to assist groups with the collaborative decision-making process. It is a free software web application, where users can initiate discussions and put up proposals. More details on Loomio could be found at loomio.org . By packaging of Loomio in Debian we could enable easy installation of Loomio on Debian. It would foster collaborative decision making entirely using Free Software Loomio. The idea is to package all the dependencies of Loomio and get Loomio easily install able on Debian. Loomio is mostly written in Ruby but also includes some ?CoffeeScript and Javascript. The interns need not explicitly need to know Ruby/CoffeScript, but knowing it a bit would surely help.

  • Confirmed Mentor: Abhijith PA

  • How to contact the mentor: abhijith@debian.org, bhe on OFTC

  • Confirmed co-mentors: Raju Devidas (rajudev@disroot.org, libregeekingkid on OFTC)

  • Deliverables of the project:

    • The deliverables of this project would be getting Loomio and its dependencies into Debian.
    • In the process Interns will also need to update few of the existing Debian packages.
    • If we make some patches during Packaging process, we will try to get them merged upstream into Loomio's codebase.
  • Desirable skills:

    • Well versed with Git.
    • Familiarity with using Debian or any of its Derivatives.
  • What the intern will learn:

    • How software gets delivered to end users by Debian and other distributions.
    • Software packaging for Debian and in the process will gain an insight on how it is done for other distributions.
    • You will learn git very well as it is used at each step through the process.
    • The intern will improve their communication skills by interacting with the larger Debian community.
  • Application tasks:

    • Understand basics of packaging by starting to read Debian New maintainer's Guide https://www.debian.org/doc/manuals/maint-guide/index.en.html

    • Study the various Ruby/Node packages within Debian, you can take a look at the package source codes at https://salsa.debian.org/

    • Study the various packaging tools such as gem2deb, npm2deb and dh_make.
    • Discuss with Debian Ruby / Javascript team and package some beginner friendly Ruby/Node packages.
  • Related projects: links to some existing projects that are related.

Reproducible Builds

Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code. See https://reproducible-builds.org/docs/definition/ for a full definition.

This project is about both Reproducible Builds in Debian as well as about Reproducible Builds in general and you have several choices about the area(s) you get to work to improve on. See below.

  • Confirmed Mentor: Holger Levsen

  • How to contact the mentor: holger@d.o / h01ger on irc

  • Confirmed co-mentors: lamby@d.o (depending on the deliverable), santiago@nyu.edu (for in-toto), mattia@d.o

  • Deliverables of the project: either:

    • improve diffoscope (to find out how/what is part of the deliverables)
    • fix key packages (upstream and/or in Debian)
    • overhaul tests.r-b.o website, both structural and layout wise
    • integrate OpenSUSE/Fdroid results in tests.r-b.o
    • work on rebuilders (with in-toto/NYU's work)
  • Desirable skills: communication via email and irc, git, python, maybe shell.

  • What the intern will learn:

    • how to interact with the Debian community
    • how to interact with other free software communities (both upstream as well as other distros)
    • contributing to a project which is seen as interesting, challenging and important by many
  • Application tasks: provide a patch for fixing some unreproducibly and file a proper bug about it (requires to find out what that means and how to do it.) - or do a meaningful contribution to tests.r.b.o (same)

  • Related projects:

Projects ideas without confirmed mentors

The following are project ideas which nobody has agreed to mentor - at this point it is unlikely that anybody will step forward to mentor them this year, and without a mentor they can't go ahead as projects, so we do not recommend submitting proposals for them.

Kotlin and friends in Debian

Description of the project: Kotlin is a JVM language inspired by Groovy and Python, aimed to complement and replace Java in many uses, and is gaining popularity mainly in Android development. Gradle Kotlin DSL is on the other hand competing with the more usual Gradle Groovy DSL, and we cannot package it for Debian until we have Kotlin in. The Kotlin compiler, unfortunately, is partly written in Kotlin (since an early 0.6 version), and depends on bits and pieces of IntelliJ IDEA, so bootstrapping it is non-trivial. We have packaged some of the dependencies already, but there’s still a lot of work to do.

  • Confirmed Mentor: TBA (_hc? andrewsh?)

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors: TBA

  • Deliverables of the project: The deliverables of this project will mostly be finished packages submitted to Debian sid, both for new packages and updated packages.

  • Desirable skills: Building and packaging Java code, an understanding of git. Knowledge of various Java build systems would be very helpful.

  • What the intern will learn: Students will learn about building and packaging C and Java, and also about bootstrapping compilers.

  • Application tasks: TBD

  • Related projects: TBD