git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
@ 2022-04-17 18:17 Jaydeep Das
  2022-04-18 17:43 ` Kaartic Sivaraam
  2022-04-22  8:42 ` Christian Couder
  0 siblings, 2 replies; 7+ messages in thread
From: Jaydeep Das @ 2022-04-17 18:17 UTC (permalink / raw)
  To: Git Mailing List


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.

===============
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@gmail.com
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@gmail.com/

Micro Project(merged in master)
[2]: 
https://public-inbox.org/git/20220312044832.718356-1-jaydeepjd.8914@gmail.com/


## 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@gmail.com/

## 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
  2022-04-17 18:17 [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h} Jaydeep Das
@ 2022-04-18 17:43 ` Kaartic Sivaraam
  2022-04-18 19:41   ` Hariom verma
  2022-04-22  8:42 ` Christian Couder
  1 sibling, 1 reply; 7+ messages in thread
From: Kaartic Sivaraam @ 2022-04-18 17:43 UTC (permalink / raw)
  To: Jaydeep Das; +Cc: Christian Couder, Hariom verma, Git Mailing List

+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@gmail.com
> 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@gmail.com/
> 
> Micro Project(merged in master)
> [2]: 
> https://public-inbox.org/git/20220312044832.718356-1-jaydeepjd.8914@gmail.com/
> 
> 
> ## 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@gmail.com/
> 
> ## 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
  2022-04-18 17:43 ` Kaartic Sivaraam
@ 2022-04-18 19:41   ` Hariom verma
  2022-04-19 14:07     ` Christian Couder
  2022-04-21 11:17     ` ZheNing Hu
  0 siblings, 2 replies; 7+ messages in thread
From: Hariom verma @ 2022-04-18 19:41 UTC (permalink / raw)
  To: Kaartic Sivaraam; +Cc: Jaydeep Das, Christian Couder, Git Mailing List

On Mon, Apr 18, 2022 at 11:13 PM Kaartic Sivaraam
<kaartic.sivaraam@gmail.com> wrote:
>
> +Cc: Christian, Hariom
>

Thanks Kaartic.

> > ===============
> > 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@gmail.com
> > 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@gmail.com/
> >
> > Micro Project(merged in master)
> > [2]:
> > https://public-inbox.org/git/20220312044832.718356-1-jaydeepjd.8914@gmail.com/
> >
> >
> > ## 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.

Can you provide more details on what has been done? And what’s still left?

ZheNing Hu also worked on "Use ref-filter formats in git cat-file"
last year, maybe you can include that too.


> > [1]: https://github.com/telezhnaya/git/commits/format
> > [2]:
> > https://public-inbox.org/git/pull.707.git.1597841551.gitgitgadget@gmail.com/
> >
> > ## 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.

Maybe include what’s left.

> > -> Around 30% log related tests are failing

Elaborate those.

I didn’t get the time to read all of it. Maybe Christian can add some
more pointers.

Thanks,
Hariom

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
  2022-04-18 19:41   ` Hariom verma
@ 2022-04-19 14:07     ` Christian Couder
  2022-04-20 12:11       ` jaydeepjd.8914
  2022-04-21 11:17     ` ZheNing Hu
  1 sibling, 1 reply; 7+ messages in thread
From: Christian Couder @ 2022-04-19 14:07 UTC (permalink / raw)
  To: Jaydeep Das; +Cc: Kaartic Sivaraam, Git Mailing List, Hariom verma

On Mon, Apr 18, 2022 at 9:42 PM Hariom verma <hariom18599@gmail.com> wrote:
>
> On Mon, Apr 18, 2022 at 11:13 PM Kaartic Sivaraam
> <kaartic.sivaraam@gmail.com> wrote:
> >
> > +Cc: Christian, Hariom
> >
>
> Thanks Kaartic.

Yeah, thanks Kaartic!

> I didn’t get the time to read all of it. Maybe Christian can add some
> more pointers.

Thanks Jaydeep for this proposal, and thanks Hariom for taking a look!

I had a small vacation from Thursday evening to this morning, and now
I think it's a bit late to comment on this just before the deadline.
So I think it should be submitted as is. I will try to give it a look
after the deadline.

Best,
Christian.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
  2022-04-19 14:07     ` Christian Couder
@ 2022-04-20 12:11       ` jaydeepjd.8914
  0 siblings, 0 replies; 7+ messages in thread
From: jaydeepjd.8914 @ 2022-04-20 12:11 UTC (permalink / raw)
  To: Christian Couder, Kaartic Sivaraam, Git Mailing List,
	Hariom verma



On 4/19/22 7:37 PM, Christian Couder <christian.couder@gmail.com> wrote:
> On Mon, Apr 18, 2022 at 9:42 PM Hariom verma <hariom18599@gmail.com> wrote:
> >
> > On Mon, Apr 18, 2022 at 11:13 PM Kaartic Sivaraam
> > <kaartic.sivaraam@gmail.com> wrote:
> >>
> >> +Cc: Christian, Hariom
> >>
> >
> > Thanks Kaartic.
> 
> Yeah, thanks Kaartic!
> 
> > I didn’t get the time to read all of it. Maybe Christian can add some
> > more pointers.
> 
> Thanks Jaydeep for this proposal, and thanks Hariom for taking a look!
> 
> I had a small vacation from Thursday evening to this morning, and now
> I think it's a bit late to comment on this just before the deadline.
> So I think it should be submitted as is. I will try to give it a look
> after the deadline.



Sorry for the late reply. Yeah, I couldn't make changes to the proposal I submitted
in the GSoC website. Nevertheless, I would still like fix some known breakages in 
t/t42[0-9].sh related to git-diff. Currently, I am working on a project for a college
hackathon which would be over by 21st April. So I will begin working on fixing the tests
from 22nd tentatively.

Thanks,
Jaydeep. 




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
  2022-04-18 19:41   ` Hariom verma
  2022-04-19 14:07     ` Christian Couder
@ 2022-04-21 11:17     ` ZheNing Hu
  1 sibling, 0 replies; 7+ messages in thread
From: ZheNing Hu @ 2022-04-21 11:17 UTC (permalink / raw)
  To: Hariom verma
  Cc: Kaartic Sivaraam, Jaydeep Das, Christian Couder, Git Mailing List

Hariom verma <hariom18599@gmail.com> 于2022年4月20日周三 02:23写道:
>
> On Mon, Apr 18, 2022 at 11:13 PM Kaartic Sivaraam
> <kaartic.sivaraam@gmail.com> wrote:
> >
> > +Cc: Christian, Hariom
> >
>
> Thanks Kaartic.
>
> > > ===============
> > > 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@gmail.com
> > > 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@gmail.com/
> > >
> > > Micro Project(merged in master)
> > > [2]:
> > > https://public-inbox.org/git/20220312044832.718356-1-jaydeepjd.8914@gmail.com/
> > >
> > >
> > > ## 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.
>
> Can you provide more details on what has been done? And what’s still left?
>
> ZheNing Hu also worked on "Use ref-filter formats in git cat-file"
> last year, maybe you can include that too.
>
>

Hi, maybe I can give some helps. I am thinking about this project occasionally
a few months. Due to the performance of the ref-filter, me, Olga, Hariom, our
patches doesn't merge to master branch.

So we'd better think of ways to improve the performance of the ref-filter.
I think there needs to be a huge refactoring here.

> Thanks,
> Hariom

Thanks.
--
ZheNing Hu

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h}
  2022-04-17 18:17 [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h} Jaydeep Das
  2022-04-18 17:43 ` Kaartic Sivaraam
@ 2022-04-22  8:42 ` Christian Couder
  1 sibling, 0 replies; 7+ messages in thread
From: Christian Couder @ 2022-04-22  8:42 UTC (permalink / raw)
  To: Jaydeep Das; +Cc: Git Mailing List

Hi,

On Sun, Apr 17, 2022 at 11:08 PM Jaydeep Das <jaydeepjd.8914@gmail.com> 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.

So here is a first review from me of your proposal. I think that you
cannot update your proposal on the GSoC web site, but it would be nice
if you could send an updated proposal to this mailing list soon.

> ## 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/

Nice that you already have a blog, as we indeed suggest GSoC
contributors to blog about their GSoC work.

> ## 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@gmail.com/
>
> Micro Project(merged in master)
> [2]:
> https://public-inbox.org/git/20220312044832.718356-1-jaydeepjd.8914@gmail.com/

Nice!

> ## 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@gmail.com/
>
> ## 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

Maybe: s/option/options/

> -> Email/MBoxed commit format needs work
>
> [1]: https://harry-hov.github.io/blogs/posts/the-final-report

It would be nice if you could elaborate on the different tasks that
are left to do, for example by answering the following questions:

  - What are the different test failures left? Can you find or guess
the cause of the failures?
  - What are the incorrect formatting options that pretty-lib.{c,h}
doesn't handle well yet? What currently happens and what should happen
when such an incorrect option is passed?
  - What kind of work is needed for the Email/MBoxed commit format?

> ## 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]

You say that you want to start where Hariom left, but you don't seem
to mention the tasks Hariom suggested in the planning.

> 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.

Ok, thanks for mentioning the inactive periods.

> -> 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.

The GSoC website says:

"The standard timeline accounts for 12 week coding projects. Mentors
and GSoC Contributors can agree to extend the coding period up to 22
weeks."

I think it would be nice if you could tell somewhere which of the
standard 12 coding weeks each of the Coding Phase corresponds to, for
example like:

"-> June 11 - July 24
Coding Phase 1 (coding weeks 1 and 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.

Ok.

> ## 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].

We prefer weekly blog posts if possible, especially during the coding
weeks, even if the posts are smaller.

> 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/

Nice idea!

> ## 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,
Christian.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-04-22  8:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-17 18:17 [GSoC][RFC][Proposal] Unify ref filters in pretty.{c,h} Jaydeep Das
2022-04-18 17:43 ` Kaartic Sivaraam
2022-04-18 19:41   ` Hariom verma
2022-04-19 14:07     ` Christian Couder
2022-04-20 12:11       ` jaydeepjd.8914
2022-04-21 11:17     ` ZheNing Hu
2022-04-22  8:42 ` Christian Couder

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).