git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Add ideas for GSoC 2024

From
Christian Couder <christian.couder@gmail.com>
Date
Feb 5, 2024, 16:43 UTC
Message-ID
<CAP8UFD3F95TzytdpKO=LLf6Y_ejxwh9QtgAxRNKgMXW-72hjgQ@mail.gmail.com>
In-Reply-To
<106b8e7be9ddc2d24670b01d54347dfcf9aef196.1707122040.git.ps@pks.im>
On Mon, Feb 5, 2024 at 9:39 AM Patrick Steinhardt <ps@pks.im> wrote:
Show 25 quoted lines
>
> Add project ideas for the GSoC 2024.
> ---
>
> I came up with four different topics:
>
>   - The reftable unit test refactorings. This topic can also be squashed
>     into the preexisting unit test topics, I wouldn't mind. In that case
>     I'd be happy to be a possible mentor, too.
>
>   - Ref consistency checks for git-fsck(1). This should be rather
>     straight forward and make for an interesting topic.
>
>   - Making git-bisect(1)'s state more self-contained as recently
>     discussed. This topic is easy to implement, but the backwards
>     compatibility issues might require a lot of attention.
>
>   - Implementing support for reftables in the "dumb" HTTP protocol. It's
>     quite niche given that the dumb protocol isn't really used much
>     nowadays anymore. But it could make for an interesting project
>     regardless.
>
> It's hard to estimate for me whether their scope is either too small or
> too big. So please feel free to chime in and share your concerns if you
> think that any of those proposals don't make much sense in your opinion.
Thanks a lot for these ideas! I have applied your patch and pushed it.
I have a few concerns though, see below.
Show 25 quoted lines
>  SoC-2024-Ideas.md | 129 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 129 insertions(+)
>
> diff --git a/SoC-2024-Ideas.md b/SoC-2024-Ideas.md
> index 3efbcaf..286aea0 100644
> --- a/SoC-2024-Ideas.md
> +++ b/SoC-2024-Ideas.md
> @@ -39,3 +39,132 @@ Languages: C, shell(bash)
>  Possible mentors:
>  * Christian Couder < <christian.couder@gmail.com> >
>
> +### Convert reftable unit tests to use the unit testing framework
> +
> +The "reftable" unit tests in "t0032-reftable-unittest.sh"
> +predate the unit testing framework that was recently
> +introduced into Git. These tests should be converted to use
> +the new framework.
> +
> +See:
> +
> +  - this discussion <https://lore.kernel.org/git/cover.1692297001.git.steadmon@google.com/>
> +
> +Expected Project Size: 175 hours or 350 hours
> +
> +Difficulty: Low

"Difficulty: Low" might not be very accurate from the point of view of contributors. I think it's always quite difficult to contribute something significant to Git, and sometimes more than we expected.

Show 67 quoted lines
> +Languages: C, shell(bash)
> +
> +Possible mentors:
> +* Patrick Steinhardt < <ps@pks.im> >
> +* Karthik Nayak < <karthik.188@gmail.com> >
> +
> +### Implement consistency checks for refs
> +
> +The git-fsck(1) command is used to check various data
> +structures for consistency. Notably missing though are
> +consistency checks for the refdb. While git-fsck(1)
> +implicitly checks some of the properties of the refdb
> +because it uses its refs for a connectivity check, these
> +checks aren't sufficient to properly ensure that all refs
> +are properly consistent.
> +
> +The goal of this project would be to introduce consistency
> +checks that can be implemented by the ref backend. Initially
> +these checks may only apply to the "files" backend. With the
> +ongoing efforts to upstream a new "reftable" backend the
> +effort may be extended.
> +
> +See:
> +
> +  - https://lore.kernel.org/git/6cfee0e4-3285-4f18-91ff-d097da9de737@rd10.de/
> +  - https://lore.kernel.org/git/cover.1706601199.git.ps@pks.im/
> +
> +Expected Project Size: 175 hours or 350 hours
> +
> +Difficulty: Medium
> +
> +Languages: C, shell(bash)
> +
> +Possible mentors:
> +* Patrick Steinhardt < <ps@pks.im> >
> +* Karthik Nayak < <karthik.188@gmail.com> >
> +
> +### Refactor git-bisect(1) to make its state self-contained
> +
> +The git-bisect(1) command is used to find a commit in a
> +range of commits that introduced a specific bug. Starting a
> +bisection run creates a set of state files into the Git
> +repository which record various different parameters like
> +".git/BISECT_START". These files look almost like refs
> +due to their names being all-uppercase. This has led to
> +confusion with the new "reftable" backend because it wasn't
> +quite clear whether those files are in fact refs or not.
> +
> +As it turns out they are not refs and should never be
> +treated like one. Overall, it has been concluded that the
> +way those files are currently stored is not ideal. Instead
> +of having a proliferation of files in the Git directory, it
> +was discussed whether the bisect state should be moved into
> +its own "bisect-state" subdirectory. This would make it more
> +self-contained and thereby avoid future confusion. It is
> +also aligned with the sequencer state used by rebases, which
> +is neatly contained in the "rebase-apply" and "rebase-merge"
> +directories.
> +
> +The goal of this project would be to realize this change.
> +While rearchitecting the layout should be comparatively easy
> +to do, the harder part will be to hash out how to handle
> +backwards compatibility.
> +
> +See:
> +
> +  - https://lore.kernel.org/git/Za-gF_Hp_lXViGWw@tanuki/

From reading the discussion it looks like everyone is Ok with doing this. I really hope that we are not missing something that might make us decide early not to do this though.

Show 9 quoted lines
> +Expected Project Size: 175 hours or 350 hours
> +
> +Difficulty: Medium
> +
> +Languages: C, shell(bash)
> +
> +Possible mentors:
> +* Patrick Steinhardt < <ps@pks.im> >
> +* Karthik Nayak < <karthik.188@gmail.com> >
Previous: Patrick SteinhardtNext: Kaartic Sivaraam
Message 12 of 33 in “Git in GSoC 2024”
  1. Kaartic SivaraamJan 29, 2024
  2. Christian CouderJan 30, 2024
  3. Patrick SteinhardtJan 30, 2024
  4. Patrick SteinhardtJan 31, 2024
  5. Kaartic SivaraamJan 31, 2024
  6. Kaartic SivaraamJan 31, 2024
  7. Karthik NayakFeb 1, 2024
  8. Patrick SteinhardtFeb 1, 2024
  9. Kaartic SivaraamFeb 3, 2024
  10. Kaartic SivaraamFeb 4, 2024
  11. Add ideas for GSoC 2024Patrick Steinhardt, Feb 5, 2024
  12. Christian CouderFeb 5, 2024
  13. Kaartic SivaraamFeb 5, 2024
  14. Patrick SteinhardtFeb 6, 2024
  15. Christian CouderFeb 6, 2024
  16. Kaartic SivaraamFeb 8, 2024
  17. Patrick SteinhardtFeb 9, 2024
  18. Christian CouderFeb 9, 2024
  19. Patrick SteinhardtFeb 6, 2024
  20. Christian CouderFeb 6, 2024
  21. Christian CouderFeb 5, 2024
  22. Kaartic SivaraamFeb 5, 2024
  23. Kaartic SivaraamFeb 21, 2024
  24. Patrick SteinhardtFeb 21, 2024
  25. Christian CouderFeb 21, 2024
  26. Karthik NayakFeb 21, 2024
  27. Kaartic SivaraamFeb 22, 2024
  28. Patrick SteinhardtFeb 22, 2024
  29. Karthik NayakFeb 22, 2024
  30. Christian CouderFeb 22, 2024
  31. Kaartic SivaraamFeb 22, 2024
  32. Patrick SteinhardtFeb 22, 2024
  33. Kaartic SivaraamFeb 24, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.