On Sat, Aug 10, 2024 at 11:11:30PM +0300, AbdAlRahman Gad wrote: > Hi, > > My name is AbdAlRahman, I'm a senior computer science student. > I'm interested in working on the `Implement support for reftables in “dumb” > HTTP transport` project with the help of a mentor, I'm aware that the > project is not being worked on in GSOC but I was wondering if the project is > still not taken in general, and whether I can work on it outside of GSOC? The project wasn't picked up by any of the students, so it certainly is fair game to be implemented for any interested party. But... > If the project is not taken, what should I do next? > > I'm also aware that the mentors are busy with GSOC and might not have time > now. > I'm OK with starting whenever mentors are available, but hopefully, guide me > on what to do until then. ... that being said, I probably do not have the capacity to mentor you on it until the next GSoC. So you would ultimately have to figure out most of the parts yourself, unless you are willing to wait until next year's GSoC (or somebody else wants to mentor). Of course, you are free to send specific questions to the Git mailing list, and we try to do our best to answer such questions and help folks get their work landed. But the interaction would likely be way more limited compared to how mentoring looks like during the GSoC. > Steps I've taken so far: > > For git: > > I worked on one of the micro-projects, modernizing a test script, The patch > series is now merged in the `next` branch, there are still a few > modernizations left in the file which I will work on after the first series > is merged. > > This taught me git contribution workflow and to expect to do multiple > iterations of the patch. This is a good first step indeed. > For the project: > > I've read the resources provided in the project description for GSOC [1] in > addition to a video [2] and an article [3] by one of the possible mentors. > > This gave me a high-level overview of the ref-table backend. I'd point you into the direction of git-update-server-info(1). It updates auxiliary info for the dumb transport helper for the object and ref databases such that plain HTTP clients can figure out which files they need to fetch. The realization to have is that this is not required for the reftable backend anymore because the information is already encoded as part of the "tables.list" file. You will have to think about how to figure out the ref storage format of a remote and then fetch the correct set of files. So understanding that code as well as how the dumb HTTP transport is working will be the most important first steps. Patrick