All of lore.kernel.org
 help / color / mirror / Atom feed
* [GSoC/Proposal v2] Unify ref-filter formats with other --pretty formats
@ 2020-03-31  6:01 Angel Pan
  0 siblings, 0 replies; only message in thread
From: Angel Pan @ 2020-03-31  6:01 UTC (permalink / raw)
  To: git; +Cc: abhishekkumar8222

Big thanks to those who have spent some time reading my proposal.
Special mention toAbhishek, who corrected some of my error and provided
with some useful advice. ;)

Here is version II:

https://docs.google.com/document/d/19Nkesmet7X7U42lsvksXoiEBrnOppKicWHYKneEQsQ8/edit?usp=sharing

---

# Unify ref-filter formats with other `--pretty` formats

## Contact Information

Full name: Yun Pan(Angel Pan)

Email: [dinoallosaurus1111@gmail.com](mailto:dinoallosaurus1111@gmail.com)

IRC: dinoallosaurus

GitHub: dinoallo

Timezone: UTC+8

## Short Biography

I am a first year student in Computer Science at Zhejiang University in
China. It's my first time participating in GSoC. I have had experience
working with C/C++, shell scripts, Python, Go and Perl. I am interested
in writing CLI or system scripts/configurations, which is the main
reason I am applying to Git project. I might be relatively new when it
comes to contributing open-source project. However, I am a quick and
avid learner so if I don’t have enough skills to complete the job, I can
self-learn immediately.

## Working Environment

My operating system is Arch Linux, which I started using it about half
an year ago. Before then I was using Debian-based systems like Ubuntu.
And I have some experience using git on Windows as well.  

I mainly use Emacs and VS Code as my editor but I can use Vim also. I am
able to use both markdown and Org-mode on Emacs for documenting

## Coding/Contributing Experience

C is my *native* language I like to configure my computer and automate
some work on it by myself so I learned shell-scripts and other scripting
languages.  Now I write code related to back-end for the student club at
my university.

Since I used to develop web before, there is a small-project written in
Python with Django on my GitHub page. From the experience of applying to
git, I obtained much deeper knowledge about git and how it works. No
matter what the outcome is, I am looking forward to contributing more to
git and work with all the developers.

### Microproject

Mailing list:
https://lore.kernel.org/git/pull.595.git.1585588586605.gitgitgadget@gmail.com/T/#u

GitHub: https://github.com/gitgitgadget/git/pull/595

Status: Reviewed and now revised(the commit message).

## Introduction

Currently, the placeholder used in ref-filter expansion `%(foo)` has not
yet supported in `--pretty` format.

Using the new ref-filter formats has its own convenience.  For example,
the format `%(foo)` is more human-readable, easy to process, and
extensible if we want to add some options in each placeholder(like
`%(trailers:only=bogo)`) . Hence,  users can just simply add the options
in the placeholder if needed, reducing their frustration in constructing
long and complex output command.

My goal is to unify the the ref-filter formats with `--pretty` formats
and generalize them in git:

### Primary task(s)

* Keep the previous placeholders like `%an`, but add more recognizable
alternatives like `%(authorname)`.
* Check if there are other duplicate formats with `--pretty` , if so,
re-factor them as well.

### Optional task(s)

I don't want to go beyond the border of my main task, so I label this
idea as an optional task that needs to be carefully reviewed and
discussed by many.

* Introduce format-scripting(like the one used in `git-for-each-ref`) to
`--pretty` and even make a field in user's configuration to use default
format-script for `--pretty`.

## Deliverables/Timeline

### ~ May 5th

* I will keep an eye on git project and make more patches to it if
possible.
* At the same time, getting to know more about the community and
collaborating with others.

* Also I will talk to my potential mentor, to get more concrete and
constructive advise about my project. Last, finalize my project.

### May 5th ~ June 2nd

Community-bonding period:

After having rounded understanding about the community and all the past
work, I would like to revise my previous ideas regarding to my project
if there is a much better solution or other problems. Then, I will start
to work on a part of my project:

* Carefully examine `ref-filter` related code to see what I can learn
from(the implementation, etc...) and what to avoid doing.
* Add new placeholders with new formats and names in `--pretty`.
* Commit patches to obtain reviews from the community.

### June 2nd ~ June 10th

The cushion period. Finish the unfinished job from last phase. If all
the job is done, add test scripts and future documentation.

### June 11th ~ July 3rd

I will be occupied in this phase since the final exams take over. I
might not be able to work on some actual change but will be free to
reply to anyone in the community.

### July 3rd ~ July 17th

* Gathering all reviews and criticisms from the community and revise my
previous patches if needed.  

* Add test scripts and documentation.

### July 17th ~ July 28th

* keep commit the patches to obtain reviews from the community.
* Discuss the possibility of adding configuration for `--pretty`.

### July 28th ~ August 12th

* Gathering all reviews and criticisms from the community and revise my
previous patches if needed.  
* Add test scripts and documentation.
* [option] Write a experimental configuration on pretty.

### August 12th ~ August 25th

Final revision and discussion.

### August 25th ~

Submission

*If I complete my job earlier than I plan, than I would like to come up
with more improvements and new features in my project.*

 ### Side-note

* Before my summer vacation, I can code for 2-3 hours per working day
and 4-6 hours on weekend.
* My summer vacation starts from July 3rd to early September, which fits
well with GSoC's schedule. I will be able to spend half of my day on my
project.
* English is not my first language so if I have grammatical or other
errors in documentation or communication, a review will be appreciated.



## Conclusion

First, I would like to say thank you to all developers that have helped
me or replied to me in the mailing list.

I want to join an active open-source community online for a really long
time but I was too shy before and got caught up with the college
entrance exam. I think GSoC is a good platform to start my journey.
Though I was not able to get the information in time and it's late for
me to commit my submission before deadline, I still decided to apply.
Because if I hadn't, I would regret someday.

As I mentioned before, maybe I have little experience to
online-contributing, but I will learn the required skills to overcome
obstacles. My lust for knowledge is my greatest power.

Last but not least, it's a pleasure to join the open-source community.
Let's collaborate and make the world better.

---

On 3/31/20 4:39 AM, Angel Pan wrote:
> Hello everyone.
> Here is my proposal for GSoC. A review or criticism would be appreciated.
>
> Google doc version:
> https://docs.google.com/document/d/19Nkesmet7X7U42lsvksXoiEBrnOppKicWHYKneEQsQ8/edit?usp=sharing
>
> Best regards,
> Angel
>
> ----------
> # Unify ref-filter formats with other `--pretty` formats
>
> ## Contact Information
>
> Full name: Yun Pan(Angel Pan)
>
> Email: [dinoallosaurus1111@gmail.com](mailto:dinoallosaurus1111@gmail.com)
>
> IRC: dinoallosaurus
>
> GitHub: dinoallo
>
> Timezone: UTC+8
>
> ## Short Biography
>
> I am a first year student in Computer Science at Zhejiang University
> in China. It's my first time participating in GSoC. I have had
> experience working with C/C++, shell scripts, Python, Go and Perl. I
> am interested in writing CLI or system scripts/configurations, which
> is the main reason I apply to Git project. I might be relatively new
> when it comes to contributing on-line project. However, I am a quick
> and avid learner so if I don’t have enough skills to complete the job,
> I can self-learn immediately.
>
> ## Working Environment
>
> My operating system is Arch Linux, which I started using it about half
> an year ago. Before then I was using Debian-based systems like Ubuntu.
> And I have some experience using git on Windows as well.
>
> I mainly use Emacs and VS Code as my editor but I can use Vim also. I
> am able to use both markdown and Org-mode on Emacs for documenting
>
> ## Coding/Contributing Experience
>
> C is my *native* language I like to config my computer and automate
> some work on it by myself so I learned shell-scripts and other
> scripting languages.  Now I write code related to back-end for the
> student club at my university.
>
> Since I used to develop web before, there is a small-project written
> in Python with Django on my GitHub page. From the experience of
> applying to git, I obtained much deeper knowledge about git and how it
> works. No matter what the outcome is, I am looking forward to
> contributing more to git and work with all the developers.
>
> ### Microproject
>
> Mailing list: https://lore.kernel.org/git/pull.595.git.1585588586605.gitgitgadget@gmail.com/T/#u
>
> GitHub: https://github.com/gitgitgadget/git/pull/595
>
> Status: waiting to be review.
>
> ## Introduction
>
> Currently, the placeholder used in ref-filter expansion `%(foo)` has
> not yet supported in `--pretty` format.
>
> Using the new ref-filter formats has its own convenience.  For
> example, the format `%(foo)` is more human-readable, easy to process,
> and extensible if we want to add some options in each placeholder(like
> `%(trailers:only=bogo)`) . Hence,  users can just simply add the
> options in the placeholder if needed, reducing their frustration in
> constructing long and complex output command.
>
> My goal is to unify the the ref-filter formats with `--pretty` formats
> and generalized them in git:
>
> * Get rid of unrecognizable placeholders like `%an` to `%(authorname)`.
> * Introduce format-scripting(like the one used in `git-for-each-ref`)
> to `--pretty` and even make a field in user's configuration to use
> default format-script for `--pretty`.
>
> ## Deliverables/Timeline
>
> ### ~ May 5th
>
> * I will keep an eye on git project and make more patches to it if possible.
> * At the same time, getting to know more about the community and
> collaborating with others.
>
> * Also I will talk to my potential mentor, to get more concrete and
> constructive advise about my project. Last, finalize my project.
>
> ### May 5th ~ June 2nd
>
> Community-bonding period:
>
> After having rounded understanding about the community and all the
> past work, I would like to revise my previous ideas regarding to my
> project if there is a much better solution or other problems. Then, I
> will start to work on a part of my project:
>
> * Carefully examine `ref-filter` related code to see what I can learn
> from(the implementation, etc...) and what to avoid doing.
> * Replace the placeholders in `--pretty` with new formats and names.
> * Commit patches to obtain reviews from the community.
>
> ### June 2nd ~ June 10th
>
> The cushion period. Finish the unfinished work from last phase. If all
> the job is done, add test scripts and future documentation.
>
> ### June 11th ~ July 3rd
>
> I will be occupied in this phase since the final exams take over. I
> might not be able to work on some actual change but is free to reply
> to anyone in the community.
>
> ### July 3rd ~ July 17th
>
> * Gathering all reviews and criticisms from the community and revise
> my previous patches if needed.
>
> * Add test scripts and documentation.
>
> ### July 17th ~ July 28th
>
> * Implement the format-scripting in `--pretty`
> * Commit the patches to obtain reviews from the community
>
> ### July 28th ~ August 12th
>
> * Gathering all reviews and criticisms from the community and revise
> my previous patches if needed.
>
> * Add test scripts and documentation.
> * [option] configuration on pretty
>
> ### August 12th ~ August 25th
>
> Final revision and discussion.
>
> ### August 25th ~
>
> Submission
>
> *If I complete my job earlier than I plan, than I would like to come
> up with more improvements and new features in my project.*
>
>  ### Side-note
>
> * Before my summer vacation, I can code for 2-3 hours per working day
> and 4-6 hours on weekend.
> * My summer vacation starts from July 3rd to early September, which
> fits well with GSoC's schedule. I will be able to spend half of my day
> on my project.
> * English is not my first language so if I have grammatical or other
> errors in documentation or communication, a review will be
> appreciated.
>
>
>
> ## Conclusion
>
> First, I would like to say thank you to all developers that have
> helped me or replied to me in the mailing list.
>
> I want to join an active open-source community online for a really
> long time but I was too shy before and got caught up with the college
> entrance exam. I think GSoC is a good platform to start my journey.
> Though I was not able to get the information in time and it's late for
> me to commit my submission before deadline, I still decided to apply.
> Because if I hadn't, I would regret someday.
>
> As I mentioned before, maybe I have little experience to
> online-contributing, but I will learn the required skills to overcome
> obstacles. My lust for knowledge is my greatest power.
>
> Last but not least, it's a pleasure to join the open-source community.
> Let's collaborate and make the online world better.
>
> ----------

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-31  6:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-31  6:01 [GSoC/Proposal v2] Unify ref-filter formats with other --pretty formats Angel Pan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.