From 91a6b473c096d4776c145ba51e948f27af16f791 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 29 Jan 2022 23:17:06 +0530 Subject: [PATCH] Add GSoC 2022 material and hide 2021 material The ideas document is mostly empty now. Ideas are yet to be gathered from the community and added. We also hide the SoC 2021 documents and Outreachy microproject documents as they're stale now. The SoC 2021 org application isn't hidden as we haven't applied for 2022 yet. --- Outreachy-23-Microprojects.md | 3 +- SoC-2021-Ideas.md | 1 + SoC-2022-Ideas.md | 21 +++++++ SoC-2022-Microprojects.md | 112 ++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 SoC-2022-Ideas.md create mode 100644 SoC-2022-Microprojects.md diff --git a/Outreachy-23-Microprojects.md b/Outreachy-23-Microprojects.md index 9f82653366..353f179b6d 100644 --- a/Outreachy-23-Microprojects.md +++ b/Outreachy-23-Microprojects.md @@ -1,6 +1,7 @@ --- layout: default title: Outreachy Winter 2021-2022 Applicant Microprojects +navbar: false --- ## Introduction @@ -109,4 +110,4 @@ You can refer to the implementation of this patch: [thread](https://lore.kernel.org/git/e68635cda515a9cd504c1d7366e9c353ab2adb2e.1629882532.git.gitgitgadget@gmail.com/) You can use t/perf for performance testing between upstream and your patches. -[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) \ No newline at end of file +[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) diff --git a/SoC-2021-Ideas.md b/SoC-2021-Ideas.md index 77b05b5914..1d1fc3f821 100644 --- a/SoC-2021-Ideas.md +++ b/SoC-2021-Ideas.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2021 Ideas +navbar: false --- This is the idea page for Summer of Code 2021 for Git. diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md new file mode 100644 index 0000000000..c5d3341d7a --- /dev/null +++ b/SoC-2022-Ideas.md @@ -0,0 +1,21 @@ +--- +layout: default +title: SoC 2022 Ideas +--- + +This is the idea page for Summer of Code 2022 for Git. + +*Please completely read the [general application information](https://git.github.io/General-Application-Information) +page before reading the idea list below.* + +## Summer of code main project ideas + +**Students**: Please consider these ideas as starting points for +generating proposals. We are also more than happy to receive proposals +for other ideas related to Git. Make sure you have read the "Note +about refactoring projects versus projects that implement new +features" in the [general application information](https://git.github.io/General-Application-Information) +page though. + +### Idea X +_TBD: Ideas to be added based on discussion with community_ diff --git a/SoC-2022-Microprojects.md b/SoC-2022-Microprojects.md new file mode 100644 index 0000000000..d4500292f0 --- /dev/null +++ b/SoC-2022-Microprojects.md @@ -0,0 +1,112 @@ +--- +layout: default +title: SoC 2022 Applicant Microprojects +--- + +## Introduction + +First make sure you read and understand +[our general guidelines and suggestions for microprojects](https://git.github.io/General-Microproject-Information). + +There are some suggestions on how you can find some microprojects on your own in the document. + +## Ideas for microprojects + +### Add more builtin patterns for userdiff + +"git diff" shows the function name corresponding to each hunk after +the @@ ... @@ line. For common languages (C, HTML, Ada, Matlab, ...), +the way to find the function name is built-in Git's source code as +regular expressions (see userdiff.c). A few languages are common +enough to deserve a built-in driver, but are not yet recognized. For +example, shell. + +This project requires a very good knowledge of regular expressions. + +It is easy though to find examples of how this can be done by +searching the code base and the mailing list archive, as this has +already been done for a number of languages. + +### Replace a run_command*() call by direct calls to C functions + +See for example what Junio did in +[ffcb4e94d3](https://github.com/git/git/commit/ffcb4e94d3) (bisect: do +not run show-branch just to show the current commit, 2021-07-27). + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Use `test_path_is_*` functions in test scripts + +Find one test script that verifies the presence/absence of +files/directories with 'test -(e|f|d|...)' and replace them with the +appropriate `test_path_is_file`, `test_path_is_dir`, etc. helper +functions. + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Avoid pipes in git related commands in test scripts + +See the commit +[c6f44e1da5](https://github.com/git/git/commit/c6f44e1da5e88e34) +for example, and then do the same thing in one other test script. + +The git command should be on the left side of the pipe. + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Use unsigned integral type for collection of bits. + +Pick one field of a structure that (1) is of signed integral type and (2) is +used as a collection of multiple bits. Discuss if there is a good reason +why it has to be a signed integral field and change it to an unsigned +type otherwise. [[thread](https://public-inbox.org/git/xmqqsiebrlez.fsf@gitster.dls.corp.google.com)] + +Even though the amount of code to write is small, these projects +involve a lot of prior work to understand the specification and deal +with all potential corner-cases. + +### Modernize a test script + +A number of our test scripts have been written a long time ago in a +style that is now outdated. + +In the following email it is explained in details how to modernize and +clean up the t7001 test script: + + + +t7001 is not the only test script where similar changes could be made +though. + +Find one test script that needs some of the same changes and make +them. Please make sure that the test script is not already being +worked on by asking on the mailing list before starting to work on it. + +There should be only one kind of change per commit. For example if one +of your commits indents test bodies with TABs, instead of spaces, then +this should be the only kind of change in this commit. + +### Add --no-sort option for git-for-each-ref + +In "git for-each-ref", `ref_array_sort()` is used to sort ref_array with +sorting options. Even if the user does not provide any `--sort` option, +`ref_default_sorting()` will also provide the default sorting options with +the sort key "refname". + +But it turns out that the ref_array we get through `filter_refs()` is +already sorted by "refname". So providing a `--no-sort` option may +improve the performance of git for-each-ref when we don't provide any +sorting options on the command line. [thread](https://lore.kernel.org/git/YTNpeH+jO0zQgAVT@coredump.intra.peff.net/), +[thread](https://lore.kernel.org/git/YTTARcEvpXWSDfYW@coredump.intra.peff.net/) + +But the `--no-sort` option seems to be disabled in "git for-each-ref", +see "NEEDWORK" hint in `parse_opt_ref_sorting()`. You may need a new +list api to replace the original linked list implementation for ref_sorting. +You can refer to the implementation of this patch: +[thread](https://lore.kernel.org/git/e68635cda515a9cd504c1d7366e9c353ab2adb2e.1629882532.git.gitgitgadget@gmail.com/) + +You can use t/perf for performance testing between upstream and your patches. +[t/perf/README](https://github.com/git/git/blob/master/t/perf/README)