git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Shaoxuan Yuan <shaoxuan.yuan02@gmail.com>
To: git@vger.kernel.org
Cc: derrickstolee@github.com, vdye@github.com, gitster@pobox.com,
	Shaoxuan Yuan <shaoxuan.yuan02@gmail.com>
Subject: [GSoC v1 1/1] draft
Date: Wed,  6 Apr 2022 16:09:20 +0800	[thread overview]
Message-ID: <20220406080920.1220183-2-shaoxuan.yuan02@gmail.com> (raw)
In-Reply-To: <20220406080920.1220183-1-shaoxuan.yuan02@gmail.com>

Signed-off-by: Shaoxuan Yuan <shaoxuan.yuan02@gmail.com>
---
 proposal.txt | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

diff --git a/proposal.txt b/proposal.txt
index e69de29..eaa3cdf 100644
--- a/proposal.txt
+++ b/proposal.txt
@@ -0,0 +1,133 @@
+GSoC 2022 Proposal @ Git: More Sparse Index Integrations
+
+# Name and Contact Information
+
+Full name: Shaoxuan Yuan
+E-mail: shaoxuan.yuan02@gmail.com
+GitHub: https://github.com/ffyuanda
+Tel: (+86)189-9835-1089
+Alternative Tel: (+1)646-512-1886
+
+# Synopsis
+
+I'm picking the project idea "More Sparse Index Integrations" from the SoC 2022
+Ideas page [1]. This idea aims to integrate the experimental sparse-index
+feature and sparse-checkout command with existing Git commands. Its difficulty
+should be medium, and the expected project size takes somewhere between
+175 hours to 350 hours.
+
+[1] https://git.github.io/SoC-2022-Ideas/#more-sparse-index-integrations
+
+# Benefits to Community
+
+By joining the community and working on this idea, I can work together with my
+mentors and community fellows to bring a better user experience to people who
+are working on large monorepo with "sparse-index" and "sparse-checkout".
+Moreover, I have a strong intention to stick around after GSoC, not only keep
+contributing to the community, but also share my experience with or even mentor
+future potential newcomers.
+
+# Deliverables
+
+With this idea's clear spirit to cover as many command integrations as possible,
+and also with the clear steps to take to accomplish each integration, I have
+arranged a general deliverable structure as below:
+
+1. Investigation around a Git command and see if it behaves correctly with
+sparse-checkout. [Approx. 3 - 7 days]
+
+2. Modify the Git command's logic so that it works better with sparse-checkout.
+[Approx. 7 days - 15 days]
+
+3. Add tests to t1092-sparse-checkout-compatibility.sh for the builtin, with a
+focus on what happens for paths outside of the sparse-checkout cone.
+
+4. Disable the command_requires_full_index setting in the builtin and ensure
+the tests pass.
+
+5. If the tests do not pass, then alter the logic to work with the sparse index.
+
+6. Add tests to check that a sparse index stays sparse.
+
+7. Add performance tests to demonstrate speedup.
+
+(points 3-7 are from SoC 2022 Ideas, proposed by the community and mentors)
+
+[points 3-7 added together should take Approx. 7 days - 15 days]
+
+In summary, each integration will take a similar schedule stated above. So,
+without extending the timeline, it is expected to finish 3 - 4 integrations
+during the GSoC program.
+
+# Related Work
+
+Since the Git community requires a "microproject" to be done in order to
+familiarize oneself with the collaborating/contributing process, here is my
+selected "microproject", this patch is already merged into master:
+
+Modernize a test script [2]
+
+[2] https://lore.kernel.org/git/20220123060318.471414-1-shaoxuan.yuan02@gmail.com/
+
+Other than this "microproject", I've submitted a few other patches when I
+stumbled upon bugs/potential modifications, these patches are already
+merged into master:
+
+t0001: replace "test [-d|-f]" with test_path_is_* functions [3]
+builtin/diff.c: fix "git-diff" usage string typo [4]
+
+[3] https://lore.kernel.org/git/20220121102109.433457-1-shaoxuan.yuan02@gmail.com/
+[4] https://lore.kernel.org/git/20220202072844.35545-1-shaoxuan.yuan02@gmail.com/
+
+Prior works about the idea have been done by my mentors and other community
+members, and these works form a good approximation of the approach I'm going
+to take. Some previous example commits:
+
+Integration with "clean" [5]
+Integration with "blame" [6]
+
+[5] https://github.com/git/git/commit/1e9e10e04891a13e5ccd52b36cfadc55dfaa5066
+[6] https://github.com/git/git/commit/add4c864b60766174ad4f74ba7be17e66d61ef16
+
+Other than the proposed steps by my mentors (points 3 - 7 in the Deliverables
+section), I also added some steps (points 1 - 2 in the Deliverables section) as
+prerequisites, which I found very necessary during my tentative patches
+discussed earlier with the community:
+
+An RFC patch about "sparse-index" integration with "mv" [7]
+A WIP patch to optimize user experience when using "mv" with "sparse-checkout" [8]
+
+[7] https://lore.kernel.org/git/20220315100145.214054-1-shaoxuan.yuan02@gmail.com/
+[8] https://lore.kernel.org/git/20220331091755.385961-1-shaoxuan.yuan02@gmail.com/
+
+When I was exploring "sparse-index" and "sparse-checkout", I also proposed a
+change to the documentation of "sparse-checkout", this patch is still WIP
+though:
+
+Documentation/git-sparse-checkout.txt: add an OPTIONS section [9]
+
+[9] https://lore.kernel.org/git/20220311132141.1817-1-shaoxuan.yuan02@gmail.com/
+
+# Biographical Information
+
+## Education:
+
+I'm currently a Computer Science and Engineering sophomore at the University of
+California, Irvine. Before this, I also had a summer school at the Carnegie
+Mellon University, in which I also learned things about Computer Science.
+
+## Some credits to myself (prior open-source experience, work, etc.):
+
+1. I've been contributing to other open-source projects before, though still a
+beginner, I'm generally familiar with the process of contribution. The related
+experiences are all in the contribution graph on my GitHub profile page (see the
+Name and Contact Information section).
+
+2. I came to participate in the Git community fairly early this year. I got
+myself rather comfortable with the contribution process by writing, replying,
+and reviewing different sorts of patches in the community.
+
+3. During the patches done throughout these three months, I'm getting more
+familiar with the Git internals, project structures, commonly used APIs, test
+suites, required tech stacks, coding guidelines, and most importantly, prior
+knowledge and experience with my proposed project idea.
-- 
2.35.1


  reply	other threads:[~2022-04-06 12:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-06  8:09 [GSoC v1 0/1] GSoC 2022 proposal rough draft Shaoxuan Yuan
2022-04-06  8:09 ` Shaoxuan Yuan [this message]
2022-04-06 12:05 ` Shaoxuan Yuan
2022-04-06 21:09   ` Abhradeep Chakraborty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220406080920.1220183-2-shaoxuan.yuan02@gmail.com \
    --to=shaoxuan.yuan02@gmail.com \
    --cc=derrickstolee@github.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=vdye@github.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).