Name: Brandon Fairchild
Contact/Email: csbit32 at gmail dot com, IRC: nerith on freenode/OFTC, Github: https://github.com/nerith
Background:I am a third year Computer Science student with an interest in free and open source software development and system administration. I have been involved in programming for the past five years. During that time I have programmed in C, Java, Python, BASH scripting, and other languages. I have taught myself most of the languages that I know. Also, I have a basic understanding of unit testing and I have experience using git for version control. Currently, I run Linux on all of my computers, specifically Arch Linux and Debian. I am familiar with web development since I took some classes on the subject and practice it in my spare time. I am the best person to work on this project because I understand what needs to be accomplished, have the skills that are needed, and I am willing to learn.
Project: Debian Continuous Integration - Web Interface, Multiple Architectures and Suites
https://wiki.debian.org/SummerOfCode2014/Projects/DebianContinuousIntegration
Project Details
Currently, debci does not give enough useful and detailed information to Debian package maintainers. Its current web user interface at http://ci.debian.net only shows overall statistics such as the run duration and the number of passing and failing packages. Log files are displayed on seperate pages away from the selected package. The current interface does not allow for the viewing of packages by architecture (i386, amd64, ARM, etc.) or suite (Debian stable, testing, unstable).
The following will be done with this project:
Multiple architecture and suite support:
- (ARM, i386, amd64) support will be added, support for different suites (Debian stable, unstable, testing, etc.)
Improved web interface:
- Rewrite the web user interface as a Rails or Sinatra application to reduce dependency on Javascript
- Display list of passing and failed packages that are selectable and will display useful parts of the log file
- Selected package will display the last time it was tested and details on why it passed or failed testing (dependencies, other problems specified in log file). As of now, all of this information is provided in log and json files. This information would be useful to package maintainers.
- Searching of packages (filters, specifications by architecture and suite)
Package Testing Data:
- Detailed testing information about each tested package will be provided with each package. Relevant package testing details will be displayed for the selected package and will support viewing information for the package testing results on multiple architectures and suites.
Debci Documentation:
- Documentation will be provided to allow others to test and use debci on their own machines and help maintain the project.
- Show how to setup an instance of debci
- Detailed documentation on how debci functions through the use of code comments and written documentation.
- Communicate with the Ubuntu Continuous Integration team
- If possible, communicate with other student working on debci
Synopsis: Debci and its web interface will be improved to provide more useful details to package maintainers.
Benefits to Debian: Improvement of debci would increase the speed at which Debian is released. The Debian Continuous Integration Project would benefit the package maintainers and relevant teams. The project will allow package maintainers to check if packages are passing or failing the testing process and provide them with more useful information to help them with package maintenance. It would also help to improve the quality of Debian packages.
Deliverables: Multiple architecture and suite support, documentation, and an improved web user interface along with detailed package testing data.
Project Schedule
[Note:] Code documentation will be done throughout the coding period.
BEFORE CODING PERIOD
Now to May 19:
- Get familiar with the source code of debci / Bug fixes and improvements to debci
- Research multi-arch and suite support
- Get to know mentors and community
- Preparation/research to determine what to use to write the web application (Sinatra or Rails)
CODING PERIOD 1
May 19 to June 1:
- Improve the web interface by rewriting as web application with determined framework
June 2 to June 16:
- Add history page with support for multi-arch and multi-suite support
- Add useful package details (detailed information from log and json files, errors)
June 17 to June 22
- Testing of web UI; package details selection and display
- Change user interface based on feedback
June 23 to June 27:
Mid-term evaluations, bug fixing, polish
CODING PERIOD 2
June 28 to July 12:
- Add any additional web UI improvements that are needed and write tests
- Get feedback from package maintainers
July 13 to July 27:
- Add improved package search functionality to the debci web interface
- Support for architectures (ARM, amd64, i386, etc.)
- Support for suites (Debian stable, testing, unstable)
July 28 to August 13:
- Overall testing of web interface and searching functionality, bug fixing, polish
August 14 to August 17:
- Finalize documentation on how debci works and instructions for others to run a local instance of debci, bug fixing
August 18 to August 22:
Final evaluations
Exams and other commitments: I do not have any exams during the coding period.
Other summer plans: See my application on Melange.
Why Debian?: Debian was one of the first Linux distributions that got me interested in Linux and free and open source software. It is one of my distributions of choice due to the stability and quality of releases. I want to give back to Debian for the value it has provided to me.
Are you applying for other projects in SoC? I am not applying for any other projects.