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.