On Mon, Nov 21, 2022 at 01:47:42PM -0500, Eric Sunshine wrote: > On Mon, Nov 21, 2022 at 1:04 PM Jeff King <peff@xxxxxxxx> wrote: > > On Sun, Nov 20, 2022 at 11:02:54PM -0500, Eric Sunshine wrote: > > > Overall, I think Ævar's plan to parallelize linting via "make" is > > > probably the way to go. > > > > TBH, I think just running the linter once per test script when the > > script is run would be sufficient. That is one extra process per script, > > but they are already shell scripts running a bunch of processes. You get > > parallelism for free because you're already running the tests in > > parallel. You lose out on "don't bother linting because the file hasn't > > changed", but I'm not sure that's really worth the extra complexity > > overall. > > Hmm, yes, that's appealing (especially since I've essentially given up > on making linting fast on Windows), and it wouldn't be hard to > implement. In fact, it's already implemented by 23a14f3016 (test-lib: > replace chainlint.sed with chainlint.pl, 2022-09-01); making it work > the way you describe would just involve dropping 69b9924b87 > (t/Makefile: teach `make test` and `make prove` to run chainlint.pl, > 2022-09-01) and 29fb2ec384 (chainlint.pl: validate test scripts in > parallel, 2022-09-01). Yes, that was one of the modes I timed in my original email. :) > I think Ævar's use-case for `make` parallelization was to speed up > git-bisect runs. But thinking about it now, the likelihood of "lint" > problems cropping up during a git-bisect run is effectively nil, in > which case setting GIT_TEST_CHAIN_LINT=1 should be a perfectly > appropriate way to take linting out of the equation when bisecting. Yes. It's also dumb to run a straight "make test" while bisecting in the first place, because you are going to run a zillion tests that aren't relevant to your bisection. Bisecting on "cd t && ./test-that-fails" is faster, at which point you're only running the one lint process (and if it really bothers you, you can disable chain lint as you suggest). -Peff