Skip to content

Commit 2fdc368

Browse files
committed
Add Outreachy-21-Microprojects.md
1 parent 7b1298e commit 2fdc368

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

Diff for: Outreachy-21-Microprojects.md

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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

Comments
 (0)