- Projects with confirmed mentors
- Projects ideas without confirmed mentors
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: email@example.com and @_hc on IRC
Chirayu Desai, firstname.lastname@example.org and @cdesai on IRC
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.)
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: email@example.com
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
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: firstname.lastname@example.org, kanashiro on IRC
Confirmed co-mentors: Bastian Blank <email@example.com>
Deliverables of the project: A functional and high tested web application deployed somewhere.
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)
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.
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: firstname.lastname@example.org, I would insist on regular 1:1 meetings (over Zoom)
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
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: email@example.com
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
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
Confirmed Mentor: Abhijith PA
How to contact the mentor: firstname.lastname@example.org, bhe on OFTC
Confirmed co-mentors: Raju Devidas (email@example.com, 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.
- 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.
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.
Related projects: links to some existing projects that are related.
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: firstname.lastname@example.org / h01ger on irc
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)
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