{"thread":{"id":"61198","subject":"[GSoC] Microproject help","startedAt":"2024-03-25T13:15:14Z","lastAt":"2024-04-02T10:35:06Z","messageCount":13,"participants":["vk","Karthik Nayak","Eric Sunshine","Junio C Hamano","Patrick Steinhardt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"491449","messageId":"51647635a10e31e800f87e8bd4a2e62c@vkabc.me","threadId":"61198","inReplyTo":null,"subject":"[GSoC] Microproject help","fromName":"vk","fromEmail":"g@vkabc.me","sentAt":"2024-03-25T13:10:03Z","receivedAt":"2024-03-25T13:15:14Z","isPatch":false,"sender":{"key":"g@vkabc.me","avatar":null},"body":"Hello all,\n\nI'm Vk and I work as a software engineer. I am interested in \ncontributing to git repository. Apologies for the late start as I only \nstumbled upon GSoC recently and git project interested me as I use it \neveryday at work and it would be meaningful for me to contribute to it. \nEven if I am not chosen, it will be great if I can start learning to \ncontribute to git open source.\n\nFor the microproject, I have looked into the lists for 2024 and it seems \nthat all the projects have been taken except for `Replace a \nrun_command*() call by direct calls to C functions`. However, it seems \nthat the issue has been solved. The command I ran to search throughout \nthe repo is `git grep 'run_command*('` and the search result returns \nrun_command functions which I assume are essential.\n\nIf there is any low hanging fruits that you can suggest to me for the \nmicroproject, that will be great. I will also be searching throughout \nthe mailing list to see if there are any potential microproject to work \non.\n\nBest Regards,\nVk\n"},{"id":"491486","messageId":"CAOLa=ZRrmyZ48C5r8MWioyjySWdKtLxhtDBg5F2tRsExHaR-fg@mail.gmail.com","threadId":"61198","inReplyTo":"51647635a10e31e800f87e8bd4a2e62c@vkabc.me","subject":"Re: [GSoC] Microproject help","fromName":"Karthik Nayak","fromEmail":"karthik.188@gmail.com","sentAt":"2024-03-25T18:25:07Z","receivedAt":"2024-03-25T18:25:09Z","isPatch":false,"sender":{"key":"karthik.188@gmail.com","avatar":"https://avatars.githubusercontent.com/u/1786334?v=4"},"body":"vk <g@vkabc.me> writes:\n\nHello!\n\n> Hello all,\n>\n> I'm Vk and I work as a software engineer. I am interested in\n> contributing to git repository. Apologies for the late start as I only\n> stumbled upon GSoC recently and git project interested me as I use it\n> everyday at work and it would be meaningful for me to contribute to it.\n> Even if I am not chosen, it will be great if I can start learning to\n> contribute to git open source.\n>\n> For the microproject, I have looked into the lists for 2024 and it seems\n> that all the projects have been taken except for `Replace a\n> run_command*() call by direct calls to C functions`. However, it seems\n> that the issue has been solved. The command I ran to search throughout\n> the repo is `git grep 'run_command*('` and the search result returns\n> run_command functions which I assume are essential.\n>\n\nWhen I ran the same, I saw around 135 results. Are you saying that\nthey're all essential?\n\nFor e.g. In `builtin/gc.c:maintenance_task_pack_refs`, shouldn't you be\nable to replace the `run_command`?\n\n>\n> If there is any low hanging fruits that you can suggest to me for the\n> microproject, that will be great. I will also be searching throughout\n> the mailing list to see if there are any potential microproject to work\n> on.\n>\n> Best Regards,\n> Vk\n\nI also see the other microprojects are still applicable, since most of\nthem have multiple occurrences throughout the code.\n\nWish you the best.\n- Karthik\n"},{"id":"491511","messageId":"CAPig+cRLUra6RObK82nvm1S_goK8q2CXe3A7EeCFA7xqhJCdMg@mail.gmail.com","threadId":"61198","inReplyTo":"51647635a10e31e800f87e8bd4a2e62c@vkabc.me","subject":"Re: [GSoC] Microproject help","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2024-03-25T20:51:55Z","receivedAt":"2024-03-25T20:52:07Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Mon, Mar 25, 2024 at 11:40 AM vk <g@vkabc.me> wrote:\n> For the microproject, I have looked into the lists for 2024 and it seems\n> that all the projects have been taken except for `Replace a\n> run_command*() call by direct calls to C functions`. However, it seems\n> that the issue has been solved. The command I ran to search throughout\n> the repo is `git grep 'run_command*('` and the search result returns\n> run_command functions which I assume are essential.\n>\n> If there is any low hanging fruits that you can suggest to me for the\n> microproject, that will be great. I will also be searching throughout\n> the mailing list to see if there are any potential microproject to work\n> on.\n\nSearching the mailing list for \"#leftoverbits\"[1] can be a good way to\ndiscover little tasks which may be suitable for a GSoC microproject.\n\n[1]: https://lore.kernel.org/git/?q=%23leftoverbits\n"},{"id":"491523","messageId":"xmqq1q7yhupa.fsf@gitster.g","threadId":"61198","inReplyTo":"CAPig+cRLUra6RObK82nvm1S_goK8q2CXe3A7EeCFA7xqhJCdMg@mail.gmail.com","subject":"Re: [GSoC] Microproject help","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-03-25T21:23:29Z","receivedAt":"2024-03-25T21:23:34Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Sunshine <sunshine@sunshineco.com> writes:\n\n> On Mon, Mar 25, 2024 at 11:40 AM vk <g@vkabc.me> wrote:\n>> For the microproject, I have looked into the lists for 2024 and it seems\n>> that all the projects have been taken except for `Replace a\n>> run_command*() call by direct calls to C functions`. However, it seems\n>> that the issue has been solved. The command I ran to search throughout\n>> the repo is `git grep 'run_command*('` and the search result returns\n>> run_command functions which I assume are essential.\n>>\n>> If there is any low hanging fruits that you can suggest to me for the\n>> microproject, that will be great. I will also be searching throughout\n>> the mailing list to see if there are any potential microproject to work\n>> on.\n>\n> Searching the mailing list for \"#leftoverbits\"[1] can be a good way to\n> discover little tasks which may be suitable for a GSoC microproject.\n>\n> [1]: https://lore.kernel.org/git/?q=%23leftoverbits\n\nTrue, but with a caveat that they may range from \"low hanging fruit\"\nto \"too hard, let's punt\".  After seeing the anonymous questioners'\nquestion, I did go to that query page (actually I qualified the\nquery further to list only the ones I gave the mark) and decided not\nto suggest it because I found that many recent ones are harder than\n\"trivial changes suitable for a practice material to go through the\nreview cycles\" X-<.\n\nThanks.\n\n"},{"id":"491528","messageId":"CAPig+cQAoK1UkgADFrnJfY4xw0kP6BypPAPe3aLoeFFGT_r2fQ@mail.gmail.com","threadId":"61198","inReplyTo":"xmqq1q7yhupa.fsf@gitster.g","subject":"Re: [GSoC] Microproject help","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2024-03-25T21:37:25Z","receivedAt":"2024-03-25T21:37:37Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Mon, Mar 25, 2024 at 5:23 PM Junio C Hamano <gitster@pobox.com> wrote:\n> Eric Sunshine <sunshine@sunshineco.com> writes:\n> > On Mon, Mar 25, 2024 at 11:40 AM vk <g@vkabc.me> wrote:\n> >> If there is any low hanging fruits that you can suggest to me for the\n> >> microproject, that will be great. I will also be searching throughout\n> >> the mailing list to see if there are any potential microproject to work\n> >> on.\n> >\n> > Searching the mailing list for \"#leftoverbits\"[1] can be a good way to\n> > discover little tasks which may be suitable for a GSoC microproject.\n>\n> True, but with a caveat that they may range from \"low hanging fruit\"\n> to \"too hard, let's punt\".  After seeing the anonymous questioners'\n> question, I did go to that query page (actually I qualified the\n> query further to list only the ones I gave the mark) and decided not\n> to suggest it because I found that many recent ones are harder than\n> \"trivial changes suitable for a practice material to go through the\n> review cycles\" X-<.\n\nSince the purpose of a GSoC microproject is to familiarize the\ncandidate with the project's mailing-list workflow and to give the\nGSoC mentors a feel for how the candidate interacts, perhaps the\neasiest suggestion would be the old fallback of having the candidate\nlook for a single test script which still uses `test -f` or `test -e`\nor such, and converting that to use one of the test_path_foo()\nfunctions from t/test-lib-functions.sh.\n"},{"id":"491532","messageId":"xmqqv85aezxe.fsf@gitster.g","threadId":"61198","inReplyTo":"CAPig+cQAoK1UkgADFrnJfY4xw0kP6BypPAPe3aLoeFFGT_r2fQ@mail.gmail.com","subject":"Re: [GSoC] Microproject help","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-03-25T21:58:53Z","receivedAt":"2024-03-25T21:58:55Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Sunshine <sunshine@sunshineco.com> writes:\n\n> Since the purpose of a GSoC microproject is to familiarize the\n> candidate with the project's mailing-list workflow and to give the\n> GSoC mentors a feel for how the candidate interacts, perhaps the\n> easiest suggestion would be the old fallback of having the candidate\n> look for a single test script which still uses `test -f` or `test -e`\n> or such, and converting that to use one of the test_path_foo()\n> functions from t/test-lib-functions.sh.\n\nDuring today's discussion, we came up another interesting one.\n\n    Follow one of our three tutorial documents to the letter to see\n    if they need adjusting, and come up with a set of patches to\n    adjust them.\n\nThis kills a few birds with a stone.\n\n - The student has to be familiar with the codebase and MyFirst\n   tutorials are meant as a gentle \"dip your toes in the water\"\n   introduction.  Following the examples and copy-pasting code\n   snippet and trying to build would be useful exercise for GSoC\n   candidates by itself.\n\n - These tutorials, unfortunately, haven't been maintained as well\n   as they should have been, and some do not compile any longer due\n   to API changes, header shuffling, etc.  Identifying such breakages\n   and reporting them as bugs is already useful by itself, even if\n   the student does not manage to fix them.\n\n - But if the GSoC student can learn to address such a bug (which\n   requires use of \"git log\" and \"git blame\" to spelunk where the\n   breakage happened, after which it would be obvious what the right\n   fix would be), that is valuable exercise by itself, even if it\n   does not reach the \"patch submission\" stage.\n\n - And of course, the result of such a work can go through the usual\n   patch review cycle, which would serve as a microproject.\n\nHmm?\n\n"},{"id":"491558","messageId":"CAPig+cSGWMDXh8FQXH=Qca8g61BMOdVJnsirnL4zUJHvSrAfAw@mail.gmail.com","threadId":"61198","inReplyTo":"xmqqv85aezxe.fsf@gitster.g","subject":"Re: [GSoC] Microproject help","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2024-03-26T02:59:14Z","receivedAt":"2024-03-26T02:59:26Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Mon, Mar 25, 2024 at 5:58 PM Junio C Hamano <gitster@pobox.com> wrote:\n> During today's discussion, we came up another interesting one.\n>\n>     Follow one of our three tutorial documents to the letter to see\n>     if they need adjusting, and come up with a set of patches to\n>     adjust them.\n>\n> This kills a few birds with a stone.\n>\n>  - The student has to be familiar with the codebase and MyFirst\n>    tutorials are meant as a gentle \"dip your toes in the water\"\n>    introduction.  Following the examples and copy-pasting code\n>    snippet and trying to build would be useful exercise for GSoC\n>    candidates by itself.\n>\n>  - These tutorials, unfortunately, haven't been maintained as well\n>    as they should have been, and some do not compile any longer due\n>    to API changes, header shuffling, etc.  Identifying such breakages\n>    and reporting them as bugs is already useful by itself, even if\n>    the student does not manage to fix them.\n>\n>  - But if the GSoC student can learn to address such a bug (which\n>    requires use of \"git log\" and \"git blame\" to spelunk where the\n>    breakage happened, after which it would be obvious what the right\n>    fix would be), that is valuable exercise by itself, even if it\n>    does not reach the \"patch submission\" stage.\n>\n>  - And of course, the result of such a work can go through the usual\n>    patch review cycle, which would serve as a microproject.\n>\n> Hmm?\n\nThat sounds like a reasonable project, as well.\n"},{"id":"491571","messageId":"a344deea98bdd2daa7671fae45c0bf11@vkabc.me","threadId":"61198","inReplyTo":"CAOLa=ZRrmyZ48C5r8MWioyjySWdKtLxhtDBg5F2tRsExHaR-fg@mail.gmail.com","subject":"Re: [GSoC] Microproject help","fromName":"vk","fromEmail":"g@vkabc.me","sentAt":"2024-03-26T11:56:19Z","receivedAt":"2024-03-26T12:01:30Z","isPatch":false,"sender":{"key":"g@vkabc.me","avatar":null},"body":"On 2024-03-26 02:25, Karthik Nayak wrote:\n> vk <g@vkabc.me> writes:\n> \n> Hello!\n> \n>> Hello all,\n>> \n>> I'm Vk and I work as a software engineer. I am interested in\n>> contributing to git repository. Apologies for the late start as I only\n>> stumbled upon GSoC recently and git project interested me as I use it\n>> everyday at work and it would be meaningful for me to contribute to \n>> it.\n>> Even if I am not chosen, it will be great if I can start learning to\n>> contribute to git open source.\n>> \n>> For the microproject, I have looked into the lists for 2024 and it \n>> seems\n>> that all the projects have been taken except for `Replace a\n>> run_command*() call by direct calls to C functions`. However, it seems\n>> that the issue has been solved. The command I ran to search throughout\n>> the repo is `git grep 'run_command*('` and the search result returns\n>> run_command functions which I assume are essential.\n>> \n> \n> When I ran the same, I saw around 135 results. Are you saying that\n> they're all essential?\n> \n> For e.g. In `builtin/gc.c:maintenance_task_pack_refs`, shouldn't you be\n> able to replace the `run_command`?\n> \n\nMy bad as the example uses `run_command_v_opt` and upon further \ninspection it seems that there might be similar situations like the \nexample that can save an external process. However, for the \nmaintenance_task_pack_refs, the command being run is `git pack-refs` \nwhich is a write process unlike the example which is a simple read only \nprocess of `git show-branch` to get the current commit? I will be \nsearching the codebase for similar read only `run_command` and see if I \ncan replace them.\n\nThank you\n"},{"id":"491632","messageId":"ZgO-W3E-CeT3n7vl@tanuki","threadId":"61198","inReplyTo":"a344deea98bdd2daa7671fae45c0bf11@vkabc.me","subject":"Re: [GSoC] Microproject help","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-03-27T06:36:11Z","receivedAt":"2024-03-27T06:36:17Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Tue, Mar 26, 2024 at 07:56:19PM +0800, vk wrote:\n> On 2024-03-26 02:25, Karthik Nayak wrote:\n> > vk <g@vkabc.me> writes:\n> > \n> > Hello!\n> > \n> > > Hello all,\n> > > \n> > > I'm Vk and I work as a software engineer. I am interested in\n> > > contributing to git repository. Apologies for the late start as I only\n> > > stumbled upon GSoC recently and git project interested me as I use it\n> > > everyday at work and it would be meaningful for me to contribute to\n> > > it.\n> > > Even if I am not chosen, it will be great if I can start learning to\n> > > contribute to git open source.\n> > > \n> > > For the microproject, I have looked into the lists for 2024 and it\n> > > seems\n> > > that all the projects have been taken except for `Replace a\n> > > run_command*() call by direct calls to C functions`. However, it seems\n> > > that the issue has been solved. The command I ran to search throughout\n> > > the repo is `git grep 'run_command*('` and the search result returns\n> > > run_command functions which I assume are essential.\n> > > \n> > \n> > When I ran the same, I saw around 135 results. Are you saying that\n> > they're all essential?\n> > \n> > For e.g. In `builtin/gc.c:maintenance_task_pack_refs`, shouldn't you be\n> > able to replace the `run_command`?\n> > \n> \n> My bad as the example uses `run_command_v_opt` and upon further inspection\n> it seems that there might be similar situations like the example that can\n> save an external process. However, for the maintenance_task_pack_refs, the\n> command being run is `git pack-refs` which is a write process unlike the\n> example which is a simple read only process of `git show-branch` to get the\n> current commit? I will be searching the codebase for similar read only\n> `run_command` and see if I can replace them.\n\nHint: the `maintenance_task_pack_refs()` can in fact be converted to use\n`refs_pack_refs()` instead. I was briefly considering doing that in [1],\nbut then didn't want to do such an unrelated refactoring in an already\nlong patch series.\n\nSo if you decide to do that you should probably build on top of my patch\nseries to avoid conflicts. The patch series is available e.g. at [2],\nbranch \"ps/pack-refs-auto\". So if you decide to give it a try you should\nbuild on top of that branch.\n\nPatrick\n\n[1]: https://lore.kernel.org/git/cover.1711360631.git.ps@pks.im/\n[2]: https://github.com/gitster/git.git\n"},{"id":"491802","messageId":"80f0bb12243eedbc4ad6580cb06abeb2@vkabc.me","threadId":"61198","inReplyTo":"ZgO-W3E-CeT3n7vl@tanuki","subject":"Re: [GSoC] Microproject help","fromName":"vk","fromEmail":"g@vkabc.me","sentAt":"2024-03-29T03:57:31Z","receivedAt":"2024-03-29T03:57:37Z","isPatch":false,"sender":{"key":"g@vkabc.me","avatar":null},"body":"On 2024-03-27 14:36, Patrick Steinhardt wrote:\n> On Tue, Mar 26, 2024 at 07:56:19PM +0800, vk wrote:\n>> On 2024-03-26 02:25, Karthik Nayak wrote:\n>> > vk <g@vkabc.me> writes:\n>> >\n>> > Hello!\n>> >\n>> > > Hello all,\n>> > >\n>> > > I'm Vk and I work as a software engineer. I am interested in\n>> > > contributing to git repository. Apologies for the late start as I only\n>> > > stumbled upon GSoC recently and git project interested me as I use it\n>> > > everyday at work and it would be meaningful for me to contribute to\n>> > > it.\n>> > > Even if I am not chosen, it will be great if I can start learning to\n>> > > contribute to git open source.\n>> > >\n>> > > For the microproject, I have looked into the lists for 2024 and it\n>> > > seems\n>> > > that all the projects have been taken except for `Replace a\n>> > > run_command*() call by direct calls to C functions`. However, it seems\n>> > > that the issue has been solved. The command I ran to search throughout\n>> > > the repo is `git grep 'run_command*('` and the search result returns\n>> > > run_command functions which I assume are essential.\n>> > >\n>> >\n>> > When I ran the same, I saw around 135 results. Are you saying that\n>> > they're all essential?\n>> >\n>> > For e.g. In `builtin/gc.c:maintenance_task_pack_refs`, shouldn't you be\n>> > able to replace the `run_command`?\n>> >\n>> \n>> My bad as the example uses `run_command_v_opt` and upon further \n>> inspection\n>> it seems that there might be similar situations like the example that \n>> can\n>> save an external process. However, for the maintenance_task_pack_refs, \n>> the\n>> command being run is `git pack-refs` which is a write process unlike \n>> the\n>> example which is a simple read only process of `git show-branch` to \n>> get the\n>> current commit? I will be searching the codebase for similar read only\n>> `run_command` and see if I can replace them.\n> \n> Hint: the `maintenance_task_pack_refs()` can in fact be converted to \n> use\n> `refs_pack_refs()` instead. I was briefly considering doing that in \n> [1],\n> but then didn't want to do such an unrelated refactoring in an already\n> long patch series.\n> \n> So if you decide to do that you should probably build on top of my \n> patch\n> series to avoid conflicts. The patch series is available e.g. at [2],\n> branch \"ps/pack-refs-auto\". So if you decide to give it a try you \n> should\n> build on top of that branch.\n\n\nHello all,\n\nFor the build on top of ps/pack-refs-auto, do I commit to this branch \nlocally and get the diff for submitting the patch?\n\nThank you\n\n"},{"id":"491815","messageId":"xmqqo7axvbd0.fsf@gitster.g","threadId":"61198","inReplyTo":"ZgO-W3E-CeT3n7vl@tanuki","subject":"Re: [GSoC] Microproject help","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-03-29T05:46:35Z","receivedAt":"2024-03-29T05:46:43Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> Hint: the `maintenance_task_pack_refs()` can in fact be converted to use\n> `refs_pack_refs()` instead. I was briefly considering doing that in [1],\n> but then didn't want to do such an unrelated refactoring in an already\n> long patch series.\n>\n> So if you decide to do that you should probably build on top of my patch\n> series to avoid conflicts.\n\nAs the microproject is a learning experience for skills to work well\nwith others, we may want to suggest an area where there won't be\nmuch conflicts, i.e. skill to find an area that are relatively\nquiescent to avoid stepping each other's toes.\n\nTo be quite honest, I'd rather not to see a task that uses\nrun_command() API and gets done in safe process isolation turned\ninto an internal call by pure amateurs, unless competent mentors\ngo through the change with fine toothed comb and make sure there are\nno unintended consequences and side effects of doing it in process.\nThis is especially true for microprojects, where the primary focus\nis about learning the process of contribution and working with the\ncommunity, and not about learning the existing codebase and API.\n\nThanks.\n"},{"id":"492033","messageId":"ZgvVRK8VH2F9YKd1@tanuki","threadId":"61198","inReplyTo":"xmqqo7axvbd0.fsf@gitster.g","subject":"Re: [GSoC] Microproject help","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-04-02T09:52:04Z","receivedAt":"2024-04-02T09:52:12Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Thu, Mar 28, 2024 at 10:46:35PM -0700, Junio C Hamano wrote:\n> Patrick Steinhardt <ps@pks.im> writes:\n> \n> > Hint: the `maintenance_task_pack_refs()` can in fact be converted to use\n> > `refs_pack_refs()` instead. I was briefly considering doing that in [1],\n> > but then didn't want to do such an unrelated refactoring in an already\n> > long patch series.\n> >\n> > So if you decide to do that you should probably build on top of my patch\n> > series to avoid conflicts.\n> \n> As the microproject is a learning experience for skills to work well\n> with others, we may want to suggest an area where there won't be\n> much conflicts, i.e. skill to find an area that are relatively\n> quiescent to avoid stepping each other's toes.\n> \n> To be quite honest, I'd rather not to see a task that uses\n> run_command() API and gets done in safe process isolation turned\n> into an internal call by pure amateurs, unless competent mentors\n> go through the change with fine toothed comb and make sure there are\n> no unintended consequences and side effects of doing it in process.\n> This is especially true for microprojects, where the primary focus\n> is about learning the process of contribution and working with the\n> community, and not about learning the existing codebase and API.\n\nThat's a fair remark indeed. I wonder whether we should remove this\nmicroproject altogether.\n\nPatrick\n"},{"id":"492039","messageId":"ZgvfVE4ZmOUPri0U@tanuki","threadId":"61198","inReplyTo":"80f0bb12243eedbc4ad6580cb06abeb2@vkabc.me","subject":"Re: [GSoC] Microproject help","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-04-02T10:35:00Z","receivedAt":"2024-04-02T10:35:06Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Fri, Mar 29, 2024 at 11:57:31AM +0800, vk wrote:\n> On 2024-03-27 14:36, Patrick Steinhardt wrote:\n> > On Tue, Mar 26, 2024 at 07:56:19PM +0800, vk wrote:\n> > > On 2024-03-26 02:25, Karthik Nayak wrote:\n> > > > vk <g@vkabc.me> writes:\n> > > >\n> > > > Hello!\n> > > >\n> > > > > Hello all,\n> > > > >\n> > > > > I'm Vk and I work as a software engineer. I am interested in\n> > > > > contributing to git repository. Apologies for the late start as I only\n> > > > > stumbled upon GSoC recently and git project interested me as I use it\n> > > > > everyday at work and it would be meaningful for me to contribute to\n> > > > > it.\n> > > > > Even if I am not chosen, it will be great if I can start learning to\n> > > > > contribute to git open source.\n> > > > >\n> > > > > For the microproject, I have looked into the lists for 2024 and it\n> > > > > seems\n> > > > > that all the projects have been taken except for `Replace a\n> > > > > run_command*() call by direct calls to C functions`. However, it seems\n> > > > > that the issue has been solved. The command I ran to search throughout\n> > > > > the repo is `git grep 'run_command*('` and the search result returns\n> > > > > run_command functions which I assume are essential.\n> > > > >\n> > > >\n> > > > When I ran the same, I saw around 135 results. Are you saying that\n> > > > they're all essential?\n> > > >\n> > > > For e.g. In `builtin/gc.c:maintenance_task_pack_refs`, shouldn't you be\n> > > > able to replace the `run_command`?\n> > > >\n> > > \n> > > My bad as the example uses `run_command_v_opt` and upon further\n> > > inspection\n> > > it seems that there might be similar situations like the example\n> > > that can\n> > > save an external process. However, for the\n> > > maintenance_task_pack_refs, the\n> > > command being run is `git pack-refs` which is a write process unlike\n> > > the\n> > > example which is a simple read only process of `git show-branch` to\n> > > get the\n> > > current commit? I will be searching the codebase for similar read only\n> > > `run_command` and see if I can replace them.\n> > \n> > Hint: the `maintenance_task_pack_refs()` can in fact be converted to use\n> > `refs_pack_refs()` instead. I was briefly considering doing that in [1],\n> > but then didn't want to do such an unrelated refactoring in an already\n> > long patch series.\n> > \n> > So if you decide to do that you should probably build on top of my patch\n> > series to avoid conflicts. The patch series is available e.g. at [2],\n> > branch \"ps/pack-refs-auto\". So if you decide to give it a try you should\n> > build on top of that branch.\n> \n> \n> Hello all,\n> \n> For the build on top of ps/pack-refs-auto, do I commit to this branch\n> locally and get the diff for submitting the patch?\n\nYes. Generally, what I do is:\n\n    1. Check out the `master` branch.\n\n    2. Merge the topic branch you want to build upon into the `master`\n       branch.\n\n    3. Build your topic on top of that merge commit.\n\nWhen sending the patches to the mailing list you would mention that\ndependency e.g. in the cover letter and then only send patches from the\nmerge commit to the tip of your own topic branch.\n\nNote though that, as Junio mentioned, this is becoming more involved\nthan the typical microproject. You can of course still continue to work\non it if you want to, but definitely feel free to switch to an \"easier\"\ntarget to work on.\n\nPatrick\n"}]}