{"thread":{"id":"52883","subject":"[GSoC][RFC] Proposal: Convert scripts to builtins","startedAt":"2020-02-25T19:45:46Z","lastAt":"2020-03-02T13:33:12Z","messageCount":2,"participants":["Shourya Shukla","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"392478","messageId":"20200225194536.20549-1-shouryashukla.oo@gmail.com","threadId":"52883","inReplyTo":null,"subject":"[GSoC][RFC] Proposal: Convert scripts to builtins","fromName":"Shourya Shukla","fromEmail":"shouryashukla.oo@gmail.com","sentAt":"2020-02-25T19:45:36Z","receivedAt":"2020-02-25T19:45:46Z","isPatch":false,"sender":{"key":"shouryashukla.oo@gmail.com","avatar":"https://avatars.githubusercontent.com/u/43680618?v=4"},"body":"Hello everyone,\n\nI am Shourya, and this is the first draft of my proposal for the project titled:\n'Convert scripts to builtins'. I need your feedback and more than that I need help\nto improve my project timeline.\nSpecifically, I'd like your thoughts on the early commencement of the project and\nhow should I adjust the timeline accordingly. Any guidance the Community can provide\nis greatly appreciated :)\n\nThanks,\nShourya\n\n-x-x-x-x-x-x-x-x-x-x-x-x-x--x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x\n\n\n# Convert scripts to builtins\n\n## Contact Information\n--------------------\n\nName          : Shourya Shukla\nMajor         : Computer Science and Engineering\nE-mail        : shouryashukla.oo@gmail.com\nIRC           : rasengan_chidori on #git & #git-devel\nMobile no     : <<mobile no>>\nGitHub        : periperidip\nLinkedin      : shuklashourya\nStackOverflow : rasengan__\nAddress       : <<address>>\nTime Zone     : IST (UTC +0530)\n\n\n## Background\n\nI am Shourya Shukla, a sophomore in Computer Science and Engineering at the\nIndian Institute of Technology Roorkee[1]. I was introduced to programming at\na young age and I have been trying to learn new concepts everyday since. My\ninterests include modern mobile networks, Internet of Things and system software\ndevelopment. I have been working on a project which involves providing cellular\nnetwork access to users in a disaster-struck are via drones. I love low-level\ncoding and FLOSS as well. I have been an active part of the Git community since\nJanuary of this year, contributing to Git.\n\n\n## Work Envinronment\n\nI am fluent in C/C++, Java and Shell script, and have an understanding of Python\nas well. I use Git as my VCS and Visual Studio Code with integrated GDB as my\nprimary code editor and Ubuntu 19.10 as my primary Operating System unless the\nwork specifically needs Windows.\n\n\n## Contributions to Git\n\nContributing to Git helped me understand a lot about how modern & robust softwares\nwork as well as how real world development takes place. I plan on contrubuting even\nmore to Git and make my contributions count. As of now, my contributions at Git are:\n\n---------------\nstatus: merged\ngit/git:\n[Microproject][2]: Modernise tests and use helper functions in test script.\n\n\n## The Project: 'Convert scripts to builtins'\n\n#### Overview\n\nThere has been an ongoing work in the conversion of various Git commands\nsuch as `add`, `commit`, `blame`, etc. from their shell form into their C form.\n`git submodule` is one of the commands left to fully convert into its C form.\nStefan Beller <stefanbeller@gmail.com> converted a large part of this command\nup until 2019. Prathamesh Chavan <pc44800@gmail.com> also aided in the conversion\nof the command during his GSoC project in the year 2017. In its current state, four\nsubcommands are due for conversion, namely: 'add`, `set-branch`, `set-url` and `summary`.\nAlso, the Command Line parsing Interface needs improvements, such as better error messages\nand support for more subcommands.\n\n\n#### Project Timeline\n\nI have been studying the code of `submodule.c`, `submodule--helper.c` and `git-submodule.sh`\nsince the submission of my microproject. After studying the codes, I tried to devise an effective\nconversion strategy for `submodule`. I noticed that `submodule.c` contains various helper functions\nfor `submodule--helper.c` whereas the latter houses the main \"converted\" command as of now.\n      \nTherefore, the timeline looks like:\n  \n  - Community Bonding Period (April 27 - May 18)\n    --> Get familiar with the community\n    --> Improve the project workflow\n   \n  - Phase 1 (May 19 - June 6)\n    --> Convert `summary` subcommand\n    --> Improve CLI parsing\n    \n  - Phase 2 (June 7- August 8)\n    --> Convert `add` subcommand\n    --> Convert `set-url` subcommand\n    --> Convert `set-branch` subcommand\n    \n  - Final Phase (August 9 - August 17)\n    --> Documentation\n    --> Final touch-ups to code\n\nIf there is some extra time left, I will try to implement some BONUS features.\n\n**BONUS features:** Consist of command touch ups and improcing some bugs such as code\n                    sections with 'NEEDSWORK' tags.\n\n\n## Relevant Work\n\nI have divided the project into 3 subprojects(SP).\n\n    1. **SP 1:** Convert `summary`\n    2. **SP 2:** Convert `add` and improve CLI(Command Line Interface) parsing        \n    3. **SP 3:** Convert `set-url` and `set-branch`\n    \nAfter discussions with Christian Couder, I plan to start SP1 before GSoC itself. Currently,\nI am studying the code in detail and constructing a scaffolding for this implementation.\nI aim to complete the leftover bits of SP1 during Phase 1 and SP2 & SP3 during Phase 2 of\nGSoC.\n\nAs Derrick Stolee advised[3], the conversion may not be possible in one whole summer, hence,\nI think an early start might be needed to finish things in time if possible.\n\n\n## Availability\n\nThe official GSoC period starts from April 27 and ends on August 17. My vacations start\nfrom May 10 and will be over by July 13. I can easily devote 45-50 hours per week until\nthe commencement of my Semester. Other than this project, I have no commitments planned\nfor my vacations. I shall keep the community posted in case of any change in plans.\n\n\n## Post GSoC\n\nEven after the completion of Google Summer of Code, I plan on continuing my contributions\nto Git, on the technical front(in terms of code and documentation contributions) as well\nas on the social front(solving people's doubts/problems on the List as well as on StackOverflow).\nI vision to convert the remaining of the commands as pointed out by Dscho[3] as well as improve\nthe test files.\n\nI aim to develop mentorship skills as well as the ability to guide others and try to give back to\nthe community by mentoring and guiding others as well(by reviewing their code, helping them out, etc.)\n\n------------------------------------------------------------------------------------------------\n[1]: https://www.iitr.ac.in/\n[2]: https://lore.kernel.org/git/20200116203622.4694-1-shouryashukla.oo@gmail.com/\n[3]: https://lore.kernel.org/git/nycvar.QRO.7.76.6.2001301154170.46@tvgsbejvaqbjf.bet/T/#m232941f6cdcf92b97b3531f6fc582935c06734cf\n[4]: https://lore.kernel.org/git/nycvar.QRO.7.76.6.2001301154170.46@tvgsbejvaqbjf.bet/T/#m637c5c97d42dc68aab85420b5ffcaeb34c270ad3\n"},{"id":"392740","messageId":"CAP8UFD0Ge=2a2sMpzy+pwAYZb-oJkcMZ7Jbnn5pLrSe8MB1v2w@mail.gmail.com","threadId":"52883","inReplyTo":"20200225194536.20549-1-shouryashukla.oo@gmail.com","subject":"Re: [GSoC][RFC] Proposal: Convert scripts to builtins","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2020-03-02T13:32:56Z","receivedAt":"2020-03-02T13:33:12Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Hi Shourya,\n\nOn Tue, Feb 25, 2020 at 8:45 PM Shourya Shukla\n<shouryashukla.oo@gmail.com> wrote:\n>\n> I am Shourya, and this is the first draft of my proposal for the project titled:\n> 'Convert scripts to builtins'. I need your feedback and more than that I need help\n> to improve my project timeline.\n> Specifically, I'd like your thoughts on the early commencement of the project and\n> how should I adjust the timeline accordingly. Any guidance the Community can provide\n> is greatly appreciated :)\n\nThank you or your proposal and sorry for the late answer!\n\n> # Convert scripts to builtins\n>\n> ## Contact Information\n> --------------------\n\n[...]\n\n> ## Background\n>\n> I am Shourya Shukla, a sophomore in Computer Science and Engineering at the\n> Indian Institute of Technology Roorkee[1]. I was introduced to programming at\n> a young age and I have been trying to learn new concepts everyday since. My\n> interests include modern mobile networks, Internet of Things and system software\n> development. I have been working on a project which involves providing cellular\n> network access to users in a disaster-struck are via drones. I love low-level\n\nI think you mean \"disaster-struck area\".\n\nDo you have a link to the project you have been contributing to?\n\n> coding and FLOSS as well. I have been an active part of the Git community since\n> January of this year, contributing to Git.\n\nOk.\n\n> ## Work Envinronment\n>\n> I am fluent in C/C++, Java and Shell script, and have an understanding of Python\n> as well. I use Git as my VCS and Visual Studio Code with integrated GDB as my\n> primary code editor and Ubuntu 19.10 as my primary Operating System unless the\n> work specifically needs Windows.\n\nOk.\n\n> ## Contributions to Git\n>\n> Contributing to Git helped me understand a lot about how modern & robust softwares\n\nMaybe \"software\".\n\n> work as well as how real world development takes place. I plan on contrubuting even\n\nMaybe \"contributing\".\n\n> more to Git and make my contributions count. As of now, my contributions at Git are:\n>\n> ---------------\n> status: merged\n> git/git:\n> [Microproject][2]: Modernise tests and use helper functions in test script.\n\nI think it would be better if you also provided a link to the commits\nthat were merged, or the tip of the branch that was merged, on GitHub\nor GitLab. Also I prefer when the links are not at then end of the\ndocument but rather part of the text.\n\n> ## The Project: 'Convert scripts to builtins'\n\nI think the project name should specify the script(s) that you want to\nconvert. Mentors might be more interested in one script being\nconverted than another and it's better if they don't have to look\ninside your proposal.\n\n> #### Overview\n>\n> There has been an ongoing work in the conversion of various Git commands\n> such as `add`, `commit`, `blame`, etc. from their shell form into their C form.\n> `git submodule` is one of the commands left to fully convert into its C form.\n> Stefan Beller <stefanbeller@gmail.com> converted a large part of this command\n> up until 2019. Prathamesh Chavan <pc44800@gmail.com> also aided in the conversion\n> of the command during his GSoC project in the year 2017. In its current state, four\n> subcommands are due for conversion, namely: 'add`, `set-branch`, `set-url` and `summary`.\n> Also, the Command Line parsing Interface needs improvements, such as better error messages\n> and support for more subcommands.\n\nI hoped that what you mention here was detailed below, but it looks\nlike it isn't. It's important to show that you studied what happened\nbefore. And that you can take advantage of it. For example maybe they\nstarted working at porting other commands but didn't finish and you\ncould take advantage of their work.\n\nYou could perhaps add links to their repos and the patch series they\nsent that were merged and possibly those that weren't merged too.\n\nI would use \"Previous work\" rather than \"Overview\" as the title for\nthis section.\n\n> #### Project Timeline\n>\n> I have been studying the code of `submodule.c`, `submodule--helper.c` and `git-submodule.sh`\n> since the submission of my microproject. After studying the codes, I tried to devise an effective\n> conversion strategy for `submodule`. I noticed that `submodule.c` contains various helper functions\n> for `submodule--helper.c` whereas the latter houses the main \"converted\" command as of now.\n>\n> Therefore, the timeline looks like:\n>\n>   - Community Bonding Period (April 27 - May 18)\n>     --> Get familiar with the community\n>     --> Improve the project workflow\n\nI'd like more details about this.\n\n>   - Phase 1 (May 19 - June 6)\n>     --> Convert `summary` subcommand\n>     --> Improve CLI parsing\n>\n>   - Phase 2 (June 7- August 8)\n>     --> Convert `add` subcommand\n>     --> Convert `set-url` subcommand\n>     --> Convert `set-branch` subcommand\n\nYou could add a bit more information, like an estimate of the number\nof line of shell you will convert at each step.\n\n>   - Final Phase (August 9 - August 17)\n>     --> Documentation\n>     --> Final touch-ups to code\n\nDocumentation should be part of the previous phases. Also we like to\nbe updated (either via a blog or emails to the mailing list) during\nthe course of the project, not just at the end.\n\n> If there is some extra time left, I will try to implement some BONUS features.\n>\n> **BONUS features:** Consist of command touch ups and improcing some bugs such as code\n\nMaybe \"improving on\".\n\n>                     sections with 'NEEDSWORK' tags.\n>\n>\n> ## Relevant Work\n>\n> I have divided the project into 3 subprojects(SP).\n>\n>     1. **SP 1:** Convert `summary`\n>     2. **SP 2:** Convert `add` and improve CLI(Command Line Interface) parsing\n>     3. **SP 3:** Convert `set-url` and `set-branch`\n>\n> After discussions with Christian Couder, I plan to start SP1 before GSoC itself. Currently,\n> I am studying the code in detail and constructing a scaffolding for this implementation.\n> I aim to complete the leftover bits of SP1 during Phase 1 and SP2 & SP3 during Phase 2 of\n> GSoC.\n\nOk.\n\n> As Derrick Stolee advised[3], the conversion may not be possible in one whole summer, hence,\n> I think an early start might be needed to finish things in time if possible.\n\nYeah, probably.\n\n> ## Availability\n>\n> The official GSoC period starts from April 27 and ends on August 17. My vacations start\n> from May 10 and will be over by July 13. I can easily devote 45-50 hours per week until\n> the commencement of my Semester. Other than this project, I have no commitments planned\n> for my vacations. I shall keep the community posted in case of any change in plans.\n\nOk.\n\n> ## Post GSoC\n>\n> Even after the completion of Google Summer of Code, I plan on continuing my contributions\n> to Git, on the technical front(in terms of code and documentation contributions) as well\n> as on the social front(solving people's doubts/problems on the List as well as on StackOverflow).\n> I vision to convert the remaining of the commands as pointed out by Dscho[3] as well as improve\n> the test files.\n>\n> I aim to develop mentorship skills as well as the ability to guide others and try to give back to\n> the community by mentoring and guiding others as well(by reviewing their code, helping them out, etc.)\n\nGreat!\n\nThanks,\nChristian.\n"}]}