{"thread":{"id":"53141","subject":"[GSoC/Proposal v2] Unify ref-filter formats with other --pretty formats","startedAt":"2020-03-31T06:01:24Z","lastAt":"2020-03-31T06:01:24Z","messageCount":1,"participants":["Angel Pan"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"394404","messageId":"7d96914e-bf2e-bfe0-74fa-a9524b81d606@gmail.com","threadId":"53141","inReplyTo":null,"subject":"[GSoC/Proposal v2] Unify ref-filter formats with other --pretty formats","fromName":"Angel Pan","fromEmail":"dinoallosaurus1111@gmail.com","sentAt":"2020-03-31T06:01:17Z","receivedAt":"2020-03-31T06:01:24Z","isPatch":false,"sender":{"key":"dinoallosaurus1111@gmail.com","avatar":"https://gravatar.com/avatar/759daaef3b99a93bea134f079314994931cde0c810b6876900c8da4224a79cc9?d=mp&s=160"},"body":"Big thanks to those who have spent some time reading my proposal.\nSpecial mention toAbhishek, who corrected some of my error and provided\nwith some useful advice. ;)\n\nHere is version II:\n\nhttps://docs.google.com/document/d/19Nkesmet7X7U42lsvksXoiEBrnOppKicWHYKneEQsQ8/edit?usp=sharing\n\n---\n\n# Unify ref-filter formats with other `--pretty` formats\n\n## Contact Information\n\nFull name: Yun Pan(Angel Pan)\n\nEmail: [dinoallosaurus1111@gmail.com](mailto:dinoallosaurus1111@gmail.com)\n\nIRC: dinoallosaurus\n\nGitHub: dinoallo\n\nTimezone: UTC+8\n\n## Short Biography\n\nI am a first year student in Computer Science at Zhejiang University in\nChina. It's my first time participating in GSoC. I have had experience\nworking with C/C++, shell scripts, Python, Go and Perl. I am interested\nin writing CLI or system scripts/configurations, which is the main\nreason I am applying to Git project. I might be relatively new when it\ncomes to contributing open-source project. However, I am a quick and\navid learner so if I don’t have enough skills to complete the job, I can\nself-learn immediately.\n\n## Working Environment\n\nMy operating system is Arch Linux, which I started using it about half\nan year ago. Before then I was using Debian-based systems like Ubuntu.\nAnd I have some experience using git on Windows as well.  \n\nI mainly use Emacs and VS Code as my editor but I can use Vim also. I am\nable to use both markdown and Org-mode on Emacs for documenting\n\n## Coding/Contributing Experience\n\nC is my *native* language I like to configure my computer and automate\nsome work on it by myself so I learned shell-scripts and other scripting\nlanguages.  Now I write code related to back-end for the student club at\nmy university.\n\nSince I used to develop web before, there is a small-project written in\nPython with Django on my GitHub page. From the experience of applying to\ngit, I obtained much deeper knowledge about git and how it works. No\nmatter what the outcome is, I am looking forward to contributing more to\ngit and work with all the developers.\n\n### Microproject\n\nMailing list:\nhttps://lore.kernel.org/git/pull.595.git.1585588586605.gitgitgadget@gmail.com/T/#u\n\nGitHub: https://github.com/gitgitgadget/git/pull/595\n\nStatus: Reviewed and now revised(the commit message).\n\n## Introduction\n\nCurrently, the placeholder used in ref-filter expansion `%(foo)` has not\nyet supported in `--pretty` format.\n\nUsing the new ref-filter formats has its own convenience.  For example,\nthe format `%(foo)` is more human-readable, easy to process, and\nextensible if we want to add some options in each placeholder(like\n`%(trailers:only=bogo)`) . Hence,  users can just simply add the options\nin the placeholder if needed, reducing their frustration in constructing\nlong and complex output command.\n\nMy goal is to unify the the ref-filter formats with `--pretty` formats\nand generalize them in git:\n\n### Primary task(s)\n\n* Keep the previous placeholders like `%an`, but add more recognizable\nalternatives like `%(authorname)`.\n* Check if there are other duplicate formats with `--pretty` , if so,\nre-factor them as well.\n\n### Optional task(s)\n\nI don't want to go beyond the border of my main task, so I label this\nidea as an optional task that needs to be carefully reviewed and\ndiscussed by many.\n\n* Introduce format-scripting(like the one used in `git-for-each-ref`) to\n`--pretty` and even make a field in user's configuration to use default\nformat-script for `--pretty`.\n\n## Deliverables/Timeline\n\n### ~ May 5th\n\n* I will keep an eye on git project and make more patches to it if\npossible.\n* At the same time, getting to know more about the community and\ncollaborating with others.\n\n* Also I will talk to my potential mentor, to get more concrete and\nconstructive advise about my project. Last, finalize my project.\n\n### May 5th ~ June 2nd\n\nCommunity-bonding period:\n\nAfter having rounded understanding about the community and all the past\nwork, I would like to revise my previous ideas regarding to my project\nif there is a much better solution or other problems. Then, I will start\nto work on a part of my project:\n\n* Carefully examine `ref-filter` related code to see what I can learn\nfrom(the implementation, etc...) and what to avoid doing.\n* Add new placeholders with new formats and names in `--pretty`.\n* Commit patches to obtain reviews from the community.\n\n### June 2nd ~ June 10th\n\nThe cushion period. Finish the unfinished job from last phase. If all\nthe job is done, add test scripts and future documentation.\n\n### June 11th ~ July 3rd\n\nI will be occupied in this phase since the final exams take over. I\nmight not be able to work on some actual change but will be free to\nreply to anyone in the community.\n\n### July 3rd ~ July 17th\n\n* Gathering all reviews and criticisms from the community and revise my\nprevious patches if needed.  \n\n* Add test scripts and documentation.\n\n### July 17th ~ July 28th\n\n* keep commit the patches to obtain reviews from the community.\n* Discuss the possibility of adding configuration for `--pretty`.\n\n### July 28th ~ August 12th\n\n* Gathering all reviews and criticisms from the community and revise my\nprevious patches if needed.  \n* Add test scripts and documentation.\n* [option] Write a experimental configuration on pretty.\n\n### August 12th ~ August 25th\n\nFinal revision and discussion.\n\n### August 25th ~\n\nSubmission\n\n*If I complete my job earlier than I plan, than I would like to come up\nwith more improvements and new features in my project.*\n\n ### Side-note\n\n* Before my summer vacation, I can code for 2-3 hours per working day\nand 4-6 hours on weekend.\n* My summer vacation starts from July 3rd to early September, which fits\nwell with GSoC's schedule. I will be able to spend half of my day on my\nproject.\n* English is not my first language so if I have grammatical or other\nerrors in documentation or communication, a review will be appreciated.\n\n\n\n## Conclusion\n\nFirst, I would like to say thank you to all developers that have helped\nme or replied to me in the mailing list.\n\nI want to join an active open-source community online for a really long\ntime but I was too shy before and got caught up with the college\nentrance exam. I think GSoC is a good platform to start my journey.\nThough I was not able to get the information in time and it's late for\nme to commit my submission before deadline, I still decided to apply.\nBecause if I hadn't, I would regret someday.\n\nAs I mentioned before, maybe I have little experience to\nonline-contributing, but I will learn the required skills to overcome\nobstacles. My lust for knowledge is my greatest power.\n\nLast but not least, it's a pleasure to join the open-source community.\nLet's collaborate and make the world better.\n\n---\n\nOn 3/31/20 4:39 AM, Angel Pan wrote:\n> Hello everyone.\n> Here is my proposal for GSoC. A review or criticism would be appreciated.\n>\n> Google doc version:\n> https://docs.google.com/document/d/19Nkesmet7X7U42lsvksXoiEBrnOppKicWHYKneEQsQ8/edit?usp=sharing\n>\n> Best regards,\n> Angel\n>\n> ----------\n> # Unify ref-filter formats with other `--pretty` formats\n>\n> ## Contact Information\n>\n> Full name: Yun Pan(Angel Pan)\n>\n> Email: [dinoallosaurus1111@gmail.com](mailto:dinoallosaurus1111@gmail.com)\n>\n> IRC: dinoallosaurus\n>\n> GitHub: dinoallo\n>\n> Timezone: UTC+8\n>\n> ## Short Biography\n>\n> I am a first year student in Computer Science at Zhejiang University\n> in China. It's my first time participating in GSoC. I have had\n> experience working with C/C++, shell scripts, Python, Go and Perl. I\n> am interested in writing CLI or system scripts/configurations, which\n> is the main reason I apply to Git project. I might be relatively new\n> when it comes to contributing on-line project. However, I am a quick\n> and avid learner so if I don’t have enough skills to complete the job,\n> I can self-learn immediately.\n>\n> ## Working Environment\n>\n> My operating system is Arch Linux, which I started using it about half\n> an year ago. Before then I was using Debian-based systems like Ubuntu.\n> And I have some experience using git on Windows as well.\n>\n> I mainly use Emacs and VS Code as my editor but I can use Vim also. I\n> am able to use both markdown and Org-mode on Emacs for documenting\n>\n> ## Coding/Contributing Experience\n>\n> C is my *native* language I like to config my computer and automate\n> some work on it by myself so I learned shell-scripts and other\n> scripting languages.  Now I write code related to back-end for the\n> student club at my university.\n>\n> Since I used to develop web before, there is a small-project written\n> in Python with Django on my GitHub page. From the experience of\n> applying to git, I obtained much deeper knowledge about git and how it\n> works. No matter what the outcome is, I am looking forward to\n> contributing more to git and work with all the developers.\n>\n> ### Microproject\n>\n> Mailing list: https://lore.kernel.org/git/pull.595.git.1585588586605.gitgitgadget@gmail.com/T/#u\n>\n> GitHub: https://github.com/gitgitgadget/git/pull/595\n>\n> Status: waiting to be review.\n>\n> ## Introduction\n>\n> Currently, the placeholder used in ref-filter expansion `%(foo)` has\n> not yet supported in `--pretty` format.\n>\n> Using the new ref-filter formats has its own convenience.  For\n> example, the format `%(foo)` is more human-readable, easy to process,\n> and extensible if we want to add some options in each placeholder(like\n> `%(trailers:only=bogo)`) . Hence,  users can just simply add the\n> options in the placeholder if needed, reducing their frustration in\n> constructing long and complex output command.\n>\n> My goal is to unify the the ref-filter formats with `--pretty` formats\n> and generalized them in git:\n>\n> * Get rid of unrecognizable placeholders like `%an` to `%(authorname)`.\n> * Introduce format-scripting(like the one used in `git-for-each-ref`)\n> to `--pretty` and even make a field in user's configuration to use\n> default format-script for `--pretty`.\n>\n> ## Deliverables/Timeline\n>\n> ### ~ May 5th\n>\n> * I will keep an eye on git project and make more patches to it if possible.\n> * At the same time, getting to know more about the community and\n> collaborating with others.\n>\n> * Also I will talk to my potential mentor, to get more concrete and\n> constructive advise about my project. Last, finalize my project.\n>\n> ### May 5th ~ June 2nd\n>\n> Community-bonding period:\n>\n> After having rounded understanding about the community and all the\n> past work, I would like to revise my previous ideas regarding to my\n> project if there is a much better solution or other problems. Then, I\n> will start to work on a part of my project:\n>\n> * Carefully examine `ref-filter` related code to see what I can learn\n> from(the implementation, etc...) and what to avoid doing.\n> * Replace the placeholders in `--pretty` with new formats and names.\n> * Commit patches to obtain reviews from the community.\n>\n> ### June 2nd ~ June 10th\n>\n> The cushion period. Finish the unfinished work from last phase. If all\n> the job is done, add test scripts and future documentation.\n>\n> ### June 11th ~ July 3rd\n>\n> I will be occupied in this phase since the final exams take over. I\n> might not be able to work on some actual change but is free to reply\n> to anyone in the community.\n>\n> ### July 3rd ~ July 17th\n>\n> * Gathering all reviews and criticisms from the community and revise\n> my previous patches if needed.\n>\n> * Add test scripts and documentation.\n>\n> ### July 17th ~ July 28th\n>\n> * Implement the format-scripting in `--pretty`\n> * Commit the patches to obtain reviews from the community\n>\n> ### July 28th ~ August 12th\n>\n> * Gathering all reviews and criticisms from the community and revise\n> my previous patches if needed.\n>\n> * Add test scripts and documentation.\n> * [option] configuration on pretty\n>\n> ### August 12th ~ August 25th\n>\n> Final revision and discussion.\n>\n> ### August 25th ~\n>\n> Submission\n>\n> *If I complete my job earlier than I plan, than I would like to come\n> up with more improvements and new features in my project.*\n>\n>  ### Side-note\n>\n> * Before my summer vacation, I can code for 2-3 hours per working day\n> and 4-6 hours on weekend.\n> * My summer vacation starts from July 3rd to early September, which\n> fits well with GSoC's schedule. I will be able to spend half of my day\n> on my project.\n> * English is not my first language so if I have grammatical or other\n> errors in documentation or communication, a review will be\n> appreciated.\n>\n>\n>\n> ## Conclusion\n>\n> First, I would like to say thank you to all developers that have\n> helped me or replied to me in the mailing list.\n>\n> I want to join an active open-source community online for a really\n> long time but I was too shy before and got caught up with the college\n> entrance exam. I think GSoC is a good platform to start my journey.\n> Though I was not able to get the information in time and it's late for\n> me to commit my submission before deadline, I still decided to apply.\n> Because if I hadn't, I would regret someday.\n>\n> As I mentioned before, maybe I have little experience to\n> online-contributing, but I will learn the required skills to overcome\n> obstacles. My lust for knowledge is my greatest power.\n>\n> Last but not least, it's a pleasure to join the open-source community.\n> Let's collaborate and make the online world better.\n>\n> ----------\n"}]}