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

Re: [GSOC] [PROPOSAL V1]: Refactoring in order to reduce Git’s global state

From
Ayush Chandekar <ayu.chandekar@gmail.com>
Date
Mar 31, 2025, 15:04 UTC
Message-ID
<CAE7as+ZF6ARDQjGTyhjP7JZqhpbvZeouKGZA+tdZur_-8a5EXw@mail.gmail.com>
In-Reply-To
<Z-qkFmc9xJXXTzut@ArchLinux>
Show 11 quoted lines
> > Yep, since I encountered this while working on the patch, it fits well
> > in the Pre-GSoC section.
> > Moving it there would better show how I learned more about the
> > project's scope through
> > community feedback.
> >
>
> Yes, this is my intention. This represents your ability where you
> interact with the community and get feedback. And this is what we want
> to see.
>
Got it!
Show 11 quoted lines
> > So, I should remove all the categorization stuff and just say that I
> > would focus on
> > each variable, discuss in the community whether it should belong in the struct
> > repo_settings/repo or not while sending patches?
>
> I think you should put the categorization stuff into after-GSoC part.
> Well, I don't think you could focus on _each_ variable. This is
> impossible for you to talk about the way for _each_ variable. I somehow
> think that you could just write the proposal about how to handle one or
> two global variables.
>
Right, I can do that.
> You already touch one setting "core.attributesfile" right? You may just
> elaborate more in the proposal.
>
Yep!
Show 13 quoted lines
> > I felt that keeping it general might seem vague, but that's the nature
> > of the project. Every variable
> > is unique and would need a different approach and outlining the
> > approach of each variable
> > in the proposal is not very feasible, as these decisions need to
> > happen collaboratively through
> > discussions in the community.
> >
>
> Yes, so you could firstly give how you want to handle the global
> variables from top. And give some concrete examples to demonstrate your
> idea.
>
Alright, will do.
I'll send a new iteration of the proposal soon.

Thank you so much for your inputs:) Ayush

On Mon, Mar 31, 2025 at 7:47 PM shejialuo <shejialuo@gmail.com> wrote:
Show 113 quoted lines
>
> On Sat, Mar 29, 2025 at 03:24:05PM +0530, Ayush Chandekar wrote:
>
> [snip]
>
> > > > One key challenge is determining which variables should be part of
> > > > `repo_settings` and which should remain separate. While working on the patch to
> > > > refactor access to `core.attributesfile`, I received feedback from Junio that not
> > > > all global variables should be blindly moved into the `repo_settings` struct.
> > > > This reinforced the need to carefully assess which variables belong in `repo_settings`
> > > > and which should be handled differently.
> > > >
> > >
> > > Yes, this is correct. I somehow think whether we should put this
> > > paragraph into Pre-GSoC part? I think that you have found this when
> > > adding a patch to remove one global variable. And thus by communicating
> > > with the community, you have further understood that the requirement and
> > > the detail of this project.
> >
> > Yep, since I encountered this while working on the patch, it fits well
> > in the Pre-GSoC section.
> > Moving it there would better show how I learned more about the
> > project's scope through
> > community feedback.
> >
>
> Yes, this is my intention. This represents your ability where you
> interact with the community and get feedback. And this is what we want
> to see.
>
> > >
> > > And in your plan, you should just say that we need to do this. Would
> > > this be better?
> > >
> > So, I should remove all the categorization stuff and just say that I
> > would focus on
> > each variable, discuss in the community whether it should belong in the struct
> > repo_settings/repo or not while sending patches?
>
> I think you should put the categorization stuff into after-GSoC part.
> Well, I don't think you could focus on _each_ variable. This is
> impossible for you to talk about the way for _each_ variable. I somehow
> think that you could just write the proposal about how to handle one or
> two global variables.
>
> You already touch one setting "core.attributesfile" right? You may just
> elaborate more in the proposal.
>
> > I felt that keeping it general might seem vague, but that's the nature
> > of the project. Every variable
> > is unique and would need a different approach and outlining the
> > approach of each variable
> > in the proposal is not very feasible, as these decisions need to
> > happen collaboratively through
> > discussions in the community.
> >
>
> Yes, so you could firstly give how you want to handle the global
> variables from top. And give some concrete examples to demonstrate your
> idea.
>
> > Should I still mention that once the project is complete, we could
> > consider structuring related
> > stuff if the community sees value in it.
> >
>
> You could, mention this in after GSoC part.
>
> > > > This plan is flexible and may be refined through multiple iterations as I receive
> > > > feedback from the community and reviewers.
> > > >
> > > > Timeline:
> > > > ---------
> > > >
> > > > Pre-GSOC:
> > > > (Until 8 May)
> > > > -     Explore the codebase more, focusing on environment-related code paths.
> > > > -     Document how each global variable is used and how it can be moved to
> > > >       repository settings.
> > > > -     Study Git’s Coding Guidelines and the Pro Git Book to align with best practices.
> > > >
> > > > ----------
> > > >
> > > > Community Bonding:
> > > > (May 8 - June 1)
> > > > -     Engage with mentors to discuss different environment variables, their
> > > >       dependencies, and the best approach for refactoring.
> > > > -     Finalize an implementation plan based on discussions.
> > > > -     Since I will be on summer vacation, I can start coding early and make progress
> > > >       on the project.
> > > >
> > > > ----------
> > > >
> > > > Coding Period:
> > > > (June 2 - August 25)
> > > > -     Refactor global variables, replacing them with repository-scoped
> > > >       configurations.
> > > > -     Modify function signatures to pass `struct repository` explicitly instead
> > > >       of relying on `the_repository`.
> > > > -     Categorize variables into specialized structs to improve modularity and
> > > >       maintainability.
> > >
> > > As I have said, this is a high-risk task. Categorization needs many
> > > iterations. And we may do this after GSoC.
> >
> > Yep, will update that.
> >
> > Thanks for your review, again:)
> >
> > Ayush
>
> Thanks,
> Jialuo
Previous: shejialuoNext: Ayush Chandekar
Message 5 of 13 in “[GSOC] [PROPOSAL V1]: Refactoring in order to reduce Git’s global state”
  1. Ayush ChandekarMar 26, 2025
  2. shejialuoMar 28, 2025
  3. Ayush ChandekarMar 29, 2025
  4. shejialuoMar 31, 2025
  5. Ayush ChandekarMar 31, 2025
  6. Ayush ChandekarMar 31, 2025
  7. [GSOC] [PROPOSAL v2]: Refactoring in order to reduce Git’s global stateAyush Chandekar, Apr 4, 2025
  8. Karthik NayakApr 4, 2025
  9. Ayush ChandekarApr 6, 2025
  10. Christian CouderApr 7, 2025
  11. Ayush ChandekarApr 7, 2025
  12. Ayush ChandekarApr 7, 2025
  13. [GSOC] [PROPOSAL v3]: Refactoring in order to reduce Git’s global stateAyush Chandekar, Apr 8, 2025

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.