This is the start of a thread specifically on item 5 from the bigger "List of possible modifications to the March 2017 proposal" thread:
In that bigger thread, item 5 was posed as:
"Running `go test .` shouldn't dirty your VCS status"
However, I think it makes sense for this thread to broaden that to something like:
"Running `go test .` shouldn't dirty your VCS status, but what else should, if anything?
In other words, I think so far there is agreement that running `go test .` (without a `-fuzz` flag) should definitely *not* dirty your VCS status. However, I think it is more of an open question as to what else could or should dirty your VCS status.
I think the _exact_ answer to that question is heavily interwoven with other questions (especially exactly how -fuzzdir will work, will there be > 1 corpus directory and if so how does that behave exactly, etc.).
It might end up being too hard to discuss the VCS status piece separately, so we'll see if this helps or not, but here is a thread where people can comment at least philosophically on what might or might not make sense in terms of creating or modifying files within VCS, even though the final behavior might end up being more heavily dependent on the answers to other questions and hence the actual details might need to be discussed in the context of other questions.
In the rest of this post, I will just quote some of the related recent discussion around dirtying VCS status (although I am not trying to quote everything, because that discussion is now spread a bit).
> -------------------------------------------------------------------
> 5. Running `go test .` shouldn't dirty your VCS status
> -------------------------------------------------------------------
>
> Some discussion:
>
> Dmitry wrote there: "This sounds reasonable. I would say a requirement."
Romain replied in that bigger thread:
> -------------------------------------------------------------------
> Agree with that.
> -------------------------------------------------------------------
Dmitry also replied:
> -------------------------------------------------------------------
> Agree. The fact that any go-fuzz run in go-fuzz-corpus repo produces
> diff, was/is very inconvenient.
> -------------------------------------------------------------------
Dmitry replying to Romain:
> -------------------------------------------------------------------
> > What about two directories in `testdata`? With a suffix to differentiate the fuzzer-corpus from the test-corpus ?
>
> This conflicts with "fuzzer must not dirty vcs state".
>
> I think the fuzzer artifacts dir must be visible to user to some degree.
> Fuzzer will store crash outputs there too. And fuzzer will say
> "crashed on input X" and user must be able to locate the input X.
> Do we have any other options besides $GOPATH/pkg?
> -------------------------------------------------------------------
>
> -------------------------------------------------------------------
> I see what the point about not dirtying the VCS state is, but I'm not sure I completely
> agree with it. Things like code generation directives already exist and they dirty the
> VCS state at compile-time, why should a testing feature whose purpose is to generate a corpus
> not do it?
>
> In addition, using GOPATH/pkg/fuzz/xxx, I'm not sure about the way the user should promote
> a generated input to the checked-in corpus. Having to do a manual copy seems clumsy,
> error-prone at best and too much arcane for the "standard user" I imagine. We would have to
> add tooling for this and I'm not convinced this would be better.
> -------------------------------------------------------------------
So that is a basic summary of what has been said so far on this topic...
Regards,
thepudds