Differences between revisions 17 and 18
Revision 17 as of 2012-04-06 09:32:22
Size: 11216
Editor: ?Abhishek Kumar
Comment:
Revision 18 as of 2012-04-06 11:40:43
Size: 11226
Editor: ?Abhishek Kumar
Comment:
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
    4. The current “incremental run” feature does not allow limiting the recheck of already checked packages. As a result of which, the [[http://lintian.debian.org|Lintian Reports]] gets updated only after a full run of Lintian.     4. The current “incremental run” feature does not allow limiting the recheck of already checked packages. As a result of which, the [[http://lintian.debian.org|Lintian Reports]] may contain very dated reports until a full run is done.
  • Name Abhishek Kumar

  • Contact/Email: abhi.imf@gmail.com

  • Background: I am a final year undergraduate student studying Information Systems at BITS Pilani University, Goa Campus, India. I am a very passionate programmer, I first started coding around 7 years ago in C++ when I took Computer Science in High School. I like doing random technical things whenever I get time, be it web development, shell scripting, learning a new language or checking out a new software. I am a regular reader of Linux Journal and Digit (an Indian Technology magazine) and also like watching technology podcasts like Hak5 and Linux Journal tech tips whenever I get time.

  • Technical Skills

    • Important courses done: Computer Programming, Operating Systems, Data Structures and Algorithms, Object Oriented Programming and Design, Structure of Programming Languages, Software Engineering, Computer Organisation and Architecture, Cryptography, Data Storage Technologies and Networks, Software Development for Portable Devices, Software for Embedded Systems, Management Information Systems.

    • Languages: Perl, C, C++, Java, HTML, Javascript, Actionscript, Verilog HDL.

  • Internships/Projects

    • Internship 1 (July, 2011 - December, 2011 at NetApp India Pvt. Ltd., Bangalore ): I worked on a project QA Continuous Integration System which focused on improving the QA suite that was being used for the testing of one of their product. The product was being developed using the software development approach of Continuous Integration, but the then being used testing tools were not robust enough to implement proper automation. My primary task was to improve the testing suite so that the system thus generated could be successfully deployed in a CI production environment. Apart from that, the project focused on ways of reducing the execution time of the test scripts and identifying a way of implementing selective testing, giving the developers an ability to run only specific tests instead of running all the tests in the suite, to check the integrity of the build. All the scripts that made up the system were written in Perl with occasional use of shell scripts. Finally it also involved the development of web based user interactive dashboard, using HTML, CSS and ?JavaScript, for displaying the results of the test execution.

    • Internship 2 (May, 2010 - July, 2010 at HEC Ltd., Ranchi ): Developed an application for Database Management of information about Security Guards using VB and Oracle database.

    • Academic projects

      • Developed an application “Text Away” for Android devices for saving and automatically sending the saved messages based on the user’s real time location and/or current time.
        • Language/Tools used: Java, XML, Android SDK, Eclipse IDE.
      • Developed an application “Friend Locator” for Android devices which provided real time location of a friend having a GPS enabled Android device as a part of Software Engineering Course.
        • Language/Tools used: Java, XML, Android SDK, Eclipse IDE.
      • Developed a terminal application in C for Linux based OS as a part of Operating Systems course.
      • Developed a basic LC3 in Verilog HDL as a part of Computer Organisation and Architecture course.
      • Some basic Java projects as a part of Object Oriented Programming and Design Course.
      • Currently, I am working on creating a Beowulf cluster, using the OpenMPI architecture, which implements its own load balancing and fault tolerance schemes, as a part of my Data Storage technologies and Networks Course.

  • What makes you the best person to work on this project?

The current Lintian tool and the Harness script are written in Perl and the new Harness tool, that I am proposing will also be developed in Perl. As I have already mentioned, I did 6 months internship last semester at ?NetApp which has given me an excellent practical knowledge and experience with programming in Perl, besides giving me an industry level exposure to QA, which I feel will go a long way in helping me to come up with a test suite for Harness as well as in the development of Harness. Also, my current work on creating a cluster will definitely help me a lot in extending Harness over multiple nodes. Apart from that, I really believe that this project can create significant difference in how things are being done and I will take this chance of contributing something to the Open Source Community very seriously. I am confident that I am both technically and mentally capable for implementing this project.

  • Project title Create Lintian reports frontend

  • Project details: Lintian, the Debian package checker has a tool called "Harness" to publish the results of its quality checks on Lintian Reports. Currently, Lintian and Harness have the following limitations:

    1. Harness is not included in the Lintian package, and needs to be run from the source tree.
    2. Its output is highly Debian branded.
    3. Additionally, the Harness currently requires filesystem access to a Debian mirror.
    4. The current “incremental run” feature does not allow limiting the recheck of already checked packages. As a result of which, the Lintian Reports may contain very dated reports until a full run is done.

This project proposes:

  • The Harness tool be fixed/rewritten from scratch so that it works as a standalone tool, its output can be easily branded to the distribution that uses it, and so that HTTP access to a mirror is sufficient, instead of filesystem access. [ Addresses issues 1, 2, 3 ]
  • To provide an option for rechecking already checked packages over several days/incremental runs, either by limiting the time allotted for the check, or the maximum number of packages over which the tests rerun, or some other criteria. [ Addresses issue 4 ]
  • Since, the tool will have to rely on Lintian for achieving its complete functionality. So, it will attempt to use Lintian in the best way possible i.e, maybe run multiple instances of Lintian on same machine or on different machines for analyzing different parts of archive in parallel.
  • To extend Harness to be easily adaptable by other distributions. If any other distribution decides to come up with a tool like Lintian for checking its own packages i.e, maybe Fedora starts developing a tool to check .rpm packages. Then, it could use Harness just by making sure that the tool is having the same sets of API for communication with Harness as Lintian has.
  • To come up with a new the web frontend for displaying the reports, based on the missing features or the improvements described in the Lintian bugs.
  • To come up with an automated test suite for testing Harness along with the test scripts.
  • And finally, to prepare a thorough documentation for Harness.
  • Synopsis: To develop a standalone tool Harness, which will drastically improve the existing Lintian based package checking architecture. And write a new automated testing suite for testing Harness.

  • Benefits to Debian

    • Harness will not require filesystem access to the mirror for running the analysis, making the testing procedure more convenient.
    • There will be an improved web interface for viewing the reports.
    • The new option for incremental runs would help in more frequent updates of Lintian Reports.

    • Harness will distribute the package execution on multiple nodes. This might help in reducing the analysis time.
    • It could be easily adopted by other distributions, helping Debian in creating another significant contribution to the entire Linux community.
  • Deliverables:

    • New standalone Harness tool for performing package checking using Lintian and generating reports for the analysis.
    • A better web interface for viewing the reports.
    • User manual for the new Harness tool.
    • New automated test-suite and test scripts for testing Harness.
  • Schedule:

    • April 24th - May 25th

      • Communicate with mentor regarding the project on a regular basis to get his views and properly explain my ideas so that we have one common goal in mind.
      • Study about black box testing in detail and start working on designing the test suite for Harness.
      • Get an indepth knowledge on how Lintian works and how it uses harness script.
      • Read bugs on existing web frontend. And design the layout of new reports to be generated and also the improved web interface for displaying the reports.
      • Research on the best possible approaches for distributed execution of Lintian, incremental runs and accessing HTTP mirrors through Lintian.
    • May 26th - June 26th

      • Set up the development environment.
      • Research on the best possible approaches for distributed execution of Lintian, incremental runs and accessing HTTP mirrors through Lintian.
      • Research on the ways for devloping Harness.
      • Develop the Test Suite for Harness.
      • Design the various test cases for testing Harness.
      • Design the structure of documentation.
    • June 27th - July 20th

      • Start working on the development of Harness.
      • Create a basic Harness tool which uses Lintian to analyze the packages and generate a report.
      • Add support for Incremental runs.
      • Implement the distributed execution of Harness.
      • Write tests.
      • Improve documentation.
    • July 21st - August 5th

      • Test the tool against different archives and mirrors. Get feedback.
      • Fix bugs, if any.
      • Add the module for accessing the mirror over http.
      • Write tests.
      • Improve documentation.
    • August 6th -

      • Test the tool against different archives and mirrors. Get feedback.
      • Fix bugs, if any.
      • Further improve the web interface.
      • Finish documentation.
  • Exams and other commitments: No!

  • Other summer plans: : I will be taking up a job with Oracle sometime during July( Exact date for joining has not been disclosed yet ). But, I know for a fact from the HR at Oracle and my seniors working over there that the initial 1 month is basic training and I would not be a part of any live project. I assure you with complete confidence that this will not in any way interfere with my commitment to work around 36-40 hours/week for GSOC.

  • Why Debian?: I have been using Linux for about 5 years now. Though an Ubuntu user, I have always known about Debian and have always respected the organization for its contribution to the Linux world in particular and to the Open source community in general. Getting an opportunity to contribute something to the Debian community would be something very prestigious for me.

  • Are you applying for other projects in SoC? No.