Thread (3 messages) 3 messages, 2 authors, 2023-04-04

Re: [GSoC][Proposal] Unify ref-filter formats with other --pretty formats

From: Christian Couder <hidden>
Date: 2023-03-31 20:38:50

Hi,

On Thu, Mar 30, 2023 at 7:21 PM Kousik Sanagavarapu
[off-list ref] wrote:
This proposal can also be read at
https://docs.google.com/document/d/1JBznA5n0WdWsbEskCeXxOnQuaa0urD89VtprxstLPzo/edit?usp=sharing
Thanks for your proposal!

[...]
Pre GSoC
========
I first got into Git’s source code around October, 2022 and have been
going through code of topics that I found interesting whenever I had
some time away from my college work. The following are the patches that
I submitted, from earliest to the latest:
Thanks for these patches!

[...]
Previous Work
=============
There has been much work done in the past in this area. It majorly comes
from previous Outreachy interns and GSoC students.

Olga Telezhnaia [off-list ref] did work in this area in the
fields of `cat-file` and `ref-filter` as a part of her Outreachy Internship
titled “Unifying Git’s format languages”. This work and also the work done
after that helped take ref-filter to a more general setting. She blogged
about her work here

https://medium.com/@olyatelezhnaya


Hariom Verma [off-list ref] did work in this area as his GSoC
project titled “Unify ref-filter formats with other --pretty formats”.
This is the major work done in this area and the final report can be
read at

https://harry-hov.github.io/blogs/posts/the-final-report

This work is very useful as this serves as a kind of documentation
and starting point to work towards the goal.

ZheNing Hu [off-list ref] has done major work under his GSoC
project titled “Use ref-filter formats in git cat-file” in the area of
git cat-file, but more relevant to this project are the changes done to
ref-filter. This work was a continuation of Olga’s work and made some
changes to ref-filter logic. His final report can be read here

https://github.com/adlternative/adlternative.github.io/blob/gh-pages/blogs/gsoc/GSOC-Git-Final-Blog.md

Nsengiyumva Wilberforce [off-list ref] did work in
this area as a part of his Outreachy Internship titled “Unify ref-filter
formats with other --pretty formats”.
Actually he has been working on this outside of Outreachy (and any
other program) as he didn't fulfill the requirements for being
accepted by Outreachy.
He got rid of the duplicate
implementation of the `signature` atom logic.
Even if the end goal is to get rid of duplicate implementations, for
now the ref-filter formats need to have equivalent atoms as what the
pretty formats have. Otherwise it will not be possible to fully
replace pretty formats using ref-filter formats. So for now the goal
of Wilberforce's patch is to add `signature` atoms to the ref-filter
formats.
This work can be read here

https://lore.kernel.org/git/20230311210607.64927-1-nsengiyumvawilberforce@gmail.com/ (local)

Difficulties
============
A major difficulty is backward compatibility, so any changes made to
remove the duplicated logic would need to be done so very carefully.
Any new tests added must also be very precise so as to efficiently
test the changes that are made.

There are also minor difficulties, such as the older tests failing
because of the changes made, so the work will have to be in such a way
that those tests are successful and the duplicated logic is refactored.

The Plan
========
I think Hariom’s final report of his GSoC project is a good starting
point for working on the project. The report lists the work which is
left in the “WHATS LEFT?” section, so I think the first issue to work
on would be to look into why “Around 30% of the log tests are failing”
and to work in the area of mbox/email formatting for commits. Work can
also be done to make pretty handle unknown formatting options.
More details about these would be nice.
From here, I can work on the remaining portion of the formats
Here too.
and can
remove the duplicated logic wherever possible, also writing tests to
ensure that everything works.

I can take the approach similar to what Hariom did before this.
Could you give more details about what Hariom did that you would also
like to do?
Estimated Timeline
==================

Misc
April 5 to May 3
- Continue to work on git and get more familiar with the code.

- Find and fix stuff.

- Work on stuff that interests me.

Community Bonding
May 4 to May 28
- Get myself familiar with the code of ref-filter.{c, h} and
  pretty.{c, h}.

- Communicate with my mentors about the approaches that can
  be taken to get to the goal.

- Working on Hariom’s branches (mentioned in his final report)
  and making changes on top of them.
Can you give links to these branches and tell a bit about the changes
you would like to make on top of each one?

Best,
Christian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help