Improving Distro tracker to better support Debian teams

This is a suggestion for the kind of information we'll find useful from students in their submissions. Remember -- you're going to be committing to several months' work. The more information and planning you can provide up-front, the more we (and Google!) will have to go on when we're ranking your application. Do not forget adding your submission at SummerOfCode2018/StudentApplications

Name: Chirath R

Contact Information

Background Information

I am an undergraduate Computer Science and Engineering student at Amrita School of Engineering, Amritapuri, India. My interest in contributing to open source projects began when I joined the Free and Open Source (FOSS) club at our university. The club run by the students create an ecosystem that enables them to support each other for their technical growth. Being a senior member of the club, I took the initiative to build the club management system (CMS). The CMS web application was build in Python Django and Bootstrap 4 in which I had some prior experience. I also lead the team of four students who were helping me in building the application.

Apart from web development, I have a great interest in Machine Learning and Artificial Intelligence. My undergraduate thesis is on https://github.com/Chirath02/picar, that can navigate through a track. Working on this project gave me an exposure to the area of self driving-cars and applications of machine learning and AI. I feel that my experience and skill sets matches the project I have applied to the Debian community. It would be a great opportunity to be part of the community and contribute for the greater good.

Skills: Python, Django, Javascript, HTML/CSS, C,C++, Java, Git

Title: Improving distro-tracker to better support Debian Teams

Synopsis: Improve distro-tracker by adding team features and packages overview to better support Debian teams workflow.

Project Details: This project aims to improve distro-tracker by designing and implementing new features to better support Debian team workflow. The project will involve implementing features from Package Entropy Tracker(PET) in the team pages with enhancements.

The team's overview will feature a birds-eye view of all the packages maintained by a team. This will include information like which packages are ready to upload, have new upstream releases, have issues with watch files or are work in progress.

The project will also include contributions and bug fixes to improve Distro tracker.

Benefits to Debian: Distro tracker is the central hub for data about all packages maintained by teams. Distro tracker also manages teams, so it would be natural for it to support the team's workflow. There should be an option for a team to view an overview of all the packages that they maintain. Implementing this feature it would help teams with large packages to all the information about their packages from a single page, making the workflow easier.

Deliverables: Team overview support for distro-tracker and enhancements to support Debian teams workflow. Bug fixes and general improvements to distro-tracker.

Project schedule:

Week

Date

Tasks

Upto April 23

- Fix open bugs in Distro tracker.

- Learn Test driven development.

- Understand Gitlab api.

April 24 - May 13

- Understand how PET works.

- Understand a Team’s workflow in Debian.

- Talk to the community and decide what data are important and required in the the team overview.

Phase 1

1

May 14 - May 20

- Implement the database that are required to handle the data for teams packages.

2

May 21 - May 27

- Implement modules to get data about upstream package.

3

May 28 - June 3

- Implement modules to get bug reports data from bugs.debian.org.

4

June 4 - June 10

- Implement modules to get bug reports data from salsa.debian.org using the Gitlab Api.

Phase 2

5

June 11 - June 17

- Classify packages based on classes like Ready to upload, new upstream etc.

6

June 18 - June 24

- Implement package list page for teams like in Debian PET.

- Package, repository, archive, bugs, upstream, classes etc...

7

June 25 - July 1

- Implement modules to get Lintian check, CI/Rep errors.

8

July 2 - July 8

- Implement modules to get Deb check and Buildd status.

Phase 3

9

July 9 - July 15

- Option to sort, filter and show or hide fields show in the package overview

10

July 16 - July 22

- Create a UI using Bootstrap 4 to better show all the data, hiding data that are not very important.

11

July 23 - July 29

- Bug fixes and other improvements.

12

July 30 - August 5

- Polish the final code, update documentation and submit the final work.

Exams and other commitments: No other commitments during the duration of GSoC.

Where will you work: Mostly on campus and few days from home.

Other Summer Plans: None

Why Debian?: I have been a linux user for more than 3 year and switched to Debian about 2 year. The stability of Debian is one that impressed me a lot, and the awesome wiki pages with excellent documentation. I wanted to contribute to Debian as I use it everyday and this project seems to be the perfect way to start contributing to the Debian

My previous Debian contributions: I have made 4 bug fixes in Debian distro-tracker and reported 1 bug. This has made me go through the codebase, understand the TDD way of development and proper documentation.

Merge requests: salsa.debian.org/qa/distro-tracker/merge_requests/

Bug reports: salsa.debian.org/qa/distro-tracker/issues/

Other contributions: AMFOSS: I actively contribute the club management system for the Open source club at my university. Latest contribution include a system to check status updates sent by the club members and a system to automatically mark attendance based on WiFi.

Learned Test Driven development(TDD) to work on distro-tracker: https://github.com/Chirath02/python-tdd

Blog post: https://chirathr.wordpress.com/2018/03/21/contributing-to-debian-distro-tracker/

Tools I use:

Are you applying for other projects in SoC?: Yes I am applying for filesDB project in GFOSS, but given a choice I would like to contribute to Debian.