Re: [GSoC][PROPOSAL v1] Refactor git-bisect(1) to make its state self-contained

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey Christian

Thank you for the response.

On Tue, Mar 26, 2024 at 11:30 AM Christian Couder
<christian.couder@xxxxxxxxx> wrote:
>
> Hi Aryan,
>
> On Thu, Mar 21, 2024 at 2:21 PM Aryan Gupta <garyan447@xxxxxxxxx> wrote:
>
> > On Wed, Mar 20, 2024 at 12:06 PM Christian Couder
> > <christian.couder@xxxxxxxxx> wrote:
>
> > > On Sat, Mar 16, 2024 at 7:58 PM Aryan Gupta <garyan447@xxxxxxxxx> wrote:
>
> > > > -- About Me --
> > > > ====================
> > > >
> > > > I have been enthusiastic about open source from the very beginning of
> > > > my journey as a software developer. I’ve contributed to other
> > > > open-source projects, though still a beginner, I’m generally familiar
> > > > with the process of contribution. The related experiences are all in
> > > > the contribution graph on my GitHub profile page [1]. In the ZAP
> > > > Project[2] community, I’ve made over 50 PRs [3]. I also participated
> > > > in the Google Summer of Code 2023 with the OWASP Foundation and
> > > > successfully completed it as well [4]. I have contributed to some
> > > > other small projects as well on GitHub.
> > >
> > > It's interesting to know that you have already participated in a GSoC.
> > > Is there a single blog post about this or more?
> >
> > Here it is: https://www.zaproxy.org/blog/2023-09-11-browser-recorder/
>
> I saw that there is one blog post, but I wanted to ask if there are
> more blog posts. That's because we ask GSoC contributors to post on
> their blog at least every 2 weeks and if possible every week.
>
Oh okay. No, the org didn't have any such criteria we usually had
a google meeting once a week where we discussed everything
about the week's progress and the next week's plan. Yes I can
surely write a blog every one or two weeks whichever would be
comfortable for sure if I contribute to git.

> > > > -- Strategies for Handling Backward Compatibility --
> > > > ---------------------------------------------------------
> > > >
> > > > 1. Before implementing any changes, a good understanding of how
> > > > git-bisect works and how it is structured is very important. So, I
> > > > will thoroughly analyze the existing usage patterns of git-bisect and
> > > > list down all the potential areas of impact.
> > > >
> > > > 2. To validate the codebase changes and ensure the stability and the
> > > > backward compatibility of git-bisect command. I will write unit tests
> > > > for all the required changes.
> > >
> > > Do you mean unit tests using the new unit test framework in C. Could
> > > you show an example?
> > >
> >
> > Not sure about what is the standard way that git uses for writing unit tests.
> > Could you tell me a bit about this?
>
> I was just asking if you planned to use the new unit test framework in
> C. The "Move existing tests to a unit testing framework" project that
> we propose on https://git.github.io/SoC-2024-Ideas/ is about moving
> some unit tests to this new unit test framework. Please take a look at
> that project to get more information about this subject.
>
Got it. I read and researched on this and yes I can use the latest unit
test framework for writing the unit tests. Also I was thinking of a backup
plan. If the community later (after getting the proposal accepted) do not
agree with the project idea. I can work on the migration of these tests as
well. Since there are so many tests, I think I can work on a few if this
happens. Here is an example:

#include "test-lib.h"
#include "bisect.h"

static void test_backward_compatibility(void) {
/*
* will try to do some bisect operations by
* keeping the new way of storing bisect state
* files, not sure about the how the code will
* look like for now because I haven't gone
* through git-bisect much but I will do it
* for sure
*/
}


int cmd_main(int argc, const char **argv) {
TEST(test_backward_compatibility(), "Test backward compatibility of
git-bisect");

return test_done();
}


> > > > 3. I will also try to create some real scenarios where I will be
> > > > manually testing the desired behavior.
> > > >
> > > > 4. We might also need some regression tests to test some of the
> > > > functionality which can't be tested using unit tests.
> > >
> > > In which test script would you add them?
> >
> > I will be writing these in bash and will be adding it in a new test case file
> > inside the git/t directory or maybe in "git\t\t6030-bisect-porcelain.sh"
>
> It's better to always use the Unix notation for paths like
> "t/t6030-bisect-porcelain.sh" starting at the root of the repo, rather
> than mixing the Unix and Windows notations and adding "git/" before
> the root.

Okay.

>
> > file. I will try mocking a scenario where we have the BISECT_* files available
> > in the .git directory and then run git bisect using the command line and then
> > check the expected results.
>
> The t/*.sh test scripts are the right place for end-to-end tests
> (sometimes called "black box" tests), but not for unit tests that
> would test some C functions. Both unit tests and end-to-end tests
> could be regression tests or performance tests.
>
Okay

> > > > 4. Adding Tests
> > > >     - Through testing for backward compatibility is very very
> > > > important so that the changes don’t break the existing changes.
> > > >
> > > > 5. Documenting the changes
> > > >     - This might also go side by side if mentors need some weekly
> > > > documentation of the tasks done.
> > >
> > > Tests and documentation should be part of the patches that change the
> > > behavior. So it doesn't really make sense to list them separately in
> > > the timeline.
> >
> > Okay. Maybe a blog post could be a part of this?
>
> We ask GSoC contributors to post weekly on their blog, so except for a
> final blog post, most of the blogging should be also part of the
> regular work.

Okay.

>
> Thanks for updating your proposal.


Thank you
Regards

Aryan Gupta





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux