|
| 1 | +--- |
| 2 | +layout: default |
| 3 | +title: Outreachy Winter 2020-2021 Applicant Microprojects |
| 4 | +--- |
| 5 | + |
| 6 | +## Introduction |
| 7 | + |
| 8 | +First make sure you read and understand |
| 9 | +[our general guidelines and suggestions for microprojects](https://git.github.io/General-Microproject-Information). |
| 10 | + |
| 11 | +There are some suggestions on how you can find some microprojects on your own in the document. |
| 12 | + |
| 13 | +## Ideas for microprojects |
| 14 | + |
| 15 | +### Add more builtin patterns for userdiff |
| 16 | + |
| 17 | +"git diff" shows the function name corresponding to each hunk after |
| 18 | +the @@ ... @@ line. For common languages (C, HTML, Ada, Matlab, ...), |
| 19 | +the way to find the function name is built-in Git's source code as |
| 20 | +regular expressions (see userdiff.c). A few languages are common |
| 21 | +enough to deserve a built-in driver, but are not yet recognized. For |
| 22 | +example, shell. |
| 23 | + |
| 24 | +This project requires a very good knowledge of regular expressions. |
| 25 | + |
| 26 | +It is easy though to find examples of how this can be done by |
| 27 | +searching the code base and the mailing list archive, as this has |
| 28 | +already been done for a number of languages. |
| 29 | + |
| 30 | +### Use `test_path_is_*` functions in test scripts |
| 31 | + |
| 32 | +Find one test script that verifies the presence/absence of |
| 33 | +files/directories with 'test -(e|f|d|...)' and replace them with the |
| 34 | +appropriate `test_path_is_file`, `test_path_is_dir`, etc. helper |
| 35 | +functions. |
| 36 | + |
| 37 | +If you can't find one please tell us, along with the command you used |
| 38 | +to search, so that we can remove this microproject idea. |
| 39 | + |
| 40 | +### Avoid pipes in git related commands in test scripts |
| 41 | + |
| 42 | +See the commit |
| 43 | +[c6f44e1da5](https://github.com/git/git/commit/c6f44e1da5e88e34) |
| 44 | +for example, and then do the same thing in one other test script. |
| 45 | + |
| 46 | +The git command should be on the left side of the pipe. |
| 47 | + |
| 48 | +If you can't find one please tell us, along with the command you used |
| 49 | +to search, so that we can remove this microproject idea. |
| 50 | + |
| 51 | +### Use unsigned integral type for collection of bits. |
| 52 | + |
| 53 | +Pick one field of a structure that (1) is of signed integral type and (2) is |
| 54 | +used as a collection of multiple bits. Discuss if there is a good reason |
| 55 | +why it has to be a signed integral field and change it to an unsigned |
| 56 | +type otherwise. [[thread ](https://public-inbox.org/git/[email protected])] |
| 57 | + |
| 58 | +Even though the amount of code to write is small, these projects |
| 59 | +involve a lot of prior work to understand the specification and deal |
| 60 | +with all potential corner-cases. |
| 61 | + |
| 62 | +### Modernize a test script |
| 63 | + |
| 64 | +A number of our test scripts have been written a long time ago in a |
| 65 | +style that is now outdated. |
| 66 | + |
| 67 | +In the following email it is explained in details how to modernize and |
| 68 | +clean up the t7001 test script: |
| 69 | + |
| 70 | +https://lore.kernel.org/git/CAPig+cQpUu2UO-+jWn1nTaDykWnxwuEitzVB7PnW2SS_b7V8Hg@mail.gmail.com/ |
| 71 | + |
| 72 | +t7001 is not the only test script where similar changes could be made |
| 73 | +though. |
| 74 | + |
| 75 | +Find one test script that needs some of the same changes and make |
| 76 | +them. Please make sure that the test script is not already being |
| 77 | +worked on by asking on the mailing list before starting to work on it. |
| 78 | + |
| 79 | +There should be only one kind of change per commit. For example if one |
| 80 | +of your commits indents test bodies with TABs, instead of spaces, then |
| 81 | +this should be the only kind of change in this commit. |
0 commit comments