Proposal: Unify ref-filter formats with other pretty formats My proposal is one of the ideas provided by Git-SCM, unifying the logic of ref-filter with pretty formats. What this means, is that I would be rewriting the formatting logic currently used in ref-filter, to be used in pretty. However, alongside doing this, I also have the goal of adding some small new functionality to the formatting, and possibly optimizing the logic as ZheNing did. Benefits of Proposal: Completing this would improve the quality of life of people contributing to the formatting. The erasure of duplicate logic would make it simpler to understand the logic being used to format, and therefore simpler for a prospective contributor to implement a new feature, or alter a current one. My Plan: I looked over the proposals and blogs of the previous undertakers of this proposal, and with their work and struggles in mind, I have compiled the following plan. Before I start working on the formatting logic, I want to learn to a usable degree how to use the following tools: Valgrind GDB Tmux Possibly Gprof and perf My reasoning for this is that reading Olga's blog, she commented how if she had started using the debugging assets earlier, she would have been far more on track. I want to go into this already knowing them so that I can apply them when needed, and not needlessly waste time. After this, I would focus on understanding the logic behind the formatting, by studying the relevant files and working on small contributions and patches, to better understand the system in place. From what I can see, most previous contributors took around a month before they started coding their main project. If possible, I would like to figure this out in under a month, but I know that that?s easier said than done. After I understand, to a well enough degree, the formatting logic, I want to start implementing the formatting options from other files. As I understand it, major progress has been made in unifying the formatting logic, however, there are still implementations that work separately from what we want the standard to be. Ideally, I would like to spend the majority of my time doing this, along with the debugging that goes along with it. If I have misjudged the amount of logic left to be rectified, then my plan for my time would be to work to erase the current problems with the formatting logic. Hariom mentioned that the following problems persisted after he finished GSoC: 30% of log tests are failing Pretty-lin.{c,b} does not have apt handling for incorrect formatting Olgas work needs attention A Lot of what ZheNing worked on covers the third problem, so I would like to tackle the first two. The reason for the first problem was due to the branch it was tested on not having mailmap logic, and also the second problem influenced it. Because of this, I think If I go this route, my first step would be to implement incorrect formatting handling. A simple form of this is already implemented, however it currently causes a segmentation fault, which would need to be debugged. Prior Commitments: To be completely transparent, over the summer I already have a job, however, it is a part time job at my local fair grounds where I help out in the mornings. It doesn?t take too much time out of my day, I just want to be transparent about it. I also will be spending a few days attending my cousin?s wedding in June, but I will be able to work on the project during this time, except for the day of the actual wedding. Projected Timeline: Week Goal Prior to work start In the time I have before the official start of work, I want to get to know the community better, and gain a good understanding of the workflow. Alongside this, I want to look into the aforementioned software tools, and also read Pro Git Book, as Olga said the later chapters were invaluable to her understanding. 1 - 3 During the first three weeks, I plan to spend a majority of my team looking into the formatting logic. It is an important step, and If I start working without knowing exactly what I?m doing then I could make a mistake and end up costing more time then I intend to. During this time I want to make small patches and contributions, to keep me in practice and help me develop my relationship with the community. 4-9 At this point, I want to start my actual work of unifying logic. At this point, I?m unsure of what file I would start with, but I believe that during the time allotted previously, I would be able to figure this out. 10-12 I am leaving this time period for debugging and optimization. It is inevitable that what I make won?t work in some unexpected way. In order to best improve my chances of having a master ready project by the end, I want to make sure I have the time to take the work I've done over the summer and turn it into a polished final product. After GSoC After GSoC ends I will go back to school, which will limit the amount of time I have available. However even so, I plan to stay connected to the git community in some way. At the very least, I plan to watch the mailing list, and provide commentary to other peoples patches, and at the most I would want to keep working on a major part of git, and finish what I started. Blogging: I am currently a stranger to blogging, as I never thought of any reason somebody would want to read my thoughts. However, I do keep a private journal that I use to remember what I do each month, and plan out the next month, which I think can be translated to a blog. If I am accepted, then I plan to have 14 total blog posts over the course of the project. 12 of them to summarize what I did each week, 1 before I do any work to provide a reference point for me at the end, and to help me collect what I am going in knowing, and 1 at the end, to be the summation of my experience, and describe my experience and work in full. Motivation: My motivation for participating in GSoC: I have always wanted to participate in an open source project, but I never knew how to take the first step. At times I considered contributing to some projects, but I was worried that my commits would get ignored, I would do it wrong and waste the time of people. When I say Google had a program to connect people to mentors and help get new developers into open source, I thought ?Wow, that sounds like exactly what I?m looking for.? I didn?t even find out about the stipend until later, which is an obvious plus. My ?Why Git??: When the list of organizations participating in GSoC 2022 came out, I went to the list, and compiled my own list of organizations I knew and would want to contribute to. I ended up creating a list of around 10 organizations, but when I looked at it, I just knew that Git stood out among them. It?s something that I use almost daily, and that I have always wanted to know more about the internals of. At that point I started looking into how to apply. To me Git is a backbone of all other programming projects, and exists as a testament to what open source can be. Closing remarks: I would be more than overjoyed if I can be accepted, but even aside from that, I think that I have already learned a lot from GSoC. The materials provided by Google and Git have given me a lot of advice and ideas for how I can personally contribute to something open source. In the case that I don?t get accepted, then I will still spend my summer contributing to open source. I may branch out a bit and focus on more then just git, bit the idea of contributing to a public project just excites me, and I know I have to follow through with it. ________________________________________ From: Jack McGuinness Sent: Tuesday, April 19, 2022 6:48 AM To: git@xxxxxxxxxxxxxxx Subject: [GSoC][RFC][Proposal] Unify ref-filter formats with other pretty formats Hi, thanks for checking out my proposal. I know that I really couldn't be any later with submitting this, but due to some time constraints I had to make do. Included is the plaintext version of my proposal, along with a link to the Google Doc version, which is what I am submitting to GSoC. Well I would love feedback, I waited way to long and I am just going to turn it in as is. Thanks for your time, -Jack McGuinness <jmcguinness2@xxxxxxxxxxxx> Google Doc - https://docs.google.com/document/d/1KhVGkSgBaya8Q6X9z7tUwVJegmurwMS0xmzYj9DRMMY/edit?usp=sharing Plaintext -