Student Application Template
Name : Satyam Zode
Contact/Email/IRC nick:
Email: satyamzode@gmail.com
- IRC: Satyam_z (on OFTC, freenode)
Github: @satyamz
Background: I am a final year Computer Science student. I live in Pune, India (GMT +5:30). I am pursuing my undergraduate degree in Computer Engineering from Pune Institute of Computer Technology, Pune. I have been programming for the past 4 years. I am well versed in C/C++, Python3, and Golang. I have developed several scripts using Python3 as a part of a curriculum. Also, owing to the courses at the University. I have developed, backend projects and server side programming using Golang and Python3. I have a good understanding of Operating systems, Computer Networks, and Databases. I have also written both hobby code and college assignment codes for the same. I am also familiar with Version control and know my way around Git. Some of my projects can be found on my GitHub. As a part of my interactions with the Debian community, I have developed a better understanding of the importance of reproducible builds and how to make Debian packages build reproducibly and also submitted the patch for the same #818111.
I am right for this project because:
- I have a good programming background. I can code in C/C++, Python, and Golang.
- I have a good understanding of Debian package management.
- I have understood the need of reproducible builds and diffoscope.
Project title: Improving diffoscope tool and reproducibility of Debian packages
Project details: This project aims to improve diffoscope tool and fix Debian packages which are unreproducible in Reproducible builds testing framework. diffoscope recursively unpack archives of many kinds and transform various binary formats into more human readable form to compare them. As a part of this project I will be working on --ignore-profile flag, finish parallel processing, new comparators and other features listed in diffoscope wishlist. I will also try to examine Debian packages and will find unknown issues that are making Debian packages unreproducible and I will add those issues to the notes/issues.yml as well as I will fix packages to build reproducibly.
Synopsis: Improving diffoscope tool and making diffoscope more efficient. Improving reproducibility of Debian packages. Fixing individual Debian packages and documenting issues.
Benefits to Debian: It will make Debian packages reproducible. Thus, Debian will gain more user trust.
Deliverables:
- By the end of this summer following features will be ready:
- "Allowing users to ignore arbitrary differences" feature in diffoscope.
- Finish parallel processing in diffoscope.
- perform fuzzy-matching across archives.
- Patches to many Debian packages to build reproducibly.
- Addition of unknown issues which makes Debian packages unreproducible to notes/issues.yml.
- Improvements to diffoscope as per requirements.
- Weekly documentation of patches submitted to Debian and addition of new entries to notes/packages.yml
- By the end of this summer following features will be ready:
Project schedule:
Timeline:
Before Application Period ends:(Before March 25)
- Work closely with required tools and already patched Debian packages.
- Design an overview of the proposed project.
- Acquaint me with reproducible builds and relevant tools.
- Interact with the Debian community for designing the timeline.
During the application screening:(March 26 - April 22)
- Get hands-on experience with Diffoscope.
- Set up the development environment.
- Fix the unreproducible Debian packages.
- Track changes to the project roadmap in a publicly accessible document.
Community Bonding Period: (April 23 - May 10)
- Interact with the community and exchange information related to different issues mentioned in issues/issues.yml and diffoscope.
- Understand the problem "Allow users to ignore arbitrary differences" and work on a solution.
- Read and implement sample Python concurrent programs.
- Read about writing unit tests in Python using pytest.
- Discuss more on a user interface with the community.
- Better the project roadmap as new things are uncovered.
- Learning more about Debian community.
May 11 - May 26: Dormant period, occasional IRC and mailing list participation. University exams.
Official Coding Period Starts:
Week 1 - 2 (May 27 - June 9):
- Work on "Allow users to ignore arbitrary differences" part.
- Work simultaneously on unreproducible packages.
Week 3 - 4 (June 10 - June 22):
- Start work on Parallel processing part.
Submitting work for mid-term evaluation
- Start work on Parallel processing part.
Week 5 - 7 (June 23 - July 13):
- Continue working on parallel processing part.
- Work according to the feedback from the mentor(s) and community.
Week 8 - 10 (July 14 - August 3):
- Work on the "Perform fuzzy matching across archives" feature.
- Fix unreproducible Debian packages.
- Work on new file-format comparators.
Week 11 (August 4 - August 13):
- Buffer time for any unexpected delay/bugs.
- Fixing unreproducible Debian packages.
- Work on remaining features among proposed features.
Week 12 (August 15 - August 22): Suggested pencils down date
- Work according to the feedback from the mentor(s) and community.
Submitting work for final evaluation
- Work according to the feedback from the mentor(s) and community.
August 23: ( Firm pencils down date )
- Submit the finalized code which has been thoroughly tested and optimized.
Post GSoC 2016:
- Keep working on Debian reproducible builds project.
- Extend support and clarify queries related to reproducible builds.
- Improvements to diffoscope and reproducible build toolchain.
Communication:
- I will be regularly reporting to my mentor about the current progress and problems faced through IRC and/or email.
- Regular updates on work will be pushed to a personal blog and weekly progress updates sent to the mailing list.
Exams and other commitments:
- I will be working for a minimum of 40 hours weekly in order to achieve the proposed target well within time.
- I do not have any other commitments during the summer except the university exams mentioned above.
Other summer plans: No summer plans.
Why Debian?: Debian is the Universal Operating System and it can be found on everything from the embedded devices to the largest cluster systems, to the Space Station. The Debian community is very active and helpful for users as well as for fellow developers.
My previous Debian contributions:
- Patches submitted till now
Are you applying for other projects in SoC? No