I like the idea. I think it is a good time for the project to start tracking this and keeping it usable.
Certainly 2 hours is more than enough, is that not so? The Java precommit seems to take <=40 minutes while Python takes ~20 and Go is so fast it doesn't matter. Do we have enough stragglers that we don't make it in the 95th percentile? Is the time spent in the Jenkins queue? For our current coverage, I'd be willing to go for: - 1 hr hard cap (someone better at stats could choose %ile) - roll back or remove test from precommit if fix looks like more than 1 week (roll back if it is perf degradation, remove test from precommit if it is additional coverage that just doesn't fit in the time) There's a longer-term issue that doing a full build each time is expected to linearly scale up with the size of our repo (it is the monorepo problem but for a minirepo) so there is no cap that is feasible until we have effective cross-build caching. And my long-term goal would be <30 minutes. At the latency of opening a pull request and then checking your email that's not burdensome, but an hour is. Kenn On Thu, May 17, 2018 at 6:54 PM Udi Meiri <eh...@google.com> wrote: > HI, > I have a proposal to improve contributor experience by keeping precommit > times low. > > I'm looking to get community consensus and approval about: > 1. How long should precommits take. 2 hours @95th percentile over the past > 4 weeks is the current proposal. > 2. The process for dealing with slowness. Do we: fix, roll back, remove a > test from precommit? > Rolling back if a fix is estimated to take longer than 2 weeks is the > current proposal. > > > https://docs.google.com/document/d/1udtvggmS2LTMmdwjEtZCcUQy6aQAiYTI3OrTP8CLfJM/edit?usp=sharing >