Contents
-
Coding Projects with confirmed mentors (GSoC and Outreachy)
- Add a Text Editor for Plinth to edit configuration files
- Benchmarking scientific packages for general and architecture specific builds
- Mail server support in FreedomBox
- Implement New User Interface for FreedomBox
- Quality assurance for biological applications inside Debian
- Reproducible builds for Debian and free software
- Non-Coding Projects with confirmed mentors (Outreachy)
- Projects ideas without confirmed mentors
The main page is at SummerOfCode2017.
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.
Coding Projects with confirmed mentors (GSoC and Outreachy)
Add a Text Editor for Plinth to edit configuration files
Description of the project: Plinth is a web interface to administer the functions of the FreedomBox, working very well so far and out of the box for newbies. However, for some advanced user we need configure some application or system directly, so that we want to edit configuration file (such us /etc/privoxy/config for Privoxy configuration), some times it is hard to edit config file via SSH, so a web-based editor is better. It is necessary for Plinth to adding a text editor, not only a textbox but a syntax highlighting enabled editor. The mission is make it easy to edit config files and make it alive as save it.
Confirmed Mentor: Tong Hui
How to contact the mentor:mail: tonghuix AT member.fsf.org, jabber/XMPP: tonghuix AT member.fsf.org
Confirmed co-mentors: Sunil Mohan Adapa (mail: sunil at medhas dot org, irc: sunilmohan on freenode/OFTC)
Deliverables of the project: Make Plinth more powerfull and adopt advanced user.
Desirable skills: Front-end knowledge and Python.
What the intern will learn: Applications configure and Debian system administration.
Application tasks:
Set up and run a FreedomBox. It can be in a virtual machine.
- Get a Plinth development environment. This could be any Debian system, but it's easiest to use Vagrant.
- Add a new multi-line text area at one of the module and a SAVE button, when click the save button, store the multi-line text content into a file.
Related projects:
FreedomBox home page: http://freedombox.org/
FreedomBox wiki: https://wiki.debian.org/FreedomBox
Plinth repository: https://github.com/freedombox/plinth
Benchmarking scientific packages for general and architecture specific builds
Description of the project: For Debian packages we need to strip optimisation options from upstream build system like for instance -march=native to make sure that the code will run also on those computers who are different from the one the package was actually built. There are reports by Debian Science members that the effect of those optimisation options is quite low and extra compilation on local machines do not result in a sensible gain of speed. The task for the student will be to do sensible performance tests of packages to get some valuable data to decide whether it makes sense to create new means to support users in doing local builds with better optimisation. Bonus points for the student if it turns out that optimised local builds are sensible to implement an easy way for the user to do so.
Confirmed Mentor: Name of the mentor
How to contact the mentor: (mail, IRC, etc)
Confirmed co-mentors: Andreas Tille <tille@debian.org>, Lumin <cdluminate@gmail.com>
Deliverables of the project: Comparison of real life examples with general Debian package and optimised local build
Desirable skills: Scientific background, comfortable with linear algebra (atlas, blas), comfortable with gcc and optimisation
What the intern will learn: The student will get an introduction into the Debian Science team and the team maintained packages. Some basic packaging skills will be teached if needed. The project is also supported by members of Debian Astro, Debian Med, ?DebiChem teams basically everywhere where high performance computing in science is needed.
Application tasks: Contact Debian Science list <debian-science@lists.debian.org> to discuss appropriate example cases to test. Please do all conversation via this list and add the tag [GSoC] to mail subject.
Related projects: DebianScience, Debian Astro, Debian Med
Mail server support in FreedomBox
Description of the project: Add basic mail server support to FreedomBox. One topic is to fetch emails from a 3rd party service provider, and to store them on a FreedomBox. Main focus is to use existing Debian packages and integrate them into the FreedomBox system. The mail server should receive emails via SMTP and allow emails to be accessed via encrypted IMAP (aka imaps). It would be a bonus if it is able to send and receive emails via Tor (aka .onion addresses), to allow two FreedomBox users to exchange emails without leaking metadata. http://people.skolelinux.org/pere/blog/A_Debian_package_for_SMTP_via_Tor__aka_SMTorP__using_exim4.html describe the SMTP via Tor idea. It would be nice if the server include good ways to filter out spam. An idea is to only allow encrypted emails signed by approved keys.
Confirmed Mentor: James Valleroy
How to contact the mentor: jvalleroy at mailbox.org, jvalleroy on IRC
Confirmed co-mentors: Sunil Mohan Adapa (sunil at medhas.org, sunilmohan on IRC)
Deliverables of the project:
Plinth module to tie together mail features on FreedomBox
Feature to fetch mail and store it on FreedomBox
Feature to exchange mail over Tor between FreedomBoxes
Desirable skills: Python, Django, Shell scripting
What the intern will learn: Basic Debian email configuration and web development, which will allow non-technical users to easily setup an email server with limited features but also low-maintenance.
Application tasks:
Set up and run a FreedomBox. It can be in a virtual machine.
- Get a Plinth development environment. This could be any Debian system, but it's easiest to use Vagrant.
Related projects:
FreedomBox home page: http://freedombox.org/
FreedomBox wiki: https://wiki.debian.org/FreedomBox
Plinth repository: https://github.com/freedombox/plinth
Implement New User Interface for FreedomBox
Description of the project: (For Outreachy) An ambitious goal of the FreedomBox project is to enable end users to manage their own servers at home by building a user interface that is as easy to use as installing and managing applications on a mobile phone. Although we have made significant progress in building a clear, simple and relatively easy to use interface there is much more left to be desired from such an interface. FreedomBox community believes that the user interface could learn from advances in user interfaces over the past few years and from other similar projects to make the interface more effective. Robert Martinez, the designer of the FreedomBox identity and the freedombox.org website has proposed a new card-based user interface. This project will involve implementing this design in Plinth which is the FreedomBox user interface written in Python and Django. Apart from work on HTML, CSS, Javascript and Django templates, it is expected that some backend views will need to implemented as part of the project.
Confirmed Mentor: Sunil Mohan Adapa
How to contact the mentor: mail: sunil at medhas dot org, irc: sunilmohan on freenode/OFTC
Confirmed co-mentors:Tong Hui (mail: tonghuix AT member.fsf.org, jabber/XMPP: tonghuix AT member.fsf.org)
Deliverables of the project: Implementation of new card based interface for FreedomBox as designed in #739
Desirable skills: HTML, CSS, Javascript
What the intern will learn: Building a web interface for a Django application, a javascript user interface toolkit
Related projects: Refactor FreedomBox Foundation Website
Quality assurance for biological applications inside Debian
Description of the project: The Debian Med project has packaged a lot of applications for bioinformatics. In GSoC 2016 a big step for Continuous Integration of the most important applications regarding to the usage statistics provided by popularity contest was done. While it would be important to continue this effort to cover even more applications with sensible testing in this work some other tasks to enhance the quality of the Debian Med packages were uncovered. Besides testing single packages it needs to be verified that related sets of packages are playing well together and are packaged in a way that the user can expect the maximum performance out of the packages (for instance by ensuring that MPI features are used if available and the hardware features are used as best as possible).
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 a bug out of the list 848326, 848329, 848332, 848333, 848334 and try fixing it. 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/Benchmarking
Reproducible builds for Debian and free software
Description of the project: We want to provide Debian users with a verifiable path between the binaries we ship and their source code. With “reproducible builds” independent parties should be able to create byte-for-byte identical packages from the same source. ReproducibleBuilds are about trust, quality assurance, and having free software up to its promises. Good progress has been made over the course of the past year, but a good amount of work remain on individual packages, toolchain issues, infrastructure, debugging tools, and documentation.
Confirmed Mentor: Mattia Rizzolo
How to contact the mentor:: mattia@debian.org, mapreri on IRC.
Confirmed co-mentors (depending on which subproject you're going to work on): Holger Levsen (h01ger), Reiner Herrmann (deki), Chris Lamb (lamby), Ximin Luo (infinity0)
There is room for more than one intern, probably we can mentor up to three people, as there are small and bigger tasks to work on:
Improve test and debugging tools:
Improve diffoscope. Examples: allow users to ignore arbitrary differences, perform fuzzy-matching across archives, finish parallel processing
Improve reprotest. Currently it does not work well - it has bugs and the configuration/usage is quite heavy. We'd like it to work much more smoothly, so that it can be used in more situations, including from inside higher-level scripts such as debrepatch.
Improve tests.reproducible-builds.org: allow more distributions to be tested easily, create web pages for all distros from the same codebase in conjunction with a db, improve the web design and user experience
Improving reproducibility of Debian packages:
Analyzing why packages are not reproducible.
Fixes for identified issues: both their root cause and easy to use work-arounds; we recently identified a new source of randomness (build-path variations) and that will require quite some work on several toolchain packages
- Patches for individual Debian packages.
Improving Debian infrastructure:
Implement support for .buildinfo files in dak
Help collaboration across distributions
Implement a shared database for package status and common issues.
Desirable skills: We are a diverse team, ready to help with knowledge in many different areas. The following list of skills is both incomplete and too long, but anyway, useful skills are:
- To improve Debian packages: basic understanding of how Debian packages are made, a thrill for investigations, a taste for fun hacks.
- Python for diffoscope.
- Perl for strip-nondeterminism.
- Shell, Python and SQL for tests.reproducible-builds.org.
- Web design to enhance tests.reproducible-builds.org.
- Basic web editing (Markdown, HTML) for documentation.
What the intern will learn:
- A lot about the many different ways software can be built.
- How to make build systems reproducible.
- Many details (that you might regret learning) about how our plumbing tools work.
- How to interact with other Debian developers and research suitable solutions with them.
- How to design easy-to-use development tools.
Related urls:
Non-Coding Projects with confirmed mentors (Outreachy)
LTSP Manager
Description of the project: Adapt sch-scripts into a new project "ltsp-manager", primarily through internationalization and localization as well as documentation.
Sch-scripts is a graphical tool that assists with management of a classroom computer lab, managing users and network booted computers with LTSP, and is used in more than 1000 schools in Greece along with the epoptes user monitoring software.
Traditionally, maintaining an LTSP environment requires comfort with a commandline interface, but sch-scripts provides a graphical tool that simplifies the installation, configuration and management of an LTSP classroom.
Epoptes allows the teacher to monitor or assist users in the computer lab, as well as send messages, boot and shut down computers.
Both LTSP and Epoptes are present in Debian, and internationalizing sch-scripts is an important step towards making the same interface used successfully in Greek schools available to all Debian and Ubuntu users.
Confirmed Mentor: Vagrant Cascadian
How to contact the mentor: vagrant@debian.org, vagrantc on IRC
Confirmed co-mentors: Alkis Georgopoulos (alkisg@gmail.com, alkisg on IRC)
Deliverables of the project:
- An English version of ltsp-manager, translated into Greek.
- Wiki documentation of ltsp-manager.
Desirable skills:
- Fluent in English and Greek languages.
- Able to translate from Greek to English and back again.
- Familiar with sch-scripts and the software it interacts with (epoptes, ltsp), and the way they're used in schools.
- Able to use a wiki for documentation.
What the intern will learn:
- Internationalization and localization processes in free software projects.
- Coordinating translations and peer review processes.
Application tasks: Update the translatable strings in a .ui file to English from https://bazaar.launchpad.net/~ts.sch.gr/sch-scripts/trunk/files/head:/share/sch-scripts/ Submit a screenshot of the output produced by "glade".
Related projects:
Projects ideas without confirmed mentors