Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



+Cc: Christian, Hariom

On 17-04-2022 23:47, Jaydeep Das wrote:
> 
> Sorry for being late in submitting the proposal. My end semester
> examinations were over just yesterday so I somehow made this proposal
> during the exam time.
> 

Thanks for taking the time to send the proposal! I've Cc-ed the
corresponding mentors to bring their attention to this proposal.

I also noticed that you've submitted the proposal in the GSoC website
which was a nice move given the deadline is 19Apr2022 18:00 UTC.

> ===============
> View in Google Docs: 
> https://docs.google.com/document/d/1qq-Xze6dMGMSx3rPHD0VEc4f0a87KnHgbka1Dzpf8sc/edit?usp=sharing
> ===============
> Proposal
> ===============
> 
> Unify ref-filters with other pretty formats.
> 
> Name		:	Jaydeep Prapanch Das
> Email		:	jaydeepjd.8914@xxxxxxxxx
> Contact		:	+91 6026139802
> Github		:	JDeepD(https://github.com/JDeepD)
> Linkedin	:	https://www.linkedin.com/in/jdeepd
> Course		:	Computer Science and Engineering, 2025
> Time Zone	:	IST(+5:30)
> 
> ## About me:
> 
> I am a first year undergraduate at National Institute of Technology, 
> Silchar  pursuing B.Tech in Computer Science and Engineering. My 
> interests include FOSS development, Data Science and Robotics. I have 
> been writing Python, C and shell scripts for about 3 years now. Apart 
> from that I also blog[1] whenever I find an interesting topic to blog 
> about. During the GSoC period I also plan to blog about the new things 
> in git that I hope to learn.
> 
> [1]: https://jdeep.me/
> 
> ## Micro-Project:
> 
> I am still a newbie in git development and made my first (minor) 
> contribution in Feb 2022 [1]. This was a patch I made just to get 
> familiar with the patching and sending patches to the mailing list. For 
> my micro project, I worked on adding diff driver for the Kotlin language.[2]
> The main objective was to make an xfuncname regex which matches keywords 
> in Kotlin syntax so that they are considered as a single token
> whenever diffs are generated. Along with that, a word_regex regex pattern
> was also needed so that variable names, compound operators etc are not
> broken into individual tokens by git diff when there is a change in them.
> For ex,  if a == b is changed to  a != b , then the diff should show 
> that entire
> `==` token is replaced with the token `!=`. While working on this micro 
> project, I learned a lot about the contribution and review workflow of 
> git. It took 7 patches to incorporate all the reviews and suggestions so 
> yeah, It did require some patience :-).
> 
> 
> Minor patch(merged in master)
> [1]: 
> https://public-inbox.org/git/20220208092339.651761-2-jaydeepjd.8914@xxxxxxxxx/
> 
> Micro Project(merged in master)
> [2]: 
> https://public-inbox.org/git/20220312044832.718356-1-jaydeepjd.8914@xxxxxxxxx/
> 
> 
> ## Proposal:
> 
> Git has an old problem of duplicated implementations of some logic. For 
> example, Git has at least 4 implementations to format commands for 
> different commands. Previously, Olga Telezhnaya[1] and Hariom Verma[2] 
> worked on this and eliminated most of the duplicate logic. But still, 
> there are still some things left to do. Current task is to reuse 
> ref-filter logic in pretty.
> 
> [1]: https://github.com/telezhnaya/git/commits/format
> [2]: 
> https://public-inbox.org/git/pull.707.git.1597841551.gitgitgadget@xxxxxxxxx/
> 
> ## Previous Work:
> Previous GSoC mentee Hariom Verma worked on this[1]. He worked on 
> removing duplicate logic and reuse ref-filter’s logic in pretty. 
> However, as per his report, some tasks are still left to do.
> 
> -> Around 30% log related tests are failing
> -> Teach pretty-lib.{c,h} to handle incorrect formatting option
> -> Email/MBoxed commit format needs work
> 
> [1]: https://harry-hov.github.io/blogs/posts/the-final-report
> 
> ## GSoC Planning:
> The main objective would be to start from where Hariom left and make 
> further improvements in the related field if time permits.
> 
> Currently, because my end sems were just over yesterday, I am yet to do 
> a full reading/understanding of the pretty and ref-filter code. I plan 
> to first read the documentation of git-log and study the pretty formats 
> and their implementation. Next would be to read the code and understand 
> how it is working under the hood and try to find possible bugs and edge 
> cases where the tests fail. I have already gone through the various 
> must-read documentations suggested in the Hacking git[1] section of the 
> git-scm website:
> 
> My First Contribution Tutorial[2]
> My First Object Walk[3]
> 
> Apart from that, I also have a decent understanding of git internals, 
> objects and porcelain commands from the Git Internals[4] documentation.
> I want to start as early as possible since my main motivation for 
> contributing to git is to improve something that millions of people, 
> including me, use everyday in their day to day life.
> 
> 
> [1]: https://git.github.io/Hacking-Git/
> [2]: http://git-scm.com/docs/MyFirstContribution
> [3]: 
> https://github.com/git/git/blob/master/Documentation/MyFirstObjectWalk.txt
> [4]: https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain
> 
> 
> 
> Estimated Timeline:
> 
> -> April 20 - May 14
> Read the docs and go through the codebase. Make small code contribution 
> if possible.
> 
> -> May 14 - May 21
> Inactive Period
> The covid lockdown is almost lifted and I would need to report back 
> offline to college. So I would probably be busy for a week to get 
> settled there.
> 
> -> May 22 - June 5
> Community Bonding Period
> Get in touch with the possible mentors(Christian Couder and Hariom 
> Verma) and discuss the possible solutions.
> 
> -> June 6 - June 11
> Inactive Period
> Will be inactive for the week due to mid semester examinations
> 
> -> June 11 - July 24
> Coding Phase 1
> Fix the test cases that are failing
> Eliminate more duplicate logic in pretty.{c,h}.
> Update the documentation
> 
> July 25 - August 20
> Coding Phase 2 (part 1)
> Teach pretty.{c,h} to handle incorrect formatting options.
> Make improvements in email/mboxed commit formats.
> Update documentation
> 
> 
> August 22 - August 27
> Inactive Period
> Will be inactive for the week due to end semester examinations.
> 
> August 27 - September 19
> Coding Phase 2 (part 2)
> Start where it left off in part 1 of coding phase 2.
> 
> During the coding phase 1, I would be able to dedicate 4 - 5 hours every 
> working day. On weekends, I could dedicate the entire day or take a 
> break depending upon the number of assignments I get. During the coding 
> phase 2 part 1, I will be able to dedicate 4 - 5 hours easily except the 
> hours may decrease some days before the end semester examinations.
> 
> ## Blogging during the contribution period:
> I plan to write bi monthly/monthly blogs during the contribution period 
> which I would post on my personal website[1]. I would write about my 
> progress and the new things that I will learn when I contribute to git.
> I also plan to make a complete video tutorial after the GSoC period 
> about the contribution workflow in the git codebase since I believe it 
> would have greatly helped newcomers (like me) to get started quickly.
> 
> [1]: https://jdeep.me/posts/
> 
> ## Post GSoC:
> I would love to explore the git codebase and I am particularly 
> interested in the sparse index feature of git. I would also love to 
> co-mentor someone someday when I get more experience in the codebase. I 
> have also noticed that there are some lesser known/underrated features 
> of git ( like partial clones, sparse checkout, worktrees) and I plan to 
> make video tutorials on these topics too.
> 
> ## Closing Remarks:
> As a whole, I feel it would be a great learning experience for me as 
> this would be the first “really” big open source project where I would 
> be contributing to. I am really excited about being a part of the git 
> community.
> 
> Eagerly waiting for review.
> 
> Thanks,
> Jaydeep



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux